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
的新默认模板(请参见 模板 部分)。