2017-01-14 6 views
2

HaskellフィルタなしでマークアップファイルからPandocのメタデータ(タイトル、日付など)を抽出することはできますか?--to=json出力を解析することはできますか?PandocマークダウンファイルからYAMLメタデータを読み取る

JSON出力は2ワードのタイトルのように見えることから、このために特に不便です:

$ pandoc -t json posts/test.md | jq '.meta | .title' 
{ 
    "t": "MetaInlines", 
    "c": [ 
    { 
     "t": "Str", 
     "c": "Test" 
    }, 
    { 
     "t": "Space" 
    }, 
    { 
     "t": "Str", 
     "c": "post" 
    } 
    ] 
} 

そうでもjqタイトルを読んだ後、私たちはまだ言葉を再構築する必要があり、任意の強調、コードそれ以外のものはそれをもっと複雑にしようとしているだけです。

答えて

3

これにはtemplate variable $meta-json$を使用できます。

変数をファイルに張ってください(拡張子付きで、Pandocが自分のディレクトリを探しているのを止めるため)。pandoc --template=file.extと一緒に使用してください。

Pandocの出力は、我々は簡単に、フィルタを解析し、jqで操作することができ値下げの文書からキーなど"title""date""tags"、およびそれぞれの値を持つJSONオブジェクトです。

$ echo "\$meta-json\$" > /tmp/metadata.pandoc-tpl 
$ pandoc --template=/tmp/metadata.pandoc-tpl | jq '.title,.tags' 
"The Title" 
[ 
    "a tag", 
    "another tag" 
] 
関連する問題