Vai al contenuto

Template

Interpolazione con text/template di Go in una presentazione: valori, slide generate, numeri di pagina, inclusioni.

La presentazione è un text/template di Go, valutato prima che il Markdown venga analizzato. Tutto ciò che il linguaggio dei template Go offre — azioni, pipeline, if, range, with, variabili — funziona in una presentazione.

Dati

Il punto del template contiene le chiavi del front matter, poi le chiavi della mappa data:, poi i dati forniti sulla riga di comando o in slides.yaml — ciascuno sovrascrive il precedente.

---
marp: true
title: Quarterly review
data:
  team: Platform
---

# {{ .title }}

Presented by the {{ .team }} team.

Dalla riga di comando:

FlagFornisce
--data file.yamlun file di dati YAML o JSON (ripetibile)
--set key=valueun valore (ripetibile)

Generare slide

L’intero corpo è un unico template, quindi un range che scrive --- scrive slide:

{{ range .releases }}
---

# {{ .version }}

{{ range .changes }}- {{ . }}
{{ end }}
{{ end }}

Pagina e totale

{{ page }} e {{ total }} sono il numero della slide e il numero di slide. Sono noti solo dopo che la presentazione è stata divisa, quindi vengono compilati in quel momento — una presentazione generata conta le slide che ha generato.

<!-- footer: "{{ page }} / {{ total }}" -->

Include

{{ include "parts/agenda.md" }} inserisce un altro file, relativo alla presentazione.

Il codice non viene toccato

I blocchi di codice delimitati e le porzioni di codice in linea vengono messi da parte prima che il template venga eseguito e ripristinati alla lettera, quindi una slide sui template Go può mostrare {{ .Name }} senza fare l’escape.

Limiti

L’esecuzione dei template ha un budget di passi, in modo che una presentazione i cui template annidano range su grandi liste di dati non possa tenere occupato il renderer per minuti. Oltre 1.048.576 passi (iterazioni di ciclo e chiamate di template, condivisi con gli include di una stessa espansione) o 10 s, la presentazione viene rifiutata con la diagnostica template.limit invece di bloccarsi. Un passo costa circa 260 ns, quindi le presentazioni ordinarie restano ben al di sotto del limite. Dalla v0.17.1.

Disattivarlo

--no-template legge la presentazione come Marp semplice: {{ è testo.

Created on by tannevaled

Modified on by tannevaled