簡體   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