
Il est temps de voir ce qui se cache derrière la notion de collections à l'heure où la version 2.0 de Jekyll vient de sortir.
La notion de collections n’est pas propre à Jekyll, bien au contraire, c’est lui qui rattrape son retard par rapport à certains de ses collègues.
Une collection: Qu’est-ce que c’est ?
Une collection est un ensemble de contenu partageant des caractéristiques communes. Si je tente une analogie avec le mondes des bases de données, cela peut s’apparenter à une table contenant des fiches.
Tout est collection ! Un agenda est une collection de dates, un livre de cuisine est une collection de recettes…
Les docs de Wooster sont par exemple un excellent candidat à cette mise en collection. Cela sera fait dès que nous en aurons le temps. Voilà en attendant comment nous devrions nous y prendre.
Les collections dans Jekyll
Il est possible de dire que les collections s’ajoutent à d’autres types de contenus déjà présents dans les versions précédentes de Jekyll comme les posts
et les pages
. On pourrait ajouter les _drafts
pour être complet.
Les collections sont traitées de façon identique aux autres types de contenu. Et c’est tant mieux !
Configuration d’une collection
Il faut déclarer la collection dans le fichier de configuration de Jekyll; à savoir _config.yml
.
collections:
doc:
output: true
Positionner output
à true
permet de générer individuellement chaque page contenue dans la collection. Ainsi, une collection composée des éléments suivants sur le disque :
_doc/index.md
_doc/graphite.md
_doc/nodej.md
donnera dans le dossier _site
les fichiers /doc/index.html
, /doc/graphite.html
et /doc/nodejs.html
.
En positionnant output
à false
, ces fichiers ne seraient pas générés. Le contenu de la collection resterait cependant accessible par le langage de templates depuis n’importe quelle page appelant cette collection.
Ajout d’un contenu à une collection
Créez un dossier correspondant à la collection déclarée à la racine de vos sources; _doc
dans mon cas. Notez le tiret bas qui permet à Jekyll de ne pas copier tel quel ce dossier comme le dossier _posts
ou _drafts
.
Ajouter du contenu se fait de façon classique, comme une page ou un post.
Affichage d’une collection
Chaque collection est accessible à partir de la variable site.nom_collection
. Ainsi notre collection de doc est accessible à partir de site.doc
.
---
layout: default
---
<ul>
{% for page in site.doc %}
<li><span>{{ page.date | date: "%b %-d, %Y" }}</span> <a href="{{ page.url }}">{{ page.title }}</li>
{% endfor %}
</ul>
Vous pouvez placer ce genre de boucle dans un layout ou directement dans une page, ce qui permet vraiment d’utiliser toute la puissance des collections.
Jekyll à maturité ?
Après les données structurées, les collections sont tout ce qu’il manquait pour vraiment transformer Jekyll en gestionnaire de contenu tous azimuts. L’heure de la maturité a sonné pour Jekyll !

À propos de l’auteur
Olivier Jan | Cofondateur de Check my Website.Check My Website a arrêté son activité en 2017, n'hésitez pas à vous tourner vers Dareboost.
Vous pourriez également apprécier

Yeoman: Cas concret d'utilisation avec Jekyll
Quand le générateur de sites statiques Jekyll rencontre le workflow Yeoman, celui-ci voit sa puissance décuplé.

Comment gérer des données structurées avec Jekyll
Comment gérer un ensemble de données structurées, à la base de données avec Jekyll, le générateur de site statique.

Docpad, Jekyll, Pelican… Les générateurs de sites statiques
Une présentation des générateurs de sites statiques que nous avons dans le radar, que nous utilisons ou que nous avons utilisé.