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

Regroupement des déclarations de variable

  • La définition des variables incluses dans le template est particulièrement lourde en ligne de commande
  • Pandoc permet de le faire dans un fichier séparé au format YAML
  • YAML : acronyme récursif pour YAML Ain't Markup Language
  • YAML est un format de représentation de données (comme CSV ou JSON)
  • Syntaxe de base :
    • Commentaire de fin de ligne introduit par #
    • Définition d'une variable scalaire : nomVariable: valeur
    • Définition d'une variable multiligne (respect du retour chariot) :
      variableMultiLigne: |
        # titre niveau 1 md
        ## titre niveau 2 md
      
    • Définition d'un tableau : nomTableau: [val1, val2, val3, ...]
    • Définition d'une map :
       couleur: 
       - rouge
       - green
       - blue
      longueur:
       + '1 mètre'
       + '2 mètres'
      
  • Exemple pour le template précédent (fichier metadata.yml) :
    lang: fr
    titrePrincipal: Grand Titre
    sousTitre: Sous-titre
  • Commande pandoc :
    pandoc -f commonmark -t html -s 
    --template principal.html 
    --metadata-file metadata.yml docBase.md 
  • Bonus : si une variable multiligne du fichier YAML correspond à du code MarkDown, celui ci est interprété par pandoc !
    • Exemple.yml :
      titre3: |
       ### Titre de niveau 3
      liste: |
       + item numéro 1
       + item numéro 2
       + item numéro 3  
    • La variable $titre3$ est substituée par <h3>Titre de niveau 3</h3> dans le document final
    • La variable $liste$ est substituée par
      <ul>
      <li>item numéro 1</li>
      <li>item numéro 2</li>
      <li>item numéro 3</li>
      </ul>
      dans le document final