web-dev-qa-db-ja.com

pandocのYAMLヘッダーオプションで何を制御できますか?

たまたま、Pandocで処理されるMarkdownファイルのYAMLヘッダーオプションでtoc: true行を使用しているサンプルドキュメントを見ました。 Pandoc docs では、YAMLヘッダーを使用して目次を制御するためのこのオプションについて言及していませんでした。さらに、同じPandocのREADMEサイトのサンプルドキュメントには、いくぶん任意の行があります。

主な質問:

  • YAMLヘッダーを使用して使用できるPandocオプションは何ですか?

メタ質問:

  • YAMLヘッダーを使用して設定できる利用可能なPandocオプションを決定するものは何ですか?

注:私のワークフローは、Markdownファイル(.md)を使用し、Pandocを介して処理してPDFファイルを取得します。

pandoc --standalone --smart \
    --from=markdown+yaml_metadata_block \
    --filter pandoc-citeproc \
    my_markdown_file.md \
    -o my_pdf_file.pdf
34
Kalin

実際、それはすべてPandocの [〜#〜] manual [〜#〜] に含まれています。具体的には:

テンプレートには変数が含まれる場合があります。

たとえば、HTML template の場合、次のように記述できます。

<title>$title$</title>

これらのテンプレート変数は、--variable KEY[=VAL]オプションで設定できます。

ただし、これらはドキュメントメタデータからも設定され、次のいずれかを使用して設定できます。

--variableオプションは文字列をそのままテンプレートに挿入し、--metadataオプションは文字列をエスケープします。 YAMLメタデータの文字列(--metadata-fileを使用する場合も)は、マークダウンとして解釈されます。これは、pandoc markdownの generic raw attributes を使用して回避できます。 HTML出力の例:

`<script>alert()</script>`{=html}

これを参照してください --variable vs --metadata vs YAMLメタデータの図表

あなたの質問に答えるために:テンプレートは、YAMLメタデータブロックのどのフィールドが効果を持つかを決定します。たとえば、ラテックステンプレートを表示するには、次を使用します。

$ pandoc -D latex

Pandocによって自動的に設定されるいくつかの変数を表示するには、 マニュアルを参照 。最後に、pandocのその他の動作(マークダウン拡張機能など)は、コマンドラインオプションとしてのみ設定できます( wrapper script を使用する場合を除く)。

24
mb21

これはかなり長いリストであり、コマンドラインでman pandocを実行し、「TEMPLATES」の下の「Panddocによって設定された変数」セクションに移動することで参照できます。

リストの上部には、他の多くのオプションの中で次のものが含まれます。

Variables set by pandoc
   Some variables are set automatically by pandoc.  These vary somewhat depending  on  the
   output format, but include metadata fields as well as the following:

   title, author, date
          allow identification of basic aspects of the document.  Included in PDF metadata
          through LaTeX and ConTeXt.  These can be set through a pandoc title block, which
          allows for multiple authors, or through a YAML metadata block:

                 ---
                 author:
                 - Aristotle
                 - Peter Abelard
                 ...

   subtitle
          document subtitle; also used as subject in PDF metadata

   abstract
          document summary, included in LaTeX, ConTeXt, AsciiDoc, and Word docx

   keywords
          list  of  keywords  to  be  included in HTML, PDF, and AsciiDoc metadata; may be
          repeated as for author, above

   header-includes
          contents specified by -H/--include-in-header (may have multiple values)

   toc    non-null value if --toc/--table-of-contents was specified

   toc-title
          title of table of contents (works only with EPUB and docx)

   include-before
          contents specified by -B/--include-before-body (may have multiple values)

   include-after
          contents specified by -A/--include-after-body (may have multiple values)

   body   body of document

`` `

13
denten

ヒントについては、pandocのドキュメントを参照してください。 http://pandoc.org/getting-started.html

しかし、それがどこで使用されるかを正確に知るには、pandocのテンプレートソースを探すことができます: https://github.com/jgm/pandoc-templates

たとえば、html5出力の場合、ファイルは次のとおりです。 https://github.com/jgm/pandoc-templates/blob/master/default.html5

コードのセクションは次のとおりです。

<title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title>

ご覧のとおり、title-prefixおよびpagetitle

ドキュメントを見ることができますが、最善の解決策は、使用しているバージョンのソースコードを探すことです。

3
Eduardo Santana