Les nouveautés de Jekyll 3.3
Les thèmes peuvent désormais fournir des assets statiques et dynamiques dans le dossier /assets
Depuis Jekyll 3.2, il est possible de packager un thème sous forme de
gem, il était déjà possible d’embarquer des
includes, des layouts et des fichiers Sass. Avec la version 3.3, il est enfin
possible d’ajouter aussi des assets à son thème. Les développeurs de thèmes vont
donc pouvoir fournir des thèmes complets et les utilisateurs pourront les tester
et les mettre à jour plus simplement. Cette fonctionnalité n’est pas encore très
mature et le support de fichier de configuration pour les thèmes ou l’ajout d’un
dossier data
sont en cours de discussion.
Pour faciliter davantage la gestion de thème, tout fichier présent dans le
dossier /assets
de votre thème sera considéré comme faisant partie du site de
l’utilisateur du thème. Vous pouvez donc ajouter du Sass, du JavaScript, du
CoffeeScript, des images, des fontes et tout ce qui sera utile à la présentation
et au comportement de votre thème. Les règles sont les mêmes que dans Jekyll :
si un fichier comporte des entêtes YAML Front Matter, il sera converti et traité
par le moteur de rendu. Si le fichier ne comporte aucun en-tête YFM, il sera
simplement copié comme un asset statique.
Notez bien que les fichiers de l’utilisateur avec le même chemin prennent
toujours le pas sur ceux de votre thème. Par exemple si un fichier
/assets/main.scss
est présent dans le dossier du site de l’utilisateur, c’est
lui qui sera traité en lieu et place du fichier /assets/main.scss
présent dans
la gem de votre thème.
Nous vous invitons à vous reporter à la documentation officielle sur la gestion des assets dans les thèmes pour plus d’informations.
Les filtres relative_url
et absolute_url
Deux nouveaux filtres font leur apparition pour simplifier la gestion des URLs
dans vos templates. Fini de vous emmêler les pinceaux avec baseurl
et url
.
Lorsque vous développez en local, si vous définissez la valeur de baseurl
afin
qu’elle corresponde à votre environnement de développement, mettons par exemple
baseurl: "/mondossier"
, le filtre relative_url
se chargera de préfixer cette
valeur pour toutes les URLs que vous appellerez :
{{ "/docs/assets/" | relative_url }} => /mondossier/docs/assets
Par défaut, baseurl
est défini à ""
et sera remplacé tel quel (ne définissez
jamais cette valeur à "/"
):
{{ "/docs/assets/" | relative_url }} => /docs/assets
Le résultat d’un appel à relative_url
produira toujours une URL relative au
domaine racine. Le même principe s’applique au filtre absolute_url
, il ajoute
les valeurs définies dans baseurl
et url
et facilite ainsi la création
d’URLs absolues :
{{ "/docs/assets/" | absolute_url }} => http://jamstatic.fr/mondossier/docs/assets
site.url
est maintenant défini pour le serveur de développement
Quand vous lancez la commande jekyll serve
en local, elle va démarrer un
serveur web, généralement à l’adresse http://localhost:4000
, sur lequel vous
allez pouvoir prévisualiser votre site durant la phase de développement. Si vous
utilisez le filtre absolute_url
ou site.url
dans votre code, vous avez
probablement dû créer un fichier de configuration pour le développement, qui va
réinitialiser la valeur d’url
à http://localhost:4000
.
C’est maintenant inutile ! Quand vous lancez la commande jekyll serve
, Jekyll
va générer votre site avec les valeurs de host
, port
et des options
relatives à SSL. Par défaut ce sera donc url: http://localhost:4000
. Quand
vous développez en local, la valeur de site.url
sera donc remplacée par
http://localhost:4000
.
C’est le comportement par défaut lorsque vous exécutez Jekyll en local. Ce ne
sera pas le cas si vous exécutez jekyll serve
si vous précisez un
environnement de production avec JEKYLL_ENV=production
. Si la variable
d’environnement JEKYLL_ENV
possède une autre valeur que development
(sa
valeur par défaut), Jekyll n’écrasera pas la valeur du paramètre url
définie
dans votre fichier de configuration. Attention, cela ne s’applique qu’à la
commande serve
, pas à la commande build`.
Et bien plus encore
Pour avoir le détail de tous les correctifs et les améliorations mineures apportées, vous pouvez consulter le CHANGELOG complet.
Jekyllez bien !