Шаблони
Презентація — це text/template Go, що
обчислюється до розбору Markdown. Усе, що має мова шаблонів Go — дії,
конвеєри, if, range, with, змінні — працює в презентації.
Дані
Крапка шаблону містить ключі front matter, потім ключі його відображення
data:, потім дані, задані в командному рядку або в slides.yaml — кожне
перевизначає попереднє.
---
marp: true
title: Quarterly review
data:
team: Platform
---
# {{ .title }}
Presented by the {{ .team }} team.З командного рядка:
| Прапорець | Дає |
|---|---|
--data file.yaml | файл даних YAML або JSON (можна повторювати) |
--set key=value | одне значення (можна повторювати) |
Генерація слайдів
Усе тіло — це один шаблон, тож range, що пише ---, пише слайди:
{{ range .releases }}
---
# {{ .version }}
{{ range .changes }}- {{ . }}
{{ end }}
{{ end }}Сторінка й підсумок
{{ page }} та {{ total }} — це номер слайда та кількість слайдів. Вони
відомі лише після того, як презентацію розбито на слайди, тому заповнюються
саме тоді — згенерована презентація рахує слайди, які вона згенерувала.
<!-- footer: "{{ page }} / {{ total }}" -->Include
{{ include "parts/agenda.md" }} вставляє інший файл відносно презентації.
Код не чіпають
Блоки коду та рядкові фрагменти коду відкладаються вбік перед запуском шаблону
й відновлюються дослівно, тож слайд про шаблони Go може показати
{{ .Name }} без екранування.
Обмеження
Виконання шаблону має бюджет кроків, щоб презентація, шаблони якої вкладають
range над великими списками даних, не могла хвилинами тримати рендерер
зайнятим. Після 1 048 576 кроків (ітерації циклів і виклики шаблонів, спільні з
include одного розгортання) або 10 с презентацію відхиляють з діагностикою
template.limit замість зависання. Крок коштує близько 260 нс, тож звичайні
презентації лишаються далеко від межі. Починаючи з v0.17.1.
Вимкнення
--no-template читає презентацію як звичайний Marp: {{ — це текст.
Created on by tannevaled
Modified on by tannevaled