将Pandoc从HTML转换为Markdown时防止单引号被转义

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 Markdown,只是稍微调整一下选项,或者如果不符合其他人的期望,将其报告为错误。


1
谷歌员工:E28099 - Ciro Santilli OurBigBook.com
1个回答

12

转义与pandoc的智能扩展相关。当适当时,该扩展将单引号转换为排版正确的开/闭单引号或撇号。这在查看仅使用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
'

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接