如果你使用 Vim

如果你使用 Vim

我即将通过电子邮件与我的一位朋友合作撰写一些散文。作为一个普通人,他当然会使用MS Word文档格式;作为一个大书呆子,我在电脑上写作时更喜欢使用 Markdown。

我需要的是完全相反的关于将从网页复制的富文本转换为 Markdown 的问题。我天真的最坏情况工作流程是:

  1. 用 markdown 写出文档
  2. 使用pandoc -S file.mkd -o temp.html
  3. temp.html在网络浏览器中打开
  4. 从页面复制并粘贴到 libreoffice 中打开的文档

我确信这是可以优化的。

(在这种情况下,Google 文档不是一个选项)。

尽管我已经回答了主要问题,但我仍然觉得这可以进一步优化。如果有任何方法可以连接 .doc 文件(我将收到这些文件以及 pandoc 可以写入的文件),也许可以使用 libreoffice 命令行界面,那么我想可以构建一个过于复杂的单行代码,并且完全避免离开航站楼。如果有人找到办法做到这一点,我会很乐意接受这个答案而不是我自己的答案。

答案1

事实证明,问题中的链接暗示了以下形式的可行解决方案xclip

pandoc -S file.mkd | xclip -t text/html

...然后我可以将其直接粘贴到 libreoffice 中的文档中,格式正确。这适用于 Ubuntu 13.04 存储库中的程序版本(pandoc 1.10.1 和 xclip 0.12)——-t尤其是 xclip 的选项仅在 0.12 或更高版本中。 pandoc 的选项-S使其产生“印刷正确的输出”,因此--变成一个短破折号,---变成一个长破折号,以及其他一些东西。

如果您想使用ctrl-v剪贴板,请使用:

pandoc -S file.mkd | xclip -t text/html -selection clipboard

编辑:如果您运行的是 OS X(使用pbcopy而不是xclip),请使用:

pandoc -S file.mkd | textutil -stdin -format html -convert rtf -stdout | pbcopy

要转换选定的文本而不创建文件,您可以使用:

xclip -o | pandoc -S | xclip -t text/html

...当然,这可以映射到键盘快捷键。

这可以很好地使用多种文本标记格式作为输入,请参阅潘多克指南有关如何完成此操作的更多信息(您可能需要使用该-f/--from/-r/--read选项,特别是如果您正在使用该xclip|pandoc|xclip版本)。

附带说明一下,您还可以将已有的 HTML 文件读入xclip

xclip -t text/html <file.html

或者

<file.html xclip -t text/html

答案2

如果你使用 Vim

很好的解决方案,因为我使用 neovim,所以我在以下命令中使用了上面给出的答案:

:w ! pandoc -s | xclip -t text/html -selection clipboard

  • :w ! {cmd}将缓冲区通过管道传输到 shell 命令
  • 剩下的可以在上面的答案中找到

相关内容