我即将通过电子邮件与我的一位朋友合作撰写一些散文。作为一个普通人,他当然会使用MS Word文档格式;作为一个大书呆子,我在电脑上写作时更喜欢使用 Markdown。
我需要的是完全相反的关于将从网页复制的富文本转换为 Markdown 的问题。我天真的最坏情况工作流程是:
- 用 markdown 写出文档
- 使用
pandoc -S file.mkd -o temp.html
temp.html
在网络浏览器中打开- 从页面复制并粘贴到 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 命令- 剩下的可以在上面的答案中找到