GNU/Linux >> Znalost Linux >  >> Linux

získání zdrojového kódu HTML nebo formátovaného textu ze schránky X

V X11 musíte komunikovat s vlastníkem výběru, zeptat se na podporované formáty a poté si vyžádat data v konkrétním formátu. Myslím, že nejjednodušší způsob, jak toho dosáhnout, je použít existující sady nástrojů pro vytváření oken. Např. s Pythonem a 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()

Výstup bude vypadat takto:

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

Pro doplnění odpovědi @rkhayrova pro to již existuje příkaz:xclip . Přesněji řečeno, existuje oprava xclip který byl přidán do xclip později v roce 2010, ale ještě nebyla vydána, to dělá. Předpokládejme tedy, že váš OS jako Debian se dodává s hlavičkou subversion xclip (Úprava pro rok 2019 :verze 0.13 s těmito změnami byla nakonec vydána v roce 2016 (a stažena do Debianu v lednu 2019)):

Seznam cílů pro výběr SCHRÁNKA:

$ 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

Výběr konkrétního cíle:

$ 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

A xclip může také nastavit a vlastnit výběr (-i místo -o ).


Linux
  1. Jak přepnout nebo vypnout odesílání výběru textu do schránky?

  2. Získávání značek Wispr z portálu pro ověřování Fon?

  3. Upravit příchozí poštu z textu/prostého na text/html?

  1. Připojit odpovídající text k řádku?

  2. Vyloučení některých příkazů z ukládání do historie Bash?

  3. Nainstalujte Apache 2 ze zdroje na Linux

  1. Instalovat Openssl ze zdroje?

  2. Mohu tisknout html soubory (s obrázky, css) z příkazového řádku?

  3. Nejrychlejší způsob, jak vložit blok textu do editoru vi z externího zdroje