Pandoc 用户使用指南 - 自定义读取和写入

Pandoc 可以通过用 Lua 编写的自定义读取器和写入器进行扩展。(Pandoc 包含了一个 Lua 解释器,因此无需单独安装 Lua。)

要使用自定义读取器或写入器,只需指定 Lua 脚本的路径作为输入或输出格式即可。例如:

pandoc -t data/sample.lua
pandoc -f my_custom_markup_language.lua -t latex -s

如果脚本没有在工作目录中找到,则会在用户数据目录的 custom 子目录中查找(请参见 --data-dir )。

一个自定义读取器是一个 Lua 脚本,它定义了一个名为 Reader 的函数,该函数接收一个字符串作为输入并返回一个 Pandoc 抽象语法树 (AST)。有关可用于创建 Pandoc AST 元素的函数文档,请 参阅 Lua 过滤器 文档。对于解析,默认提供了 lpeg 解析库。若要查看一个示例自定义读取器:

pandoc --print-default-data-file creole.lua

如果你想让你的自定义读取器能够访问读取器选项(例如制表符停止设置),你可以给你的 Reader 函数添加第二个参数 options

一个自定义写入器是一个 Lua 脚本,它定义了一个函数来指定如何渲染 Pandoc AST 中的每个元素。有关功能完整的示例,请参阅 djot-writer.lua

请注意,自定义写入器没有默认模板。如果你想使用 --standalone 与自定义写入器一起,你需要手动指定模板使用 --template 或者向你的用户数据目录中的 templates 子目录添加一个名为 default.NAME_OF_CUSTOM_WRITER.lua 的新默认模板(请参见 模板 部分)。

在本文档中