コンテンツにスキップ

テンプレート

スライドデッキでの Go text/template による埋め込み:値、スライドの生成、ページ番号、インクルード。

スライドデッキは Go の text/template であり、 Markdown の解析 前 に評価されます。Go のテンプレート言語が備えるもの (アクション、パイプライン、if、range、with、変数)は、すべて スライドデッキの中で使えます。

データ

テンプレートのドットには、フロントマターのキー、次にその data: マッピングのキー、さらにコマンドラインまたは slides.yaml で与えたデータが、 この順に入ります。後のものが前のものを上書きします。

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

# {{ .title }}

Presented by the {{ .team }} team.

コマンドラインからは次のように指定します。

フラグ与えるもの
--data file.yamlデータを記述した YAML または JSON ファイル(複数回指定可)
--set key=value1 つの値(複数回指定可)

スライドを生成する

本文全体が 1 つのテンプレートなので、--- を書き出す range はスライドを書き出すことになります。

{{ range .releases }}
---

# {{ .version }}

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

ページ番号と総数

{{ page }} と {{ total }} は、そのスライドの番号とスライドの総数です。 これらはスライドデッキが分割されて初めて決まるため、その時点で埋め込まれます。 生成されたスライドデッキでは、生成されたスライドも数えられます。

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

インクルード

{{ include "parts/agenda.md" }} は、スライドデッキからの相対パスで指定した別のファイルを 挿入します。

コードはそのまま

フェンスで囲んだコードブロックとインラインコードは、テンプレートの実行前に取り分けられ、 そのまま元に戻されます。そのため、Go テンプレートについてのスライドでも {{ .Name }} をエスケープせずに表示できます。

無効にする

--no-template を指定すると、スライドデッキをプレーンな Marp として読み込みます。{{ はただのテキストになります。

Created on by tannevaled

Modified on by tannevaled