如果我将单引号'
从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,并对其选项进行了调整,如果其他人不希望这样做,则将其报告为错误。
答案 0 :(得分:2)
转义与pandoc的smart
扩展名有关。该扩展名在适当时将单引号转换为印刷正确的开/闭单引号或撇号。当查看仅使用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中看到一个'
字符时,它都假定该字符是故意在更正确的单引号上选择的,因此可以确保在读取时不会以“智能”方式对其进行处理。从Markdown回来。
因此,解决方案是告诉pandoc它应该忽略这些细节,并将Markdown编写为好像不会受到引号的智能处理:
% echo "'" | pandoc -f html -t markdown-smart
'
使用markdown_strict
时, smart 扩展名已被禁用,这就是您在这种情况下获得所需行为的原因。