簡體   English   中英

Pandoc過濾器pandoc中的字符escaping.Para Lua function

[英]Character escaping in Pandoc filter pandoc.Para Lua function

我正在將 Pandoc 用於大型 HTML 到 Markdown 轉換項目,並且正在嘗試編寫 lua 過濾器來處理一些特殊情況。

我試圖處理的最常見的情況是將特殊格式的信息框轉換為 pymarkdown 摘要/詳細信息格式

來源 HTML

<div class="special-info-block">
  <p class="title">INFO</p>
</div>

目標 Markdown

???+ info "INFO"

我可以使用這個 function 來替換“INFO”:

function Div(el)
   if el.classes[2] == "special-info-block" and pandoc.utils.stringify(el.content[1]) == "INFO" then
      el.content[1] = pandoc.Para('??? info "INFO"+')
      return el
   end
end

但生成的 markdown 轉義了 INFO 周圍的引號:

???+ info \"INFO\"

如何改為插入文字字符串? 這是 pandoc.Para 構造函數的一個特性還是我應該在別處尋找?

escaping 發生在 Markdown 生成期間,因此這里有兩個選項:

  1. 使用-t markdown-smart調用 pandoc,這將指示 Markdown 編寫器將引號視為普通字符;

  2. 創建原始 Markdown 塊而不是 Para 以獲得對 output 的最大控制: el.content[1] = pandoc.RawBlock('markdown', '??? info "INFO"+')

這兩種方法都應該給出預期的結果,但第二種方法可能更可取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM