L1 Info : Informatique et Document, MarkDown & Pandoc
 
◃  Ch. 2 Pandoc  ▹
 

Intégration d'un sous-template

  • Disponible depuis pandoc 2.8 (2019-11-22) !
  • Exemple d'intégration d'un bandeau d'en-tête :
    • code source du sous-template (fichier bandeau.html) :
      <div id="bandeau">
      <h1>$titrePrincipal$</h1>
      <h2>$sousTitre$</h2>
      </div>
    • code source du template principal (fichier principal.html) :
      <!DOCTYPE html>
      <html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$">
      <head>
      <meta charset="utf-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
      <title>$titrePrincipal$ : $sousTitre$</title>
      </head>
      <body>
      $ bandeau() $
      $body$
      </body>
      </html>
  • Ici, les variables $titrePrincipal$ et $sousTitre$ sont partagées par le template principal et le sous-template
    pandoc -f commonmark -t html -s 
    --template principal.html 
    --metadata titrePrincipal="Grand titre" 
    --metadata sousTitre="Sous-titre" 
    exempleSousTemplate.md 
  • Fichier markdown traité exempleSousTemplate.md
  • Document produit :
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
    <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
    <title>Grand titre : Sous-titre</title>
    </head>
    <body>
    <div id="bandeau">
    <h1>Grand titre</h1>
    <h2>Sous-titre</h2>
    </div>
    <h1>Titre principal de ma page</h1>
    <h2>Sous-titre</h2>
    <p>Un peu de texte pour produire un paragraphe, mais il ne faut pas en raconter de <strong>trop</strong> !</p>
    <ul>
    <li>regle <em>numéro 1</em></li>
    <li>règle <em>numéro 2</em></li>
    <li>règle <em>numéro 3</em></li>
    <li>règle <em>numéro 4</em></li>
    </ul>
    </body>
    </html>