Collections Jekyll
Collections de contenu organisées pour les articles, la documentation, les carnets et d'autres types de contenu avec des permaliens personnalisés.
Collections Jekyll
Le thème Zer0-Mistakes utilise les collections Jekyll pour organiser différents types de contenu avec des permaliens et des mises en page personnalisés.
Collections disponibles
| Collection | Emplacement | Permalien | Mise en page |
|---|---|---|---|
posts |
pages/_posts/ |
/posts/:year/:month/:day/:title/ |
journals |
docs |
pages/_docs/ |
/docs/:path/ |
default |
notebooks |
pages/_notebooks/ |
/notebooks/:basename/ |
notebook |
about |
pages/_about/ |
/about/:title/ |
default |
quickstart |
pages/_quickstart/ |
/quickstart/:title/ |
default |
Configuration
Définition de la collection
# _config.yml
collections:
posts:
output: true
permalink: /posts/:year/:month/:day/:title/
docs:
output: true
permalink: /docs/:path/
notebooks:
output: true
permalink: /notebooks/:basename/
about:
output: true
permalink: /about/:title/
quickstart:
output: true
permalink: /quickstart/:title/
Valeurs par défaut de la collection
# _config.yml
defaults:
# Posts
- scope:
path: "pages/_posts"
type: posts
values:
layout: article
author: default
# Documentation
- scope:
path: "pages/_docs"
type: docs
values:
layout: default
sidebar:
nav: docs
# Notebooks
- scope:
path: "pages/_notebooks"
type: notebooks
values:
layout: notebook
mathjax: true
toc: true
Création de contenu
Articles
Créer dans pages/_posts/ :
---
title: "My Blog Post"
date: 2025-01-25
categories: [technology, jekyll]
tags: [tutorial, beginner]
preview: /images/previews/jekyll-collections.png
---
Post content here...
Format du nom de fichier : YYYY-MM-DD-title-slug.md
Documentation
Créer dans pages/_docs/ :
---
title: "Getting Started"
description: "Quick start guide for new users"
permalink: /docs/getting-started/
difficulty: beginner
estimated_reading_time: 10 minutes
---
Documentation content...
Carnets
Créer dans pages/_notebooks/ :
---
title: "Data Analysis Example"
description: "Jupyter notebook demonstrating data analysis"
kernel: python3
---
Ou utilisez des fichiers .ipynb avec un script de conversion.
Accès aux collections
Dans les modèles
<!-- Loop through all docs -->
{% for doc in site.docs %}
<a href="{{ doc.url }}">{{ doc.title }}</a>
{% endfor %}
<!-- Filter by category -->
{% assign tutorials = site.docs | where: "category", "tutorials" %}
<!-- Sort by date -->
{% assign recent = site.posts | sort: "date" | reverse %}
Propriétés des collections
{{ site.docs.size }} <!-- Number of docs -->
{{ site.docs.first.title }} <!-- First doc title -->
{{ site.posts.last.date }} <!-- Last post date -->
Collections personnalisées
Créer une nouvelle collection
- Ajouter à la configuration :
collections:
tutorials:
output: true
permalink: /tutorials/:title/
- Définir les valeurs par défaut :
defaults:
- scope:
path: "pages/_tutorials"
type: tutorials
values:
layout: tutorial
- Créer le répertoire :
mkdir pages/_tutorials
- Ajouter du contenu :
---
title: "My Tutorial"
difficulty: beginner
---
Stratégies d’organisation
Par catégorie
pages/_docs/
├── getting-started/
│ ├── index.md
│ └── quick-start.md
├── features/
│ ├── index.md
│ └── feature-name.md
└── customization/
├── index.md
└── styles.md
Par date
pages/_posts/
├── 2025-01-25-first-post.md
├── 2025-01-24-second-post.md
└── 2025-01-23-third-post.md
Par sujet
pages/_notebooks/
├── data-science/
│ ├── pandas-basics.ipynb
│ └── visualization.ipynb
└── machine-learning/
└── classification.ipynb
Permaliens
Variables de permalien
| Variable | Description |
|---|---|
:collection |
Nom de la collection |
:path |
Chemin depuis la racine de la collection |
:name |
Nom de fichier sans extension |
:title |
Titre slugifié |
:basename |
Nom de fichier sans la date |
:year |
Année à 4 chiffres |
:month |
Mois à 2 chiffres |
:day |
Jour à 2 chiffres |
Permaliens personnalisés
# In front matter
---
permalink: /my-custom-url/
---
URL lisibles
# _config.yml
permalink: pretty # Adds trailing slash
Pages de collection
Pages d’index
Créez des pages d’index de collection :
# pages/_docs/index.md
---
title: Documentation
layout: collection
collection: docs
---
Welcome to the documentation...
Mise en page de la collection
<!-- _layouts/collection.html -->
---
layout: default
---
<h1>{{ page.title }}</h1>
{% assign items = site[page.collection] | sort: "title" %}
{% for item in items %}
<article>
<h2><a href="{{ item.url }}">{{ item.title }}</a></h2>
<p>{{ item.description }}</p>
</article>
{% endfor %}
Bonnes pratiques
Conventions de nommage
- Utilisez des minuscules pour les répertoires
- Utilisez des traits d’union dans les noms de fichiers
- Gardez des URL courtes et descriptives
Front matter
- Incluez toujours
title - Ajoutez
descriptionpour le référencement - Utilisez un format de date cohérent
Organisation
- Regroupez le contenu connexe
- Utilisez des pages d’index pour les sections
- Maintenez une hiérarchie peu profonde
Dépannage
La collection n’apparaît pas
- Vérifiez
output: truedans la configuration - Vérifiez que le chemin du répertoire correspond à la configuration
- Assurez-vous que les fichiers comportent un front matter
Mauvais permalien
- Vérifiez le modèle de permalien dans la configuration
- Vérifiez le permalien du front matter
- Videz le cache de Jekyll
Valeurs par défaut manquantes
- Vérifiez que le chemin de portée est correct
- Vérifiez que le type correspond au nom de la collection
- Redémarrez le serveur Jekyll
Voir aussi
Voir aussi
- [[Jekyll]]
- [[front-matter]]
- [[Liquid]]