从 HTML 转换为 Markdown 时阻止 Pandoc 转义单引号

2024-05-25

如果我转换单引号'从 HTML 到 Markdown,它会自动转义:

 % echo "'" | pandoc -f html -t markdown
 \'

我希望它输出时不带斜杠,因为它使带有缩写的文本更难以阅读。

我认为这可能是由于“all_symbols_escapable”选项造成的,但即使我关闭它,它仍然会发生:

% echo "'" | pandoc -f html -t markdown-all_symbols_escapable
\'

It isn't然而,markdown_strict 存在一个问题:

% echo "'" | pandoc -f html -t markdown_strict
'

有什么建议么?我想使用默认的 Pandoc markdow 并调整选项,或者如果不是其他人所期望的,则将其报告为错误。


转义与pandoc有关smart扩展。此扩展在适当的时候将单引号转换为印刷正确的开始/结束单引号或撇号。当查看仅使用 ASCII 字符的 HTML 输出时,这一点变得最清楚:

% echo "'hello'" | pandoc -f markdown -t html --ascii
<p>&lsquo;hello&rsquo;</p>

% echo "let's" | pandoc -f markdown -t html --ascii
<p>let&rsquo;s</p>

可以通过转义字符来根据具体情况禁用这种对引号的智能处理

% echo "let\'s" | pandoc -f markdown -t html --ascii
<p>let's</p>

或者通过禁用 markdown 的智能扩展:

% echo "let's" | pandoc -f markdown-smart -t html --ascii
<p>let's</p>

所以每当 pandoc 看到'HTML 中的字符,它假设该字符是有意选择的,而不是更正确的单引号,从而确保从 Markdown 读回时不会以“智能”方式处理它。

因此,解决方案是告诉 pandoc 它应该忽略这些细节,并在编写 Markdown 时就好像它不会受到引号的智能处理一样:

% echo "'" | pandoc -f html -t markdown-smart
'

The smart使用时扩展已被禁用markdown_strict,这就是为什么在这种情况下你会得到所需的行为。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 HTML 转换为 Markdown 时阻止 Pandoc 转义单引号 的相关文章

随机推荐