假设我想在文件顶部有一堆元数据,例如
AUTHOR: Foo Bar
DATE: Jan 21 2052
。现在,每当我在文件中的某处使用“作者”一词时,我希望将其替换为 Foo Bar
,将日期替换为 Jan 21 2052
Pandoc的markdown扩展提供这个功能吗?
不,Pandoc 不有替换功能(从版本 3.1.12 开始)。
但是,正如评论中提到的,您可以使用以下 Lua 过滤器来执行此操作(来自 Pandoc 文档):
local vars = {}
function get_vars (meta)
for k, v in pairs(meta) do
if pandoc.utils.type(v) == 'Inlines' then
vars["%" .. k .. "%"] = {table.unpack(v)}
end
end
end
function replace (el)
if vars[el.text] then
return pandoc.Span(vars[el.text])
else
return el
end
end
return {{Meta = get_vars}, {Str = replace}}
另请参阅 此 StackOverflow 答案。