Pandoc 过滤器 pandoc.Para Lua 函数中的字符转义
Character escaping in Pandoc filter pandoc.Para Lua function
我正在将 Pandoc 用于大型 HTML 到 Markdown 的转换项目,并且正在尝试编写 lua 过滤器来处理一些特殊情况。
我尝试处理的最常见情况是将特殊格式的信息框转换为 pymarkdown summary/detail formatting。
来源HTML
<div class="special-info-block">
<p class="title">INFO</p>
</div>
目标降价
???+ info "INFO"
我可以用这个函数来代替“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
但生成的降价转义了 INFO 周围的引号:
???+ info \"INFO\"
如何插入文字字符串?这是 pandoc.Para 构造函数的一个特性还是我应该去别处寻找?
转义发生在 Markdown 生成过程中,所以这里有两种选择:
使用 -t markdown-smart
调用 pandoc,这将指示 Markdown 编写器将引号视为普通字符;
创建原始 Markdown 块而不是 Para 以获得对输出的最大控制:el.content[1] = pandoc.RawBlock('markdown', '??? info "INFO"+')
.
这两种方法都应该能得到预期的结果,但第二种方法可能更可取。
我正在将 Pandoc 用于大型 HTML 到 Markdown 的转换项目,并且正在尝试编写 lua 过滤器来处理一些特殊情况。
我尝试处理的最常见情况是将特殊格式的信息框转换为 pymarkdown summary/detail formatting。
来源HTML
<div class="special-info-block">
<p class="title">INFO</p>
</div>
目标降价
???+ info "INFO"
我可以用这个函数来代替“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
但生成的降价转义了 INFO 周围的引号:
???+ info \"INFO\"
如何插入文字字符串?这是 pandoc.Para 构造函数的一个特性还是我应该去别处寻找?
转义发生在 Markdown 生成过程中,所以这里有两种选择:
使用
-t markdown-smart
调用 pandoc,这将指示 Markdown 编写器将引号视为普通字符;创建原始 Markdown 块而不是 Para 以获得对输出的最大控制:
el.content[1] = pandoc.RawBlock('markdown', '??? info "INFO"+')
.
这两种方法都应该能得到预期的结果,但第二种方法可能更可取。