
Wenn ich HTML aus einem Pidgin-Instant-Messenger-Fenster ausschneide, kann ich es problemlos unverändert in eine neue HTML-E-Mail in Thunderbird einfügen. Die gesamte Formatierung (Schriftarten, Farben usw.) bleibt erhalten, sodass es so aussieht, als ob die HTML-Quelle irgendwo in meiner Ubuntu 13.10-Desktop-Zwischenablage vorhanden sein muss.
Aber ich möchte die HTML-Quelle optimieren.
Wie kann ich eigentlich an die HTML-Quelle gelangen, wenn sie sich in der Zwischenablage befindet? Ich möchte sie einfach in eine Textdatei einfügen, die Auszeichnung in Vim oder was auch immer bearbeiten und diese HTML-Quelle dann in einer Webseite verwenden oder sie in Thunderbirds „Einfügen → HTML“ einspeisen.
Hmm, vielleicht so etwas wieBild einfügen(erwähnt inEine Grafik aus der Zwischenablage auf die Festplatte übertragen?), aber die Verwendung request_rich_text()
anstelle von request_image()
? Ich hätte nichts dagegen, in den seltenen Fällen, in denen ich einen HTML-Quellcode aus der Zwischenablage abrufen möchte, ein kleines Python-Skript zu verwenden.
Der Inhalt der Zwischenablage kann tatsächlich „Rich Text“ sein.
Das Python-Skript vondiese AntwortAusgänge
Current clipboard offers formats: ('TIMESTAMP', 'TARGETS', 'MULTIPLE',
'SAVE_TARGETS', 'COMPOUND_TEXT', 'STRING', 'TEXT', 'UTF8_STRING', 'text/html',
'text/plain')
Es stellte sich heraus, dass meine Pidgin-Protokolle in HTML vorliegen. Das ist also eine Möglichkeit,DasHTML-Quelle, wobei die Zwischenablage vollständig umgangen wird. Mich interessiert immer noch die Antwort auf die ursprüngliche Frage (wie rufe ich HTML aus der Zwischenablage ab).
Antwort1
Antwort2
Ich verstehe, worauf Sie hinauswollen. Versuchen Sie, es in etwas einzufügen, das WYSIWYG akzeptiert, dort zu bearbeiten und es dann in Thunderbird einzufügen?
Vielleicht funktionieren Bluegriffon oder LibreOffice Writer.
Antwort3
Hier ist eine Modifikation Ihres Skripts, die es tatsächlich ermöglichtBearbeitungdas HTML direkt.
Es behandelt auch Probleme mit der Zeichenkodierung: Wenn Sie auf eine E-Mail von jemandem antworten, der Windows verwendet, ist die Kodierung wahrscheinlich auf UTF-16 festgelegt, was für die Bearbeitung nicht geeignet ist. Möglicherweise müssen Sie daschardet
Modulin Python.
Ersetzen Sie es 'vi'
durch den Texteditor Ihrer Wahl in 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()
Dadurch wird ein vollständiger Bearbeitungszyklus ausgeführt, wobei die Zwischenablage „an Ort und Stelle“ geändert wird.
Ich verwende es, um das ärgerliche Fehlen einer HTML-Editor-Funktion in Thunderbird auszugleichen:
- Wählen Sie Alleim ctrl+aNachrichtenerstellungsfenster
- ctrl+c
- Führen Sie das obige Skript aus, das einen Editor öffnet –
- Nehmen Sie Ihre Änderungen an der HTML-Quelle vor
- speichern und Beenden
- ctrl+vim Verfassen-Fenster überschreibt den gesamten Inhalt mit Ihrer HTML-bearbeiteten Version.
Antwort4
Es gibteine Antwortbei dem das xclip
Dienstprogramm direkt verwendet wird:
xclip -selection clipboard -o -t text/html
Ich finde es jetzt am einfachsten und zuverlässigsten, da GTK3/Python3 einige Änderungen eingeführt zu haben scheint, die die ursprüngliche Antwort beschädigt haben.