从 HTML 转换为 Markdown 时阻止 Pandoc 转义单引号
Stopping Pandoc from escaping single quotes when converting from HTML to Markdown
如果我将单引号 '
从 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 并调整选项,或者如果它不是其他人所期望的,则将其报告为错误。
转义与 pandoc 的 smart
扩展有关。此扩展在适当时将单引号转换为印刷正确的 opening/closing 单引号或撇号。当查看仅使用 ASCII 字符的 HTML 输出时,这一点变得最清楚:
% echo "'hello'" | pandoc -f markdown -t html --ascii
<p>‘hello’</p>
% echo "let's" | pandoc -f markdown -t html --ascii
<p>let’s</p>
可以通过转义字符在每个案例的基础上禁用引号的这种智能处理
% echo "let\'s" | pandoc -f markdown -t html --ascii
<p>let's</p>
或禁用降价智能扩展:
% echo "let's" | pandoc -f markdown-smart -t html --ascii
<p>let's</p>
因此,每当 pandoc 在 HTML 中看到一个 '
字符时,它就会假设这个字符是有意选择的,而不是更正确的单引号,从而确保它不会被处理"smart" 从 Markdown 回读时的方式。
因此,解决方案是告诉 pandoc 它应该忽略这些细节,并且将编写 Markdown,就好像它不会受到引号的智能处理:
% echo "'" | pandoc -f html -t markdown-smart
'
smart 扩展在使用 markdown_strict
时已被禁用,这就是为什么您在那种情况下得到了期望的行为。
如果我将单引号 '
从 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 并调整选项,或者如果它不是其他人所期望的,则将其报告为错误。
转义与 pandoc 的 smart
扩展有关。此扩展在适当时将单引号转换为印刷正确的 opening/closing 单引号或撇号。当查看仅使用 ASCII 字符的 HTML 输出时,这一点变得最清楚:
% echo "'hello'" | pandoc -f markdown -t html --ascii
<p>‘hello’</p>
% echo "let's" | pandoc -f markdown -t html --ascii
<p>let’s</p>
可以通过转义字符在每个案例的基础上禁用引号的这种智能处理
% echo "let\'s" | pandoc -f markdown -t html --ascii
<p>let's</p>
或禁用降价智能扩展:
% echo "let's" | pandoc -f markdown-smart -t html --ascii
<p>let's</p>
因此,每当 pandoc 在 HTML 中看到一个 '
字符时,它就会假设这个字符是有意选择的,而不是更正确的单引号,从而确保它不会被处理"smart" 从 Markdown 回读时的方式。
因此,解决方案是告诉 pandoc 它应该忽略这些细节,并且将编写 Markdown,就好像它不会受到引号的智能处理:
% echo "'" | pandoc -f html -t markdown-smart
'
smart 扩展在使用 markdown_strict
时已被禁用,这就是为什么您在那种情况下得到了期望的行为。