gpt4 book ai didi

html - 从 Markdown 转换为 HTML 时使用 Pandoc Lua 过滤器替换 HTML 标签

转载 作者:行者123 更新时间:2023-12-04 07:38:44 25 4
gpt4 key购买 nike

我有一个 Markdown 文件,其中包含一些 HTML 标签,特别是 <br>我想在使用 pandoc 转换为 HTML 时替换的标签。问题是我想用 <br /> 替换它由于与一些提示 <br> 的旧渲染器的一些兼容性问题.我在运行转换时确实尝试了以下 Lua 过滤器,但它没有做任何事情:filter.lua :

function LineBreak (elem)
return {
pandoc.RawInline('html', '<br />')
}
end
我正在使用 Pandoc 版本 2.13使用以下测试文件运行以下命令: Test.md :
## Testing

Hello <br> World!
pandoc --lua-filter filter.lua --to html5 Test.md我也试过指定 --to html4但输出仍然相同。有没有办法用 Lua 过滤器做到这一点?

最佳答案

为了调试这个,我们可以先运行 pandoc --to=native Test.md查看如何将输入解析为 pandoc 的内部文档表示。这产生

[Header 2 ("testing",[],[]) [Str "Testing"]
,Para [Str "Hello",Space,RawInline (Format "html") "<br>",Space,Str "World!"]]
有趣的部分是 <br>被解析为 RawInline (Format "html") "<br>" ,而不是换行。所以我们可以修改过滤器以匹配:
function RawInline (raw)
if raw.format == 'html' and raw.text == '<br>' then
return pandoc.RawInline('html', '<br />')
end
end
这给出了所需的结果:
$ pandoc --lua-filter filter.lua --to html5 Test.md
<h2 id="testing">Testing</h2>
<p>Hello <br /> World!</p>

关于html - 从 Markdown 转换为 HTML 时使用 Pandoc Lua 过滤器替换 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67604007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com