You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandoc lua filter中获取并判断当前输出文件格式?

实现方法

pandoc Lua 过滤器内置了全局变量FORMAT,可以直接读取到当前任务的输出格式值,该值和执行pandoc命令时传入的-t/--to参数完全对应,比如latex、html、docx等。

你可以直接基于这个变量做分支判断,修改后的代码示例如下:

return {
  {
    Str = function (elem)
      -- 输出格式为LaTeX时走原有逻辑
      if FORMAT == 'latex' then
        if elem.text == "any string" then
          return pandoc.RawInline("latex", "anything")
        end
      -- 输出格式为HTML时的逻辑示例
      elseif FORMAT == 'html' then
        if elem.text == "any string" then
          return pandoc.RawInline("html", "<span>anything for html</span>")
        end
      -- 其他格式的默认逻辑,返回nil表示不修改原元素
      else
        return nil
      end
    end,
  }
}

补充说明

  • FORMAT是全局字符串变量,在过滤器的任意节点处理函数中都可以直接访问,不需要额外引入依赖
  • 如果不需要为不同非LaTeX格式做差异化处理,直接把elseif分支去掉,统一写在else分支里即可

内容的提问来源于stack exchange,提问作者brafra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:21:03