我正在使用我继承的一些遗留代码(例如,许多设计决策不是我的)。在
代码将一个目录组织成带有降价文件的子目录,并将它们编译成一个大的降价文件(使用markdown PP:https://github.com/jreese/markdown-pp)。然后它将这个文件转换成HTML(使用pandoc:https://pandoc.org/),最后转换成PDF(使用wkhtmltopdf:https://wkhtmltopdf.org/)。在
我遇到的问题是许多原始的降价文件都有YAML元数据头。当由Markdown PP缝合在一起时,大型的Markdown最终会出现大量散布在各处的YAML元数据块。在转换为HTML时,由于pandoc处理YAML的方式,大部分元数据都会丢失(许多头文件使用相同的键名,pandoc将单独的YAML头组合起来,只保留对应键的第一个值)。在
我最初没有YAML出现在HTML中,但是可以通过正确修改pandoc的HTML模板来改变这一点。但我只得到每个对应键的第一个值。目前还不清楚在pandoc中是否有解决这个问题的方法,所以我转而在pandoc步骤之前尝试将YAML处理成HTML。我尝试过使用PyYAML解析组合降价中的YAML(全部加载())但只显示第一个YAML块。在
YAML块示例:
---
author: foo
size_minimum: 100
time_req_minutes: 120
# and so on
---
问题是最终文档中20多个模块中的每一个都有相关的元数据。在
为了解析YAML,我使用了从这篇文章中借用的代码:Is it possible to use PyYAML to read a text file written with a "YAML front matter" block inside?
稍作修改。在
^{pr2}$但即使这样,也只会导致第一个YAML块被读取和输出。在
我希望能够从大的降价文件解析YAML,并用相应的HTML替换它在正确的位置。我只是不确定这些(或任何)软件包是否有能力这样做。可能我只需要在原始的降价文件中手动将YAML更改为HTML(时间密集型,但如果我以这种方式开始的话,我可能已经完成了)。在
这个库呢:https://github.com/eyeseast/python-frontmatter
它解析文件中的前件和降价,将降价部分放在结果对象的
content
属性中。在同时适用于包含前物质和无前物质(有这样一个词吗?)文件夹。在
相关问题 更多 >
编程相关推荐