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

Pandoc Lua过滤器中如何将字符串转换为合规标题ID

Pandoc Lua 过滤器实现原生标题ID转换方案
  • 存在官方内置的字符串清洗函数,无需自行编写正则匹配、字符替换逻辑,直接调用pandoc.utils.slugify即可完全复刻Pandoc原生的标题转合规ID规则。
  • 该函数内置逻辑完全对齐Pandoc默认行为:自动将文本统一转小写、完成Unicode规范化(将带变音符号的字符转换为对应基础拉丁字符)、移除所有特殊标点、将空白字符替换为短横线,处理结果和Pandoc原生生成的标题ID完全一致。
  • 针对给出的示例,执行pandoc.utils.slugify("Les élèves d'hier")的返回值正好是les-eleves-dhier,和预期结果完全匹配。

调用示例

在Lua过滤器中可以直接按如下方式使用,不需要额外引入依赖:

function Header(el)
  -- 提取标题块内的纯文本
  local heading_plain = pandoc.utils.stringify(el.content)
  -- 调用内置方法生成符合原生规则的ID
  el.identifier = pandoc.utils.slugify(heading_plain)
  return el
end

注意:pandoc.utils.slugify在Pandoc 2.0及以上版本默认提供,覆盖目前绝大多数使用场景。自行手写替换逻辑很容易遗漏Unicode特殊字符、特殊标点的边界处理,会导致和原生生成的ID出现偏差,优先使用内置函数是最稳妥的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:15:30