Szablony
Prezentacja jest szablonem Go text/template,
wyliczanym przed parsowaniem Markdownu. Wszystko, co ma język szablonów
Go — akcje, potoki, if, range, with, zmienne — działa
w prezentacji.
Dane
Kropka szablonu przechowuje klucze front matter, potem klucze jego mapy
data:, potem dane podane w wierszu poleceń lub w slides.yaml
— każde nadpisuje poprzednie.
---
marp: true
title: Quarterly review
data:
team: Platform
---
# {{ .title }}
Presented by the {{ .team }} team.Z wiersza poleceń:
| Flaga | Daje |
|---|---|
--data file.yaml | plik danych YAML lub JSON (można powtarzać) |
--set key=value | jedną wartość (można powtarzać) |
Generowanie slajdów
Całe ciało jest jednym szablonem, więc range, który zapisuje ---, zapisuje slajdy:
{{ range .releases }}
---
# {{ .version }}
{{ range .changes }}- {{ . }}
{{ end }}
{{ end }}Strona i suma
{{ page }} i {{ total }} to numer slajdu i liczba slajdów.
Są znane dopiero po podziale prezentacji, więc są wtedy uzupełniane
— wygenerowana prezentacja liczy wygenerowane przez siebie slajdy.
<!-- footer: "{{ page }} / {{ total }}" -->Include
{{ include "parts/agenda.md" }} wstawia inny plik, względem
prezentacji.
Kod zostaje nietknięty
Bloki kodu i fragmenty kodu w tekście są odkładane na bok przed uruchomieniem
szablonu i przywracane bez zmian, więc slajd o szablonach Go może pokazać
{{ .Name }} bez ucieczki znaków.
Limity
Wykonanie szablonu ma budżet kroków, aby prezentacja, której szablony zagnieżdżają
range nad dużymi listami danych, nie mogła zajmować renderera przez minuty.
Po przekroczeniu 1 048 576 kroków (iteracje pętli i wywołania szablonów, wspólne dla
include jednego rozwinięcia) lub 10 s prezentacja jest odrzucana z diagnostyką
template.limit zamiast się zawieszać. Krok kosztuje około 260 ns, więc zwykłe
prezentacje pozostają daleko poniżej tej granicy. Od v0.17.1.
Wyłączanie
--no-template czyta prezentację jako zwykły Marp: {{ jest tekstem.
Utworzono przez tannevaled
Zmodyfikowano przez tannevaled