如何编写匹配所有节点类型的Pandoc Lua过滤器?
如何编写匹配所有节点类型的Pandoc Lua过滤器
一、简便实现方式
在Pandoc Lua过滤器中,无需逐个指定所有节点类型,直接返回单一动作函数即可实现对所有节点的匹配,效果和你提供的Python Panflute代码一致:
-- Lua filter:匹配所有节点 function action(elem) print(pandoc.utils.type(elem)) end return action
如果偏好通过父类型覆盖的方式,除了Block和Inline,还需加上Meta类型(用于处理文档元数据),写法如下:
-- Lua filter:通过父类型覆盖所有节点 function action(elem) print(pandoc.utils.type(elem)) end return { {Block = action}, {Inline = action}, {Meta = action} }
二、获取完整元素类型列表
有两种可靠途径获取完整的Pandoc元素类型列表:
- 运行终端命令:
pandoc --list-element-types,该命令会直接输出所有支持的节点类型名称,涵盖Block、Inline、Meta等所有类别。 - 查看Pandoc官方文档的Lua过滤器章节,其中的「Element types」部分详细列出了每个类型的具体名称和说明。
内容的提问来源于stack exchange,提问作者wolfrevo
相关产品推荐
相关产品推荐

