Qu’est-ce que le Front Matter ?
Le front matter est constitué de métadonnées YAML placées au début de tout fichier Jekyll (Markdown ou HTML). Il doit être la première chose dans le fichier et être encadré par des lignes composées de trois tirets.
---
title: "My Page Title"
layout: default
---
Page content starts here...
Variables principales
Requises pour toutes les pages
---
title: "Page Title" # Required - Display title
layout: default # Required - Template to use
---
Variables optionnelles courantes
---
title: "My Page"
description: "SEO description (150-160 characters)"
date: 2026-01-31T10:00:00.000Z
lastmod: 2026-01-31T10:00:00.000Z
author: "Author Name"
permalink: /custom-url/
published: true # Set to false to hide
draft: false # Draft status
---
Variables spécifiques à la mise en page
Articles de blog (layout: article)
---
title: "Blog Post Title"
description: "Post description for SEO"
layout: article
date: 2026-01-31T10:00:00.000Z
lastmod: 2026-01-31T10:00:00.000Z
categories: [Category, Subcategory]
tags: [tag1, tag2, tag3]
author: "Author Name"
# Article-specific
post_type: standard # standard, featured, breaking, tutorial
featured: false # Feature on homepage
preview: /assets/images/preview.png # Preview image
show_hero: false # true → render preview as the article hero banner
# for any post_type (featured/breaking always show it)
# Engagement
comments: true # Enable comments
share: true # Show share buttons
related: true # Show related posts
# Sidebar
sidebar: true
author_profile: true
read_time: true
---
Documentation (layout: default)
---
title: "Documentation Page"
description: "Doc page description"
layout: default
categories: [docs, category]
tags: [documentation]
permalink: /docs/page-name/
# Documentation-specific
difficulty: beginner # beginner, intermediate, advanced
estimated_time: 10 minutes
prerequisites: []
updated: 2026-01-31
# Sidebar navigation
sidebar:
nav: docs # Navigation group name
# OR
nav: auto # Auto-generate
# OR
nav: tree # Tree view
toc_sticky: true # Sticky table of contents
---
Notes (layout: note)
---
title: "Note Title"
description: "Brief note description"
layout: note
date: 2026-01-31T10:00:00.000Z
lastmod: 2026-01-31T10:00:00.000Z
categories: [Notes, Category]
tags: [reference, cheatsheet]
author: "Author Name"
difficulty: beginner
comments: true
permalink: /notes/note-name/
---
Carnets (layout: notebook)
---
title: "Jupyter Notebook Title"
description: "Notebook description"
layout: notebook
collection: notebooks
date: 2026-01-31T10:00:00.000Z
lastmod: 2026-01-31T10:00:00.000Z
categories: [Notebooks, Data Science]
tags: [python, pandas, jupyter]
author: "Author Name"
# Notebook-specific
jupyter_metadata: true # Show kernel info
difficulty: intermediate
# Engagement
comments: true
share: true
related: true
permalink: /notebooks/notebook-name/
---
Pages d’accueil (layout: landing)
---
title: "Landing Page"
description: "Landing page description"
layout: landing
permalink: /landing/
# Hero section
hero:
title: "Hero Title"
subtitle: "Hero subtitle text"
cta_text: "Get Started"
cta_url: /quickstart/
background: /assets/images/hero-bg.jpg
# Features section
features:
- title: "Feature 1"
description: "Feature description"
icon: "bi-lightning"
---
Variables d’organisation
Catégories
Les catégories créent une organisation hiérarchique. Utilisez des tableaux pour plusieurs niveaux :
# Single category
categories: Documentation
# Multiple categories (hierarchy)
categories: [Development, Jekyll, Themes]
# Will create URL: /categories/development/jekyll/themes/
Étiquettes
Les étiquettes sont des libellés plats pour la découverte du contenu :
# Single tag
tags: jekyll
# Multiple tags (array)
tags: [jekyll, ruby, static-site, tutorial]
# Alternative syntax
tags:
- jekyll
- ruby
- static-site
Variables SEO
---
title: "Page Title" # Used in <title> tag
description: "Meta description for search engines (150-160 chars)"
# Open Graph (Social sharing)
og_image: /assets/images/og-image.png
og_type: article # website, article, etc.
# Twitter Cards
twitter_card: summary_large_image
twitter_image: /assets/images/twitter-card.png
# Canonical URL (prevent duplicates)
canonical_url: https://example.com/original-page/
# Robots
noindex: false # Exclude from search engines
nofollow: false # Don't follow links
---
Variables de navigation
Configuration de la barre latérale
---
sidebar:
nav: docs # Use named navigation from _data/navigation/
# OR auto-generate based on content
sidebar:
nav: auto
# OR tree view
sidebar:
nav: tree
# Disable sidebar
sidebar: false
---
Table des matières
---
toc: true # Enable ToC
toc_label: "Contents" # Custom label
toc_icon: "list" # Bootstrap icon
toc_sticky: true # Stick to viewport
toc_levels: "1..3" # Heading levels to include
---
Formats de date
Jekyll accepte divers formats de date :
# ISO 8601 (Recommended)
date: 2026-01-31T10:00:00.000Z
# Date only
date: 2026-01-31
# With timezone
date: 2026-01-31 10:00:00 -0500
# In filename
# 2026-01-31-post-title.md automatically sets date
Variables personnalisées
Vous pouvez définir n’importe quelle variable personnalisée :
---
title: "My Page"
layout: default
# Custom variables
project_version: "2.0.0"
github_repo: "user/repo"
demo_url: "https://demo.example.com"
sponsors:
- name: "Sponsor 1"
url: "https://sponsor1.com"
- name: "Sponsor 2"
url: "https://sponsor2.com"
---
<!-- Access in templates -->
Version:
Repo:
Valeurs par défaut spécifiques aux collections
Définissez des valeurs par défaut dans _config.yml pour éviter les répétitions :
# _config.yml
defaults:
# All pages
- scope:
path: ""
values:
layout: default
author_profile: false
# Posts collection
- scope:
path: pages/_posts
values:
layout: article
comments: true
share: true
# Notes collection
- scope:
path: pages/_notes
type: notes
values:
layout: note
comments: true
Tableau de référence des variables
| Variable | Type | Description |
|---|---|---|
title |
string | Titre de la page |
description |
string | Méta-description |
layout |
string | Nom du modèle |
date |
datetime | Date de publication |
lastmod |
datetime | Dernière modification |
author |
string | Nom de l’auteur |
categories |
array | Catégories de contenu |
tags |
array | Étiquettes de contenu |
permalink |
string | URL personnalisée |
published |
boolean | Statut de publication |
draft |
boolean | Statut de brouillon |
comments |
boolean | Activer les commentaires |
share |
boolean | Afficher les boutons de partage |
sidebar |
object/boolean | Config de la barre latérale |
toc |
boolean | Table des matières |
difficulty |
string | Difficulté du contenu |
Bonnes pratiques
-
Incluez toujours
titleetlayout- Ce sont des éléments essentiels pour un rendu correct -
Rédigez de bonnes descriptions - Restez entre 150 et 160 caractères pour le SEO
-
Utilisez des dates ISO 8601 -
2026-01-31T10:00:00.000Zpour la cohérence -
Limitez les étiquettes à 5-7 - Trop d’étiquettes diluent leur utilité
-
Utilisez des catégories pertinentes - 2 à 3 niveaux maximum
-
Définissez
lastmodlors des mises à jour - Aide au SEO et à la confiance des utilisateurs -
Utilisez les permaliens - Des URL stables évitent les liens brisés
-
N’oubliez pas
description- Essentiel pour le SEO et le partage sur les réseaux sociaux
Comments