Вот модификация вашего скрипта, которая позволяет редактировать html напрямую.
Он также обрабатывает проблемы с кодировкой символов: если вы отвечаете на электронную почту от кого-то, использующего Windows, скорее всего, кодировка застряла в UTF-16, что не подходит для редактирования. Возможно, вам потребуется установить модуль chardet в Python.
Заменить '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()
Это делает полный редактирование цикла, изменение буфера обмена “ на месте & rdquo ;.
Я использую его, чтобы компенсировать недовольство Thunderbird отсутствием функции html-редактора:
выбрать все с помощью ctrl + a в окне создания сообщения ctrl + c запустить вышеуказанный скрипт, который открывает редактор & ndash; внесите изменения в исходный код html и закройте ctrl + v в окне компоновки, чтобы перезаписать весь контент с помощью вашей редакции html.