从 Pandoc 降价文件中读取 YAML 元数据



是否可以在没有Haskell过滤器或解析--to=json输出的情况下从降价文件中提取Pandoc的元数据(标题,日期等)?

JSON 输出对此特别不方便,因为两个单词的标题如下所示:

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

因此,即使在让JQ阅读标题之后,我们仍然需要重建单词,任何强调,代码或其他任何东西只会使它变得更加复杂。

我们可以为此使用模板变量$meta-json$

将变量粘贴到文件中(带有扩展名,以阻止 Pandoc 查找它自己的目录),然后将其与 pandoc --template=file.ext 一起使用。

Pandoc 的输出是一个 JSON 对象,其中包含键 "title""date""tags" 等,以及它们各自的值来自 markdown 文档,我们可以轻松地使用 jq 对其进行解析、过滤和操作。

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

最新更新