我已将 Pandoc 升级到 v2,但我的一些回归测试现在失败了。
这是我向元素添加自定义属性的地方,如下所示:
# Test {role="heading" aria-level="7"}
在早期版本的 Pandoc 中,这导致
<h1 role="heading" aria-level="7">Test</h1>
在 Pandoc 2 中,它是
<h1 data-role="heading" data-aria-level="7">Test</h1>
我怎样才能把它改回来?两个
role
和 aria-
属性是 100% 有效的 HTML,所以没有 data-
需要前缀。
最佳答案
从 Markdown 到 HTML5 与 HTML4 的转换似乎与 Pandoc 有所不同。
使用他们的测试编辑器,HTML4 转换工作得非常好。
Pandoc HTML4 Conversion Example
但是,当我们切换到 HTML5 时,属性的数据部分会被注入(inject)。
Pandoc HTML5 Conversion Example
这让我认为这要么是有意完成的,因为 HTML4 和 HTML5 之间的差异,要么它可能是一个 Pandoc 错误,你可能应该在他们的 github 问题跟踪器中向他们提出问题:https://github.com/jgm/pandoc/issues
从 Pandoc docs - html 默认为 html5,如下所示:
html
orhtml5
([HTML], i.e. [HTML5]/XHTML [polyglot markup])html4
([XHTML] 1.0 Transitional)
更新:
看起来这是因为 HTML5 规范——“role”和“aria”属性本身不再在属性列表中。引用:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
所以这个不是 Pandoc 的错误 - 这是预期的行为。我的建议,使用 html4 转换是你的答案。
感谢@Caramiriel 在评论中提供更多引用 Pandoc code .
关于markdown - "data-"前缀被添加到自定义属性,如何防止这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48429998/