小编pls*_*pls的帖子

从 Markdown 文件中解析 YAML

我正在处理一些我继承的遗留代码(即,许多设计决策不是我的)。

该代码将一个目录组织成带有 markdown 文件的子目录,并将它们编译成一个大的 markdown 文件(使用 Markdown-PP: https: //github.com/jreese/markdown-pp)。然后它将此文件转换为 HTML(使用 pandoc: https: //pandoc.org/),最后转换为 PDF(使用 wkhtmltopdf:https://wkhtmltopdf.org/)。

我遇到的问题是许多原始 Markdown 文件都有 YAML 元数据标头。当通过 Markdown-PP 拼接在一起时,大型 Markdown 最终会散布大量 YAML 元数据块。由于 pandoc 处理 YAML 的方式(许多标头使用相同的键名称,并且 pandoc 组合了单独的 YAML 标头并且仅保留相应键的第一个值),在转换为 HTML 时,大部分元数据都会丢失。

我最初在 HTML 中没有出现 YAML,但能够通过正确修改 pandoc 的 HTML 模板来改变这一点。但我只得到每个相应键的第一个值。目前尚不清楚 pandoc 中是否有解决此问题的方法,因此我转而考虑在 pandoc 步骤之前尝试将 YAML 处理为 HTML。我尝试使用 PyYAML (yaml.load_all()) 解析组合降价中的 YAML,但只显示第一个 YAML 块。

YAML 块的示例:

---
author: foo
size_minimum: 100
time_req_minutes: 120
# and so on
---
Run Code Online (Sandbox Code Playgroud)

问题在于最终文档中的 20 多个模块中的每一个都具有相关的元数据。

为了尝试解析 YAML,我使用了从这篇文章借用的代码: …

html python markdown yaml pyyaml

4
推荐指数
1
解决办法
9216
查看次数

标签 统计

html ×1

markdown ×1

python ×1

pyyaml ×1

yaml ×1