GNU/Linux >> Tutoriels Linux >  >> Linux

obtenir la source HTML ou le texte enrichi du presse-papiers X

Dans X11, vous devez communiquer avec le propriétaire de la sélection, poser des questions sur les formats pris en charge, puis demander des données dans le format spécifique. Je pense que la façon la plus simple de le faire est d'utiliser les boîtes à outils de fenêtrage existantes. Par exemple. avec Python et 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 sortie ressemblera à ceci :

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

Pour compléter la réponse de @rkhayrov, il existe déjà une commande pour cela :xclip . Ou plus exactement, il y a un patch à xclip qui a été ajouté à xclip plus tard en 2010, mais n'a pas encore été publié qui fait cela. Donc, en supposant que votre système d'exploitation comme Debian est livré avec la tête de subversion de xclip (modification 2019 :la version 0.13 avec ces modifications a finalement été publiée en 2016 (et intégrée à Debian en janvier 2019)) :

Pour lister les cibles de la sélection 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

Pour sélectionner une cible particulière :

$ 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

Et xclip peut également définir et posséder une sélection (-i au lieu de -o ).


Linux
  1. Comment activer ou désactiver la sélection de texte envoyée au presse-papiers ?

  2. Installer Openssl à partir de la source ?

  3. Exclure certaines commandes du stockage dans l'historique de Bash ?

  4. Puis-je imprimer des fichiers html (avec images, css) depuis la ligne de commande ?

  5. Le moyen le plus rapide de coller un bloc de texte dans l'éditeur vi à partir d'une source externe

Essayez l'éditeur de texte e3 Linux

Comment installer la dernière version d'OpenSSL à partir de la source sous Linux

Comment créer une boîte de message à partir de la ligne de commande ?

Les 10 meilleurs gestionnaires de presse-papiers Open Source pour Linux

Meilleurs éditeurs de texte Linux :les 20 éditeurs de texte et HTML examinés

Comment diriger le texte de la ligne de commande vers le presse-papiers