Pandoc 有文本替换宏吗?

问题描述 投票:0回答:1

假设我想在文件顶部有一堆元数据,例如

AUTHOR: Foo Bar
DATE: Jan 21 2052
。现在,每当我在文件中的某处使用“作者”一词时,我希望将其替换为
Foo Bar
,将日期替换为
Jan 21 2052

Pandoc的markdown扩展提供这个功能吗?

markdown pandoc
1个回答
0
投票

不,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 答案

© www.soinside.com 2019 - 2024. All rights reserved.