繁体   English   中英

Pandoc Lua 如何从字符串创建一个 id?

[英]Pandoc Lua how to create an id from a string?

我需要模仿 pandoc 在 Lua 过滤器中将标题文本转换为可接受的 id 字符串的方式:删除特殊字符,将空格转换为破折号。

是否有以这种方式清理字符串的命令?

例如: Les élèves d'hier变成: les-eleves-dhier

没有这样的 function 内置,但您可以通过 pandoc 支持的一种格式来回移动标题来破解它。 这将强制创建您可以使用的 label:

local function make_id (inlines, via)
  local via = via or 'html'
  local heading = pandoc.Header(1, inlines)
  local temp_doc = pandoc.Pandoc{heading}
  local roundtripped_doc = pandoc.read(pandoc.write(temp_doc, via), via)
  return roundtripped_doc.blocks[1].identifier
end

例子:

print(make_id(pandoc.Inlines "Les élèves d'hier"))

将打印les-élèves-dhier 我相信 output 对于所有可往返格式应该是相同的,但可能不是。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM