Шаблоны и переменные Pandoc

Все примеры расположены в репозиторииopen in new window.

При генерации целого документаopen in new window (параметр -s) Pandoc выводит данные в шаблон. Для каждого выходного формата шаблоны разные. Чтобы посмотреть шаблон используйте команду

pandoc -D *FORMAT*
1

Например

pandoc -D markdown
1

Вывод будет следующий

$if(titleblock)$ $titleblock$

$endif$ $for(header-includes)$ $header-includes$

$endfor$ $for(include-before)$ $include-before$

$endfor$ $if(toc)$ $table-of-contents$

$endif$ $body$ $for(include-after)$

$include-after$ $endfor$
1
2
3
4
5
6
7
8
9
10
11

Последние версии всех шаблонов хранятся в репозиторииopen in new window.

Можно использовать не только стандартный шаблон, а сделать свой. Создадим файл template01.md с самым простым шаблоном, который просто выведет весь документ:

$body$
1

И запустим конвертацию с параметром --template:

pandoc -o output.md -f markdown -t markdown -s --template template01.md input01.md
1

В шаблонах можно использовать переменные, такие как title, например, заданный в файле метаданныхopen in new window. Изменим шаблон:

# $title$

$body$
1
2
3

И добавим metadata.yaml:

title: Заголовок
1

Запускаем командой:

pandoc -o output.md -f markdown -t markdown -s --template template02.md --metadata-file=metadata.yaml input01.md
1

В результате, получаем заполненный заголовок.

Переменные можно задавать через параметры

  • -V KEY[=VAL]
  • --variable=KEY[:VAL]

Снова изменим шаблон

* $item1$
* $item2$

$body$
1
2
3
4

И добавим переменные:

pandoc -o output.md -f markdown -t markdown -s --template template03.md -V item1=Apple -V item2=Tomato input01.md
1

На выходе получаем

* Apple
* Tomato

[текст документа]
1
2
3
4

Ссылки

Последниее изменение: 03.04.2022, 12:35:55