attribute - Obtención de fuente HTML o texto enriquecido desde el portapapeles X
html title attribute (2)
En X11, debe comunicarse con el propietario de la selección, preguntar acerca de los formatos admitidos y luego solicitar los datos en el formato específico. Creo que la forma más sencilla de hacerlo es utilizando los kits de herramientas de creación de ventanas existentes. P.ej. con Python y GTK:
#!/usr/bin/python
import glib, gtk
def test_clipboard():
clipboard = gtk.Clipboard()
targets = clipboard.wait_for_targets()
print "Targets available:", ", ".join(map(str, targets))
for target in targets:
print "Trying ''%s''..." % str(target)
contents = clipboard.wait_for_contents(target)
if contents:
print contents.data
def main():
mainloop = glib.MainLoop()
def cb():
test_clipboard()
mainloop.quit()
glib.idle_add(cb)
mainloop.run()
if __name__ == "__main__":
main()
La salida se verá así:
$ ./clipboard.py
Targets available: TIMESTAMP, TARGETS, MULTIPLE, text/html, text/_moz_htmlcontext, text/_moz_htmlinfo, UTF8_STRING, COMPOUND_TEXT, TEXT, STRING, text/x-moz-url-priv
...
Trying ''text/html''...
I asked <a href="http://superuser.com/questions/144185/getting-html-source-or-rich-text-from-the-x-clipboard">the same question on superuser.com</a>, because I was hoping there was a utility to do this, but I didn''t get any informative responses.
Trying ''text/_moz_htmlcontext''...
<html><body class="question-page"><div class="container"><div id="content"><div id="mainbar"><div id="question"><table><tbody><tr><td class="postcell"><div><div class="post-text"><p></p></div></div></td></tr></tbody></table></div></div></div></div></body></html>
...
Trying ''STRING''...
I asked the same question on superuser.com, because I was hoping there was a utility to do this, but I didn''t get any informative responses.
Trying ''text/x-moz-url-priv''...
http://stackoverflow.com/questions/3261379/getting-html-source-or-rich-text-from-the-x-clipboard
¿Cómo se puede obtener texto enriquecido o código fuente HTML desde el portapapeles X? Por ejemplo, si copia texto de un navegador web y lo pega en kompozer, se pega como HTML, con los enlaces, etc., conservados. Sin embargo, xclip -o para la misma selección solo genera texto sin formato, reformateado de manera similar a la de elinks -dump
. Me gustaría extraer el HTML y colocarlo en un editor de texto (específicamente vim
).
Hice la misma pregunta en superuser.com , porque esperaba que hubiera una utilidad para hacer esto, pero no obtuve ninguna respuesta informativa. La API del portapapeles X es para mí una bestia misteriosa; Cualquier consejo sobre piratear algo para obtener esta información es bienvenido. Mi idioma de elección en estos días es Python, pero casi cualquier cosa está bien.
Para complementar la respuesta de @rkhayrov , ya existe un comando para eso: xclip
. O más exactamente, hay un parche para xclip
que se agregó a xclip
más adelante en 2010 , pero aún no se ha lanzado. Entonces, asumiendo que su sistema operativo como Debian se envía con el jefe de subversión de xclip
:
Para enumerar los objetivos para la selección de CLIPBOARD:
$ xclip -selection clipboard -o -t TARGETS
TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
text/html
text/_moz_htmlcontext
text/_moz_htmlinfo
UTF8_STRING
COMPOUND_TEXT
TEXT
STRING
text/x-moz-url-priv
Para seleccionar un objetivo particular:
$ xclip -selection clipboard -o -t text/html
<a href="https://.com/users/200540/rkhayrov" title="3017 reputation" class="comment-user">rkhayrov</a>
$ xclip -selection clipboard -o -t UTF8_STRING
rkhayrov
$ xclip -selection clipboard -o -t TIMESTAMP
684176350
Y xclip
también puede establecer y poseer una selección ( -i
lugar de -o
).