Table des matières
Créer une table des matières automatique et masquable
Créer une table des matières automatique et masquable avec Jekyll mais sans plugin, avec quelques lignes de code JavaScript et CSS.
14 nov 2024 · ≤ 1 min ·
Mode opératoire
- Télécharger le fichier
toc.html
depuis https://github.com/allejo/jekyll-toc/blob/master/_includes/toc.html - Charger ce fichier dans le répertoire
_includes
- Modifier le fichier correspondant au modèle des articles (
_layouts/post.html
dans mon cas)- Ajouter le structure accueillant la table des matières
- Ajouter les lignes de code JavaScript
- Ajouter les ligne de code CSS
Structure accueillant la table des matières
<article class="message">
<div class="message-header is-clickable" id="header_toc">
<span>Table des matières</span>
<button class="fa-solid fa-arrows-left-right-to-line is-right" id="toggle_toc"></button>
</div>
<div class="message-body" id="my_toc">
{% include toc.html html=content sanitize=true ordered=true h_min=2 h_max=5 %}
</div>
</article>
Elements à ajouter à la feuille de style
.message {
width: 100%;
transition: width 0.5s ease;
}
.message.collapsed {
width: 25%;
}
.is-hidden {
display: none;
}
JavaScript à ajouter à la page
<script>
document.getElementById("header_toc").addEventListener("click", toggle_toc);
function toggle_toc() {
const tocBody = document.getElementById("my_toc");
const article = document.querySelector(".message");
tocBody.classList.toggle("is-hidden"); // Masquer/afficher le contenu
article.classList.toggle("collapsed"); // Réduire/agrandir la largeur
}
document.getElementById("header_toc").click();
</script>
Résultat
Vous pouvez observez le résultat obtenu en regardant la table des matières de cet article.
Sources
Articles similaires
- Partager simplement un article sur les réseaux sociaux avec Open Graph
12 nov 2024 · 3 min ·
- Mettre en oeuvre la pagination avec Jekyll et Bulma.
11 nov 2024 · 2 min ·
- Intégrer un fil de discussion Mastodon à un blog
10 nov 2024 · 4 min ·
- Implémenter la numérotation automatique des titres via CSS.
29 oct 2024 · ≤ 1 min ·
- Mémo de syntaxe Markdown.
27 oct 2024 · 3 min ·
- Bulma, démarrage rapide.
18 oct 2024 · 2 min ·
Partage et commentaires
Vous pouvez commenter cet article grâce à ce fil de discussion sur Mastodon (avec Mastodon ou un autre compte ActivityPub/​Fediverse).