GNU/Linux >> Linux Esercitazione >  >> Linux

ottenere sorgenti HTML o rich text dagli appunti di X

In X11 devi comunicare con il proprietario della selezione, chiedere informazioni sui formati supportati e quindi richiedere i dati nel formato specifico. Penso che il modo più semplice per farlo sia utilizzare i toolkit di windowing esistenti. Per esempio. con Python e 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()

L'output sarà simile a questo:

$ ./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

Per completare la risposta di @rkhayrov, esiste già un comando per questo:xclip . O più esattamente, c'è una patch per xclip che è stato aggiunto a xclip più tardi nel 2010, ma non è ancora stato rilasciato. Quindi, supponendo che il tuo sistema operativo come Debian venga fornito con l'intestazione di sovversione di xclip (modifica 2019 :la versione 0.13 con queste modifiche è stata finalmente rilasciata nel 2016 (e inserita in Debian nel gennaio 2019)):

Per elencare gli obiettivi per la selezione 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

Per selezionare un obiettivo particolare:

$ 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

E xclip può anche impostare e possedere una selezione (-i invece di -o ).


Linux
  1. Come attivare o disattivare la selezione del testo inviata negli Appunti?

  2. Ottenere i tag Wispr da un portale di autenticazione Fon?

  3. Modificare una posta in arrivo da testo/normale a testo/html?

  4. Escludere alcuni dei comandi dall'essere archiviati nella cronologia di Bash?

  5. Come modificare la sorgente di HTML negli Appunti?

Prova l'editor di testo e3 Linux

Come installare l'ultima versione di OpenSSL da Source su Linux

Come creare una finestra di messaggio dalla riga di comando?

I 10 migliori gestori di appunti open source per Linux

I migliori editor di testo Linux:i 20 editor di testo e HTML recensiti

Il modo più rapido per incollare blocchi di testo nell'editor vi da una fonte esterna