Gabarits
La présentation est un gabarit Go text/template,
évalué avant l’analyse du Markdown. Tout ce qu’offre le langage de gabarits
de Go — actions, pipelines, if, range, with, variables — fonctionne
dans une présentation.
Données
Le point du gabarit contient les clés du front matter, puis les clés de son
mapping data:, puis les données fournies en ligne de commande ou dans slides.yaml
— chacune remplaçant la précédente.
---
marp: true
title: Quarterly review
data:
team: Platform
---
# {{ .title }}
Presented by the {{ .team }} team.En ligne de commande :
| Option | Fournit |
|---|---|
--data file.yaml | un fichier de données YAML ou JSON (répétable) |
--set key=value | une valeur (répétable) |
Générer des diapositives
Le corps entier est un seul gabarit : un range qui écrit --- écrit donc des diapositives :
{{ range .releases }}
---
# {{ .version }}
{{ range .changes }}- {{ . }}
{{ end }}
{{ end }}Numéro de page et total
{{ page }} et {{ total }} sont le numéro de la diapositive et le nombre de
diapositives. Ils ne sont connus qu’une fois la présentation découpée : ils sont donc renseignés
à ce moment-là — une présentation générée compte les diapositives qu’elle a générées.
<!-- footer: "{{ page }} / {{ total }}" -->Inclusion
{{ include "parts/agenda.md" }} insère un autre fichier, relatif à la
présentation.
Le code n’est pas touché
Les blocs de code délimités et les extraits de code en ligne sont mis de côté avant l’exécution du gabarit
puis restitués tels quels : une diapositive consacrée aux gabarits Go peut ainsi montrer
{{ .Name }} sans l’échapper.
Limites
L’exécution des gabarits a un budget d’étapes, pour qu’une présentation dont les gabarits imbriquent
des range sur de grandes listes de données ne puisse pas occuper le moteur de rendu pendant des
minutes. Au-delà de 1 048 576 étapes (itérations de boucle et appels de gabarit, partagés avec les
include d’une même expansion) ou de 10 s, la présentation est refusée avec le diagnostic
template.limit au lieu de se bloquer. Une étape coûte environ 260 ns : les présentations
ordinaires restent donc très en dessous de la borne. Depuis la v0.17.1.
Désactivation
--no-template lit la présentation comme du Marp ordinaire : {{ est du texte.
Créée le par tannevaled
Modifiée le par tannevaled