Saltar al contenido

Plantillas

Interpolación con text/template de Go en una presentación: valores, diapositivas generadas, números de página, inclusiones.

La presentación es una text/template de Go, evaluada antes de analizar el Markdown. Todo lo que ofrece el lenguaje de plantillas de Go (acciones, tuberías, if, range, with, variables) funciona en una presentación.

Datos

El punto de la plantilla contiene las claves del front matter, luego las claves de su mapa data:, y luego los datos indicados en la línea de comandos o en slides.yaml, cada uno sobrescribiendo al anterior.

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

# {{ .title }}

Presented by the {{ .team }} team.

Desde la línea de comandos:

OpciónAporta
--data file.yamlun archivo YAML o JSON de datos (repetible)
--set key=valueun valor (repetible)

Generar diapositivas

Todo el cuerpo es una plantilla, así que un range que escribe --- escribe diapositivas:

{{ range .releases }}
---

# {{ .version }}

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

Página y total

{{ page }} y {{ total }} son el número de la diapositiva y el número de diapositivas. Solo se conocen una vez dividida la presentación, así que se rellenan entonces: una presentación generada cuenta las diapositivas que generó.

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

Incluir

{{ include "parts/agenda.md" }} inserta otro archivo, relativo a la presentación.

El código se deja tal cual

Los bloques de código y los fragmentos de código en línea se apartan antes de ejecutar la plantilla y se restituyen sin cambios, de modo que una diapositiva sobre plantillas de Go puede mostrar {{ .Name }} sin escaparlo.

Límites

La ejecución de plantillas tiene un presupuesto de pasos, para que una presentación cuyas plantillas anidan range sobre listas de datos grandes no pueda tener ocupado el renderizador durante minutos. Pasados 1 048 576 pasos (iteraciones de bucle y llamadas a plantillas, compartidos con los include de una misma expansión) o 10 s, la presentación se rechaza con el diagnóstico template.limit en lugar de colgarse. Un paso cuesta unos 260 ns, así que las presentaciones normales quedan muy por debajo del límite. Desde v0.17.1.

Desactivarlas

--no-template lee la presentación como Marp plano: {{ es texto.

Creada el por tannevaled

Modificada el por tannevaled