GNU/Linux >> Tutoriales Linux >  >> Linux

obtener fuente HTML o texto enriquecido del portapapeles X

En X11, debe comunicarse con el propietario de la selección, preguntar sobre los formatos admitidos y luego solicitar los datos en el formato específico. Creo que la forma más fácil de hacer esto es usar los kits de herramientas 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

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 tarde en 2010, pero aún no se ha lanzado que haga eso. Entonces, suponiendo que su sistema operativo como Debian se envía con el encabezado de subversión de xclip (edición de 2019 :la versión 0.13 con esos cambios finalmente se lanzó en 2016 (y se incorporó a Debian en enero de 2019)):

Para enumerar los objetivos para la selección del PORTAPAPELES:

$ 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 en particular:

$ xclip -selection clipboard -o -t text/html
 <a href="https://stackoverflow.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 en lugar de -o ).


Linux
  1. ¿Obtener etiquetas Wispr de un portal de autenticación de Fon?

  2. ¿Modificar un correo entrante de texto/sin formato a texto/html?

  3. ¿Instalar Openssl desde la fuente?

  4. ¿Adjuntar el texto coincidente a la línea?

  5. ¿Excluyendo algunos de los comandos para que no se almacenen en el historial de Bash?

Pruebe el editor de texto e3 Linux

Cómo instalar la última versión de OpenSSL desde Source en Linux

¿Cómo crear un cuadro de mensaje desde la línea de comandos?

Los 10 mejores administradores de portapapeles de código abierto para Linux

Los mejores editores de texto de Linux:los 20 editores de texto y HTML revisados

Cómo canalizar texto desde la línea de comando al portapapeles