如何编辑剪贴板中的HTML源?

如果我从Pidgin即时消息窗口中剪切一些HTML,我可以轻松地将其逐字粘贴到Thunderbird中的新HTML电子邮件中。 保留所有格式(字体,颜色等),因此我的Ubuntu 13.10桌面剪贴板似乎必须在某处具有HTML源。

但我想调整HTML源代码。

当它在剪贴板中时,我怎样才能真正获得HTML源代码? 我想把它扔进一个文本文件,在Vim中处理标记或者其他什么,然后在网页中使用这个HTML源代码或者将它提供给Thunderbird的“插入→HTML”。

嗯,也许类似于PasteImg (在剪贴板上获取图形中提到的磁盘? ),但使用request_rich_text()而不是request_image() ? 我不介意使用一个小的Python脚本,我很少想从剪贴板中获取HTML源代码。

剪贴板中的内容实际上可能是“富文本”。

来自此答案的Python脚本输出

 Current clipboard offers formats: ('TIMESTAMP', 'TARGETS', 'MULTIPLE', 'SAVE_TARGETS', 'COMPOUND_TEXT', 'STRING', 'TEXT', 'UTF8_STRING', 'text/html', 'text/plain') 

原来我的Pidgin日志是HTML格式,所以这是获取 HTML源码的一种方法,完全绕过剪贴板。 我仍然对原始问题的答案感兴趣(如何从剪贴板中检索HTML)。

找到了! 以下是在剪贴板上有一些内容时如何获取HTML源代码:

 #!/usr/bin/env python import gtk print (gtk.Clipboard().wait_for_contents('text/html')).data 

这有帮助。

这对我不起作用。 我的回调从未输入过。

我看到你想要达到的目标。 尝试粘贴到需要wysiwyg的东西,在那里编辑它,然后将粘贴复制到Thunderbird中?

也许bluegriffon或libreoffice作家会工作。

这是对脚本的修改,实际上允许直接编辑 html。

它还处理字符编码问题:如果您回复使用Windows的某人的电子邮件,编码可能会陷入UTF-16,这对编辑没有好处。 您可能需要在Python中安装chardet模块 。

subprocess.call(...中将'vi'替换为您选择的文本编辑器subprocess.call(...

 #!/usr/bin/env python import gtk import chardet import os import getopt import subprocess dtype = 'text/html' htmlclip = gtk.Clipboard().wait_for_contents(dtype).data encoding = chardet.detect(htmlclip)['encoding'] # Shove the clipboard to a temporary file tmpfn = '/tmp/htmlclip_%i' % os.getpid() with open (tmpfn, 'w') as editfile: editfile.write(htmlclip.decode(encoding)) # Manually edit the temporary file subprocess.call(['vi', tmpfn]) with open (tmpfn, 'r') as editfile: htmlclip = editfile.read().encode(encoding) # Put the modified data back to clipboard gtk.Clipboard().set_with_data( [(dtype,0,0)], lambda cb, sd, info, data: sd.set(dtype, 8, htmlclip), lambda cb, d: None ) gtk.Clipboard().set_can_store([(dtype,0,0)]) gtk.Clipboard().store() 

这样做了一个完整的编辑周期,“就地”修改了剪贴板。

我用它来弥补Thunderbird令人烦恼的缺乏html编辑器function:

  1. 在消息编写窗口中使用ctrl + a 选择全部
  2. CTRL + C
  3. 运行上面的脚本,打开一个编辑器 –
    1. 对html源进行更改
    2. 保存并退出
  4. 在撰写窗口中使用ctrl + v会使用html编辑的版本覆盖整个内容。

我没有真正使用Thunderbird,但您应该能够使用扩展来帮助编辑Thnderbird中的源代码 – 例如:

https://addons.mozilla.org/en-us/thunderbird/addon/edit-html-source/ 尚未更新
https://addons.mozilla.org/en-us/thunderbird/addon/stationery/

在https://stackoverflow.com/questions/3261379/getting-html-source-or-rich-text-from-the-x-clipboard上有一个答案,它直接使用xclip实用程序:

xclip -selection clipboard -o -t text/html

我发现它现在最简单,最可靠,因为GTK3 / Python3似乎引入了一些破坏了原始答案的变化。