基本かもしれないが…。
このIssueを見ていて気付いた。
これでMeta関係の調査がはかどります(大体終わってしまったけど)
2019/10/22 追記
具体例がなかったので。
たとえば、以下のように入力する 1。
echo A | pandoc -fmarkdown -tnative -s
と、以下のように出力される。echo A としているのは空だとエラーになってしまったため。
Pandoc (Meta {unMeta = fromList []}) [Para [Str "A"]]
Meta
情報が完全に空の場合はこのようになる。なぜunMeta
が出力される仕様なのかがわからないと言えばわからないが…。
複数行の入力をターミナルから直接行うのは大変なので、別途ファイルを作る。
--- title: aa --- # hoge fuga
これを同様に、以下のようにnative形式で表示する。
pandoc test.md -fmarkdown -tnative -s
すると、このように出力される。fromListの引数であるリスト内に、(Str, Meta [])
のような形で 2 書かれるようだ。インライン要素の集まりとして定義されている。
Pandoc (Meta {unMeta = fromList [("title",MetaInlines [Str "aa"])]}) [Header 1 ("hoge",[],[]) [Str "hoge"] ,Para [Str "fuga"]]
メタ部分を
--- title: aa bb author: - A - B ---
のように書き換えると次のようになる(メタ部分だけ抜粋)。
Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "A"],MetaInlines [Str "B"]]),("title",MetaInlines [Str "aa",Space,Str "bb"])]})
fromList
に含まれるのはタプルのリストのまま変わらず、複数の要素をリストで含む場合はMetaList
がそれぞれのMetaInlines []
のリストの形で持つようになっている。MetaブロックであってもSpaceは有効である。つまりStrで検索してもマッチしない場合は空白文字を含む可能性を考慮すべきである。
…という風に結構メタ部分は読むのが少し大変になっている。もっと複雑な構造もあるが、それはまた別途記事にまとめよう…。