(Pandoc) Raw記法で各フォーマットが受け付けるFORMATの文字列
穴埋め記事だよ?
この記事は Pandoc Advent Calendar 2019 の3日目が空いているので小ネタを入れていこうというつもりで作った記事ですが、22日、本日も空いているので22日に入れることにしました。
Pandoc Advent Calendar 2019 はこちらから行けます。
過不足と条件付きが結構あるので注意。
さて、本題。Pandoc's Native ASTにはRawInline
とRawBlock
という要素があり、これらは出力ファイル形式の文法で書かれたコードをそのまま出力ファイルに埋め込むことが出来る便利な要素です。出力ファイル形式以外だと内容は無視されるので、docxように書いたコードとhtml用に書いたコードを入れておいても大丈夫…のはずです。Markdownの記法はマニュアルを読んで欲しいですが、Codeのようにバッククォートで囲った文字列の直後に{=FORMAT}
の形で置きます。
…なのですが、docxで出力するときはopenxml
を要求されるなど、正直言って自明ではありません。そしてマニュアルにも記載がありません。仕方がないのでWriterのコードを読んでそれらしき記述を抜き出しました。PandocのWriterって書き方が統一されていないので単純にgrepで持ってこれるものではなくて目視grepとなりました。
そのため、抜け漏れがあるかもしれません。あと、過剰なのもあるかも。
また、いくつかのファイル形式ではraw_html
やraw_tex
の拡張が必要な場合があります。また、それらの動作が完全に一致するかという問題もあります(すべて未検証)。TeXやHTMLの仲間ではなく、自身のフォーマット名と異なるものは要注意です。
また、とあるファイル形式ではRawBlock
かRawInline
のどちらかのみが存在、というのもありました(失念)
さらに、ファイル形式によってはRaw記法がないものがあります。
また、表中ではファイル形式名(-t
で指定するもの)ではなく、Writerのファイル名となっています。tidyな表じゃないですが、ご容赦を。
Writer | format1 | format2 | format3 | format4 | format5 | format6 |
---|---|---|---|---|---|---|
AsciiDoc.hs | asciidoc | |||||
CommonMark.hs | html | latex | tex | markdown | ||
ConTeXt.hs | context | tex | ||||
Docbook.hs | docbook | html | ||||
Docx.hs | openxml | |||||
DokuWiki.hs | dokuwiki | html | ||||
EPUB.hs | html | |||||
FB2.hs | fb2 | |||||
HTML.hs | html | latex | tex | html5 | html4 | |
Haddock.hs | haddock | |||||
ICML.hs | icml | |||||
Ipynb.hs | html | revealjs | latex | markdown | rst | ipynb |
JATS.hs | jats | |||||
Jira.hs | jira | |||||
LaTeX.hs | latex | tex | beamer | |||
Man.hs | man | |||||
Markdown.hs | markdown | html | html5 | html4 | latex | tex |
MediaWiki.hs | mediawiki | html | ||||
Ms.hs | ms | |||||
Muse.hs | ||||||
Native.hs | ||||||
ODT.hs | opendocument | |||||
Org.hs | latex | tex | org | html | ||
Powerpoint.hs | openxml | |||||
RST.hs | rst | tex | latex | |||
RTF.hs | rtf | |||||
Roff.hs | ||||||
TEI.hs | tei | |||||
Texinfo.hs | texinfo | tex | latex | |||
Textile.hs | html | textile | latex | tex | ||
XWiki.hs | xwiki | |||||
ZimWiki.hs | zimwiki | html |
いずれちゃんと情報整備したいですが、ひとまず公開します。