Метаданные Pandoc не отображаются в HTML-шаблоне по умолчанию - PullRequest
0 голосов
/ 22 декабря 2018

Я конвертирую файлы org и markdown в HTML, используя pandoc.Я хочу установить метаданные, такие как теги title, subtitle и author во внешнем файле YAML, и сделать так, чтобы они отображались с использованием шаблона.Однако я не могу получить ничего, кроме обычного преобразования тела.

Я использую шаблон HTML по умолчанию.Я запустил преобразование, конкатенируя конфигурацию YAML заранее:

pandoc -t html -o output.html metadata.yaml input.md

Я также попытался включить расширение yaml_metadata_block:

pandoc -t html+yaml_metadata_block -o output.html metadata.yaml input.md

Также я попытался установить переменные всама команда:

pandoc -t html -o output.html -V title="my title" input.md

Мой файл YAML выглядит следующим образом:

---
title: "my title"
subtitle: "my subtitle"
author: "the author"
...

Проверка шаблона HTML по умолчанию с помощью pandoc -D html, похоже, когда определены title и т. д., он будет помещен в блок заголовка:

$if(title)$
<header>
<h1 class="title">$title$</h1>
$if(subtitle)$
<p class="subtitle">$subtitle$</p>
$endif$
$for(author)$
<p class="author">$author$</p>
$endfor$
$if(date)$
<p class="date">$date$</p>
$endif$
</header>

Но в любом случае HTML-файл содержит только преобразованный текст из input.md.Я думаю, что это строка $body$, определенная в шаблоне по умолчанию.

Как я могу заставить эти поля появляться в моем HTML-документе?

1 Ответ

0 голосов
/ 23 декабря 2018

Боже мой, все, что мне не хватало, это атрибут -s!

со страницы руководства:

-s, --standalone
          Produce output with an appropriate header and footer (e.g.  a standalone HTML, LaTeX, TEI, or RTF file, not a fragment).  This option is set automat‐
          ically for pdf, epub, epub3, fb2, docx, and odt output.

Таким образом, следующая команда работает как положено

pandoc -s -t html -o output.html metadata.yaml input.md
...