Windows 用于避免​࿽;?代替结束双引号

Windows 用于避免​࿽;?代替结束双引号,windows,powershell,markdown,pandoc,Windows,Powershell,Markdown,Pandoc,我使用下面的Powershell脚本将剪贴板中的原始标记纯文本转换为可在任意浏览器中使用的可粘贴的内容。我最常用它来写Gmail邮件和谷歌文档 paste.exe | pandoc -f markdown -t HTML | Set-Clipboard -AsHtml ; echo 'Conversion done.' 它一直工作得非常好,除了它转换了双引号 当我打字时,我不区分开始引号和结束引号 或者,是pandoc想要帮忙,但有点搞砸了 或者,需要更多注意的是Set Clipboar

我使用下面的Powershell脚本将剪贴板中的原始标记纯文本转换为可在任意浏览器中使用的可粘贴的内容。我最常用它来写Gmail邮件和谷歌文档

paste.exe | pandoc -f markdown -t HTML |  Set-Clipboard -AsHtml ; echo 'Conversion done.' 
它一直工作得非常好,除了它转换了双引号

  • 当我打字时,我不区分开始引号和结束引号
  • 或者,是
    pandoc
    想要帮忙,但有点搞砸了
  • 或者,需要更多注意的是
    Set Clipboard
    Powershell命令
专家们,请建议放置什么“魔旗”,这样我就可以避免手动清理
�?标记

您可以使用Pandoc的扩展,默认情况下,该扩展为
标记
乳胶
上下文
输出启用

pandoc -f markdown-smart -t HTML
请注意,您可以通过在格式中附加
-extension
来“禁用”扩展名,其中
extension
是扩展名。因此,格式为
markdown smart
。相反,您可以使用
+扩展名
启用扩展名。因此,您可以将
markdown smart
理解为“markdown减去smart”


顺便说一句,smart这个名字很可能是从一个后处理器借用到最初的Markdown实现中的,它用卷曲引号代替了直引号。我通过打开Pandoc用户指南并搜索
smart
找到了扩展。现在你知道了

$(paste.exe)-replace''、'''-replace''、''''
应将所有左右双引号(
U+201C
U+201D
)翻译为常见的
U+0022
(Unicode标准不知道引号的开头和结尾)。注意
[控制台]::OutputEncoding
确定PowerShell如何解释来自
paste.exe
pandoc
的输出,并且在将
paste.exe
输出发送到
pandoc
时,PowerShell使用首选项变量
$OutputEncoding
中指定的编码,不幸的是,在Windows Powershell中默认为ASCII;另见:太好了。出于某种原因,当我通过Powershell传递东西时,它整体上不喜欢
markdown smart
。相反,在两者之间添加一个空格就像变魔术一样!对我有效的命令是:`pandoc-f markdown-smart-t HTML`。[@Waylan,你介意更新你的帖子吗?在我这边编辑时,它不会让我再插入一个字符。]我不知道powershell在做什么,但正确的命令没有空格。我不会更新我的答案,因为这会让大多数人出错。请确认powershell也不喜欢空格。我当前的设置使用与您规定的完全相同的标志。不确定我第一次测试标志时为什么需要空白。更新
markdown-smart
vs
markdown smart
。当我在Windows10机器上通过管理员授权的PowerShell通过
chocolate
安装Pandoc时,可以预期会出现前者。资料来源: