【问题标题】:Stopping Pandoc from escaping single quotes when converting from HTML to Markdown从 HTML 转换为 Markdown 时阻止 Pandoc 转义单引号
【发布时间】:2018-12-08 00:21:13
【问题描述】:

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

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

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

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

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

不是问题,但是,对于 markdown_strict:

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

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

【问题讨论】:

  • 谷歌员工:E28099

标签: pandoc


【解决方案1】:

转义与 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 中看到 ' 字符时,它会假定该字符是故意选择的,而不是更正确的单引号,从而确保在从降价。

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

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

smart 扩展在使用 markdown_strict 时已被禁用,这就是您在这种情况下获得所需行为的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-07
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    相关资源
    最近更新 更多