将剪贴板中的 HTML 保存为 Markdown 文本

Mou*_*inX 11 editors text-processing html conversion markdown

我希望能够突出显示网页的一部分并将其复制到剪贴板,然后将其作为 Markdown 保存到我的本地磁盘。我需要一种有效的方法来做到这一点。

我目前的繁琐方法是:

  1. 突出显示部分并复制到剪贴板
  2. 打开 Libre Office Writer
  3. 粘贴到Writer
  4. 将 Writer 文档另存为 HTML
  5. 打开终端
  6. cd 到我保存 HTML 的目录
  7. pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md

显然,我需要一个更好的方法!有什么建议?

Sté*_*las 14

使用最新版本的xclip(该-t选项于 2010 年添加但尚未发布 AFAICT,因此您需要从 subversion 获取它,或使用打包在 Debian 中的那个)。

xclip -o -selection clipboard -t text/html | pandoc -r html -w markdown
Run Code Online (Sandbox Code Playgroud)

如果你想把它放回剪贴板:

xclip -o -selection clipboard -t text/html |
  pandoc -r html -w markdown |
  xclip -i -selection clipboard
Run Code Online (Sandbox Code Playgroud)

您可以在循环中执行以下操作:

while :; do
  xclip -o -selection clipboard -t text/html |
    pandoc -r html -w markdown |
    xclip -i -selection clipboard -quiet
done
Run Code Online (Sandbox Code Playgroud)

第二个xclip, with-quiet将阻塞,直到其他东西声明 CLIPBOARD 选择,即直到您在​​某处选择其他东西。

这样,您就可以在浏览器和粘贴 Markdown 的任何内容之间来回复制。

@tink在 StackOverflow上也有一个类似问题的有用链接,您可以其中找到如何在 python 中实现它。

  • @slm:我的 xclip 工作版本(从上面的链接安装)也显示版本 0.12,但 deb 名为 xclip_0.12+svn84-2_amd64.deb。这个确实包含 -t 选项,该选项在其手册页中进行了描述。但是手册页没有显示 text/html 选项,我自己可能不会想到任何这些。 (2认同)