是否可以在没有 Haskell 过滤器或解析--to=json输出的情况下从 Markdown 文件中提取 Pandoc 的元数据(标题、日期等)?
JSON 输出为此特别不方便,因为两个字的标题看起来像:
$ pandoc -t json posts/test.md | jq '.meta | .title'
{
"t": "MetaInlines",
"c": [
{
"t": "Str",
"c": "Test"
},
{
"t": "Space"
},
{
"t": "Str",
"c": "post"
}
]
}
Run Code Online (Sandbox Code Playgroud)
所以即使让jq读完标题,我们仍然需要重构单词,任何强调、代码或其他任何东西只会让它变得更加复杂。
我们可以为此使用模板变量$meta-json$。
将变量粘贴在一个文件中(带有扩展名,以阻止 Pandoc 在它自己的目录中查找),然后将它与pandoc --template=file.ext.
Pandoc 的输出是一个带有键"title"、"date"、"tags"等的 JSON 对象,以及它们各自来自 Markdown 文档的值,我们可以使用jq轻松解析、过滤和操作。
$ echo '$meta-json$' > /tmp/metadata.pandoc-tpl
$ pandoc --template=/tmp/metadata.pandoc-tpl | jq '.title,.tags'
"The Title"
[
"a tag",
"another tag"
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1569 次 |
| 最近记录: |