我有一个 .md 文档目录,每个文档都包含一个指定文档的 YAML 标头title
, author
, date
, categories
,tags
等。该目录包含日记条目,文件名只是条目的日期。
我使用 pandoc 为每个 .md 文件生成 PDF 没有任何问题,但是我正在寻找一种生成 PDF 的方法single书籍或回忆录格式的 PDF,每个 .md 文档的title
字段作为目录中的章节,按date
价值。理想情况下,date
也会出现在目录中,但是如果各个章节也会显示该信息,那么这并不重要。
我一直无法找到一种方法来执行此操作,因为在连接多个文档时,pandoc 似乎忽略了除第一个 YAML 标头之外的所有标头。我能想到的一种可能的解决方案是将所有相关的 YAML 标头信息转换为 markdown 标题,然后降级每个 .md 文档中的现有标题。但我不确定如何做到这一点,或者这是否是最好的方法。我也在看Rbookdown
包,但它也使用章节的 markdown 标头,不确定它是否可以适应使用 YAML 标头信息。
完成我需要的最简单的方法是什么?谢谢。
您在问题中概述的想法是一个好方法:
将标题降级为标题可以通过filter https://pandoc.org/filters.html,例如A卢阿过滤器 https://pandoc.org/lua-filters.html如果您使用 pandoc >2.0。以下假设您使用的是当前版本 2.0.6:
降级.lua:
-- List is available since pandoc 2.0.4
local List = require 'pandoc.List'
function Header (h)
h.level = h.level + 1
return h
end
function Pandoc (doc)
local title = doc.meta.title
local header = pandoc.Header(1, title)
doc.blocks = {header} .. doc.blocks
return doc
end
现在运行以下命令来创建 pdf:
for f in /path/to/docs/*.md; do
pandoc --lua-filter=demote.lua -t markdown
printf "\n" # insert empty line between articles
end | pandoc -o combined.pdf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)