Les thèmes de Hyvor Blogs sont entièrement personnalisables. Si vous avez de l’expérience avec HTML, CSS et Javascript, vous pouvez facilement créer votre propre thème à partir de zéro. Cette page est une vue d’ensemble pour vous aider à démarrer. Tous les thèmes officiels se trouvent dans le dépôt hyvor-blogs-themes. N’hésitez pas à consulter le code source des autres thèmes.
Voici quelques termes couramment utilisés dans cette documentation :
{subdomain}.hyvorblogs.io qui est attribuée au blogueur.
Pour commencer le développement de thème, il est essentiel de comprendre le fonctionnement des routes dans Hyvor Blogs. Les routes sont des configurations au niveau du blog, ce qui signifie qu’elles sont configurées par le blogueur. Hyvor Blogs est fourni avec des routes par défaut qui suffisent généralement pour un blog simple.
Avant de continuer, nous vous recommandons de lire notre guide Routes pour bien comprendre le fonctionnement des routes.
Il n’existe qu’un seul fichier CSS dans le blog, styles.css.
Flashload est ajouté à tous les blogs par défaut. Il est donc important de garder Flashload à l’esprit lors de la conception des thèmes. Veuillez prendre une minute pour lire la documentation de Flashload afin de comprendre comment cela fonctionne.
Pourquoi Flashload ? Les rechargements de navigateur sont lents. Ils chargent plusieurs fois les mêmes ressources CSS/JS, ce qui ralentit le rendu des pages. Flashload commence à charger d’autres pages avant même que l’utilisateur clique sur le lien. Cela rend la navigation plus fluide. Cela transforme simplement le blog en une Single Page Application (SPA) !
Nous avons appris précédemment qu’il n’existe qu’un seul styles.css pour un blog, contenant tout le
CSS du blog. Ce styles.css doit être chargé à l’intérieur du <head> de la page. Lorsque l’utilisateur navigue vers une autre page, Flashload envoie une requête AJAX vers ce chemin et
précharge la page HTML. Ensuite, il met à jour uniquement la partie <body>. (Rappelez-vous, nous avons déjà tout le CSS chargé
lors de la première requête, donc nous ne voulons pas le
charger à nouveau).
La règle simple est d’ajouter les ressources partagées du blog dans <head>.
Un autre comportement important de HB est que nous utilisons la mise en cache de manière INTENSIVE. Nous utilisons une technique appelée mise en cache à la première requête.
/hello-world d’un blog.Lorsqu’on utilise un cache, vider le cache est l’élément le plus important. Nous devons nous assurer que du contenu obsolète n’est pas livré lorsque quelque chose change. Voici les événements pour lesquels nous vidons le cache pour chaque portée.
Et,
/search et /p/{hash} (pages d’aperçu) sont toujours dynamiques, jamais mises en cache.⚠️ La mise en cache rend le blog super rapide. Cependant, elle impose certaines limitations au développement de thème. Vous ne pouvez pas restituer de données dynamiques comme la « date actuelle » avec Twig. À cause du cache, les utilisateurs peuvent voir une date ancienne. Si c'est absolument nécessaire, vous devez utiliser Javascript pour restituer du contenu dynamique dans le navigateur de l'utilisateur. Cependant, afficher la « date de publication » d'un article fonctionne bien car nous vidons le cache chaque fois que l'article est mis à jour. De même, afficher l'année en cours fonctionnera, car nous nous assurerons de vider le cache le 1er janvier.
Configurons votre environnement de développement local.
dev-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Nous en aurons besoin plus tard.Pour les étapes suivantes, vous avez besoin de Node.js (et npm). En tant que développeur front-end, nous espérons que vous l’avez déjà installé :)
npm install -g hyvor-blogs-climkdir my-themecd vers le dossier du thème et exécutez hyvor-blogs-cli initcd my-theme
hyvor-blogs-cli initCette commande créera la structure de dossiers suivante à l’intérieur de votre dossier de thème.
/
/assets
/lang
en.yaml
/styles
index.scss
/templates
@base.twig
author.twig
index.twig
post.twig
tag.twig
.env
config.def.yaml
config.yamlVous pouvez également créer manuellement cette structure de dossiers, si vous le souhaitez.
.env et mettez à jour SUBDOMAIN avec le sous-domaine de votre blog DEV (que vous avez créé précédemment).SUBDOMAIN=dev-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxhyvor-blogs-cli pour servir votre bloghyvor-blogs-cliComment ça fonctionne : La commande hyvor-blogs-cli exécute un processus qui surveille les
changements de vos fichiers locaux et les synchronise avec notre environnement de production. Ainsi, chaque fois que vous ajoutez, modifiez ou supprimez un
fichier dans votre dossier de thème, il sera synchronisé avec les fichiers de thème de votre blog DEV.
Avis de sécurité 1 : Comme tous les fichiers de votre répertoire de thème sont synchronisés avec notre système de production, n'y ajoutez jamais de fichiers confidentiels.
Avis de sécurité 2 : Ne partagez pas publiquement votre sous-domaine DEV. Cela permettrait à d'autres utilisateurs de
modifier les fichiers de thème de votre blog DEV. Si vous utilisez GIT pour le versionnage, assurez-vous d'ajouter .env à .gitignore.
Comme vous le voyez, il y a quatre dossiers dans un dossier de thème HB. Les dossiers imbriqués ne sont pas pris en charge.
/
/templates
/styles
/assets
/lang
config.yaml/{file_name}. Tout type de fichier est pris en charge.Le dossier racine contient les fichiers de configuration. Voir configuration.