为ConTeXt输出格式自定义Pandoc编写器



我目前正在尝试自定义Pandoc中内置的标准编写器,以便从Markdown输入中以ConTeXt格式生成输出。不幸的是,在Pandoc网站上找到的创建自定义编写器的文档除了如何编写自定义HTML编写器之外,没有给我太多信息。因此,我想寻求一些基本想法的帮助:

  • 在ConTeXt编写器中添加一些(可能(非常简单的功能的首选方式是什么,例如:我想重写字符序列"-"(在Markdown文档中(作为另一序列"~--"(在生成的ConTeXt文档中(
  • 如果我理解正确,我应该把我的自定义编写器建立在标准(内置(编写器的基础上。。。但我在哪里能找到这些?/usr/share/pandoc/中似乎没有任何内容(我在Linux上工作(
  • 该网站提到了"经典风格";新风格">。除了一个明显较新之外,我应该使用什么风格

我知道这些问题听起来可能很简单,但除了通常的基本内容之外,似乎没有太多信息可用。任何帮助都将不胜感激。

Pandoc还有一个类似于自定义编写器的特性,叫做"Lua过滤器";。在这种情况下,过滤器很可能是一个更简单、更好的选择:它们允许修改内部文档表示。例如:

function Inlines (inlines)
for i=#inlines, 3, -1 do  -- iterate backwards through the list of inlines
if inlines[i-2].t == 'Space' and inline[i-1] == pandoc.Str '-' and
inlines[i].t == 'Space' then
-- Replace elements with raw ConTeXt
inlines[i-2] = pandoc.RawInline('context', '~--')
inlines:remove(i)
inlines:remove(i-1)
end
end
return inlines
end

以上内容将用于b将其写入文件,然后通过--lua-filters FILENAME.lua将该文件传递给pandoc

Lua过滤器的文档也不那么稀疏,希望比自定义编写器的文档更容易接近。

最新更新