Composants d’inclusion
Le thème Zer0-Mistakes comprend plus de 70 composants réutilisables organisés par catégorie.
Vue d’ensemble
_includes/
├── analytics/ # Analytics integrations
├── components/ # UI components
├── content/ # Content rendering
├── core/ # Core layout elements
├── docs/ # Documentation specific
├── landing/ # Landing page components
├── navigation/ # Navigation elements
└── stats/ # Statistics dashboard
Utilisation des inclusions
Utilisation de base
{% include navigation/navbar.html %}
Avec des paramètres
{% include components/post-card.html post=post %}
Inclusion conditionnelle
{% if page.toc %}
{% include content/toc.html %}
{% endif %}
Inclusions d’analyse
| Inclusion |
Objectif |
analytics/google-analytics.html |
Google Analytics 4 |
analytics/google-tag-manager-head.html |
Script GTM dans l’en-tête |
analytics/google-tag-manager-body.html |
GTM body noscript |
analytics/posthog.html |
Analyse PostHog |
Utilisation
{% include analytics/posthog.html %}
Inclusions de composants
| Inclusion |
Objectif |
components/author-card.html |
Carte d’informations sur l’auteur |
components/cookie-consent.html |
Bandeau de cookies RGPD |
components/mermaid.html |
Chargeur de diagrammes Mermaid |
components/post-card.html |
Carte d’article de blog |
components/preview-image.html |
Gestionnaire d’image d’aperçu |
components/background-image.html |
Illustration de couverture en arrière-plan CSS, avec role="img" + aria-label ou aria-hidden |
components/search-modal.html |
Fenêtre modale de recherche |
components/searchbar.html |
Ébauche de recherche de style Algolia (obsolète, utiliser search-modal.html) |
components/theme-info.html |
Fenêtre modale de version du thème |
Exemple de carte d’article
{% for post in site.posts limit: 3 %}
{% include components/post-card.html post=post %}
{% endfor %}
Carte d’auteur
{% include components/author-card.html
name=page.author
avatar="/assets/images/avatar.png"
%}
Inclusions de contenu
| Inclusion |
Objectif |
content/giscus.html |
Commentaires GitHub Discussions |
content/intro.html |
Introduction de la page |
content/seo.html |
Balises meta SEO |
content/sitemap.html |
Entrée de sitemap |
content/toc.html |
Table des matières |
Inclusion de la table des matières
{% if page.toc != false %}
{% include content/toc.html %}
{% endif %}
{% if page.comments != false and site.giscus.enabled %}
{% include content/giscus.html %}
{% endif %}
Inclusions principales
| Inclusion |
Objectif |
core/branding.html |
Logo et titre du site |
core/footer.html |
Pied de page |
core/head.html |
Section head HTML |
core/header.html |
En-tête de page/barre de navigation |
Utilisation de la mise en page
<!DOCTYPE html>
<html>
<head>
{% include core/head.html %}
</head>
<body>
{% include core/header.html %}
{{ content }}
{% include core/footer.html %}
</body>
</html>
Inclusions de navigation
| Inclusion |
Objectif |
navigation/breadcrumbs.html |
Fil d’Ariane |
navigation/nav_list.html |
Liste de navigation |
navigation/nav-tree.html |
Navigation arborescente |
navigation/navbar.html |
Barre de navigation principale |
navigation/sidebar-config.html |
Résout le mode/titre/icône effectif de la barre latérale (page → collection → site) |
navigation/sidebar-nav.html |
Affiche le mode de barre latérale résolu |
navigation/sidebar-categories.html |
Barre latérale de catégories/étiquettes (articles par terme de taxonomie) |
navigation/sidebar-folders.html |
Barre latérale de collection (arborescence de dossiers repliable) |
navigation/sidebar-left.html |
Panneau de barre latérale gauche |
navigation/sidebar-right.html |
Barre latérale droite (table des matières) |
Barre latérale avec navigation
Le mode de barre latérale provient de la clé de front matter sidebar.nav (ou d’une valeur par défaut de collection/site), et non d’un paramètre d’inclusion :
sidebar:
nav: docs # auto | collection | categories | tags | <_data/navigation file>
{% include navigation/sidebar-left.html %}
Consultez Navigation par barre latérale pour la référence complète des modes et options.
Inclusions de page d’accueil
| Inclusion |
Objectif |
landing/landing-install-cards.html |
Options d’installation |
landing/landing-quick-links.html |
Liens d’action rapide |
Utilisation
{% include landing/landing-install-cards.html %}
Includes de statistiques
| Include |
Objectif |
stats/stats-categories.html |
Statistiques de catégorie |
stats/stats-header.html |
En-tête de la page de statistiques |
stats/stats-metrics.html |
Affichage des métriques |
stats/stats-no-data.html |
État vide |
stats/stats-overview.html |
Cartes de synthèse |
stats/stats-tags.html |
Nuage de tags |
Créer des includes personnalisés
Include de base
<!-- _includes/components/custom.html -->
<div class="custom-component">
<h3></h3>
<p></p>
</div>
Avec des paramètres
{% include components/custom.html
title="My Title"
content="My content"
%}
Avec des valeurs par défaut
{% assign title = include.title | default: "Default Title" %}
<h3>{{ title }}</h3>
Contenu conditionnel
{% if include.show_icon %}
<i class="bi bi-{{ include.icon }}"></i>
{% endif %}
Bonnes pratiques
Documentation des paramètres
Ajoutez des commentaires en haut des includes :
<!--
Include: post-card.html
Parameters:
- post (required): Post object
- show_excerpt (optional): Show excerpt, default true
- show_date (optional): Show date, default true
-->
Gestion des erreurs
{% if include.post %}
<!-- render post card -->
{% else %}
<!-- error: post required -->
{% endif %}
- Évitez les boucles imbriquées dans les includes
- Utilisez des captures pour la logique complexe
- Mettez en cache les opérations coûteuses
Remplacer les includes du thème
Copier et modifier
- Copiez l’include du thème vers votre
_includes/
- Modifiez selon vos besoins
- Jekyll utilise votre version
Vérifier l’emplacement du thème
bundle show jekyll-theme-zer0
# Copy includes from gem location
Dépannage
Include introuvable
- Vérifiez que le chemin du fichier est correct
- Vérifiez que le fichier existe
- Recherchez les fautes de frappe dans le nom du fichier
Paramètre qui ne fonctionne pas
- Vérifiez que le nom du paramètre correspond
- Vérifiez les paramètres requis
- Déboguez avec
nil
Boucle infinie
- Recherchez les includes circulaires
- Ajoutez des garde-fous pour la récursion
- Utilisez une limite de profondeur
Ressources associées
Référence technique
Pour les détails destinés aux contributeurs (référence de l’API des composants, paramètres des includes, extension de la bibliothèque de composants) :
Voir aussi
- [[Customization]]
- [[Layouts]]
-
| [[Bootstrap 5 Integration in Zer0-Mistakes |
Bootstrap 5 Integration]] |