Techniques avancées avec Pandoc
Pandoc est bien plus qu’un simple convertisseur Markdown vers HTML. Découvrons quelques fonctionnalités avancées.
Filtres Pandoc
Les filtres permettent de transformer le document pendant la conversion. Ils peuvent être écrits en Lua, Python, ou autres langages.
Exemple de filtre Lua simple
function Header(el)
if el.level == 1 then
el.attributes.class = "main-title"
end
return el
endTemplates personnalisés
Pandoc utilise des templates pour générer le HTML final. Vous pouvez créer vos propres templates :
pandoc --print-default-template=html5 > custom-template.htmlEnsuite, modifiez le template et utilisez-le :
pandoc input.md -o output.html --template=custom-template.htmlVariables et métadonnées
Les métadonnées YAML peuvent être utilisées dans les templates :
---
title: "Mon article"
author: "Michel"
lang: fr
keywords: [pandoc, markdown, html]
---Extensions Markdown
Pandoc supporte de nombreuses extensions Markdown :
Tables avancées
+---------------+---------------+--------------------+
| Fruit | Price | Advantages |
+===============+===============+====================+
| Bananas | $1.34 | - built-in wrapper |
| | | - bright color |
+---------------+---------------+--------------------+Notes de bas de page
Voici un texte avec une note1.
Définitions
- Terme
- Définition du terme
Attributs sur les éléments
{width=50%}
## Titre {#custom-id .my-class}Conversion vers d’autres formats
Vers PDF
pandoc input.md -o output.pdf --pdf-engine=xelatexVers DOCX
pandoc input.md -o output.docx --reference-doc=template.docxVers EPUB
pandoc input.md -o output.epub --toc --epub-cover-image=cover.jpgOptions utiles
Table des matières
pandoc input.md -o output.html --toc --toc-depth=3Numérotation des sections
pandoc input.md -o output.html --number-sectionsInclusion de fichiers
pandoc header.md content.md footer.md -o output.htmlConclusion
Pandoc est un outil extrêmement flexible qui mérite d’être exploré en profondeur. Ces techniques avancées vous permettront de créer des documents professionnels et hautement personnalisés.