【问题标题】:pandoc output in markdown: how to add the metadata降价中的 pandoc 输出:如何添加元数据
【发布时间】:2020-05-25 16:30:43
【问题描述】:

一个进程获取一个 markdown 格式的文件,用 pandoc 将其解析为 AST,更改文本中的一些单词,然后将生成的 pandoc 结构写回 markdown 文件。

除了元数据包含在原始文件中并由 pandoc 输入解析(扩展名:Ext_yaml_metadata_block 已设置)但不包含在 markdown 输出中(扩展名只有 writerSetextHeaders)之外,此方法有效。

需要什么额外的扩展?或者,我是否需要不同的输出模板,包括 像$Meta$ (前后有---)之类的东西?非常感谢指向解决方案的指针。

这样的模板应该工作吗?

$if(meta)$
---
$Meta$
---

$endif$

$if(titleblock)$ $titleblock$

$endif$ $for(header-includes)$ $header-includes$

$endfor$ $for(include-before)$ $include-before$

$endfor$ $if(toc)$ $table-of-contents$

$endif$ $body$ $for(include-after)$

$include-after$ $endfor$

【问题讨论】:

    标签: pandoc


    【解决方案1】:

    听起来您缺少-s/--standalone 标志(Haskell 中的optStandalone)。如果没有这个选项,pandoc 只会输出 Markdown sn-ps,而不是完整的文档。

    【讨论】:

    • 我只能找到一个ReaderOption readerStandalone,但作者没有?它应该在哪里?我尝试使用 WriterOption writerTemplate :: Maybe String 并放置我建议的模板,但这只会在输出中返回模板的名称。
    • 我修复的模板问题(该函数需要一个字符串作为输入,而不是文件名),但结果保持不变。
    • @user855443 checkout Text.Pandoc.App.convertWithOpts 以获得简单的解决方案,或尝试将writerTemplate 设置为模板。
    • 我尝试了一个模板,但没有插入元数据。我查看了convertWithOpts,但看不出它是如何解决问题的。我需要在阅读和写作之间添加一个功能。我创建了一个最小的工作示例并将其作为一个单独的问题发布。
    猜你喜欢
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    相关资源
    最近更新 更多