Enregistrer le HTML du presse-papiers en tant que texte de démarque

9

Je veux pouvoir mettre en évidence une section d'une page Web et la copier dans le presse-papiers, puis l'enregistrer sur mon disque local en tant que démarque. J'ai besoin d'un moyen efficace de le faire.

Ma méthode encombrante actuelle est:

  1. mettre en surbrillance la section et la copier dans le presse-papiers
  2. ouvrir Libre Office Writer
  3. coller dans Writer
  4. enregistrer le document Writer au format HTML
  5. terminal ouvert
  6. cd dans le répertoire où j'ai enregistré le HTML
  7. pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md

Évidemment, j'ai besoin d'une meilleure méthode! Aucune suggestion?

MountainX
la source
Je pense que l' obtention de la source HTML ou du texte riche à partir de la demande du presse-papiers X sur Stackverflow peut fournir des conseils pour obtenir ce que vous recherchez.
tink
Pouvez-vous vous référer à une page que vous voudrez peut-être copier de cette manière?
slm
Il peut s'agir de n'importe quelle page Web que je parcours. Exemple: money.cnn.com/2013/06/05/technology/mobile/…
MountainX
Vous sélectionnez la page Web via la page source, non? Ou des morceaux de toute façon.
slm
Comme StephaneChazelas l'a mentionné dans les commentaires ci-dessous, je sélectionne simplement le texte de Firefox (ou d'un autre navigateur) normalement. Je ne vais PAS à la vue source.
MountainX

Réponses:

11

Avec une version récente de xclip(l' -toption a été ajoutée en 2010 mais pas encore publiée AFAICT, vous devriez donc l'obtenir de subversion, ou utiliser celle emballée dans Debian).

xclip -o -selection clipboard -t text/html | pandoc -r html -w markdown

Et si vous voulez faire cela dans le presse-papiers:

xclip -o -selection clipboard -t text/html |
  pandoc -r html -w markdown |
  xclip -i -selection clipboard

Ce que vous pouvez faire en boucle avec:

while :; do
  xclip -o -selection clipboard -t text/html |
    pandoc -r html -w markdown |
    xclip -i -selection clipboard -quiet
done

Le second xclip, avec -quietbloquera jusqu'à ce que quelque chose d'autre revendique la sélection CLIPBOARD, c'est-à-dire jusqu'à ce que vous sélectionniez quelque chose d'autre quelque part.

De cette façon, vous pouvez copier dans les deux sens entre votre navigateur et tout ce que vous collez la démarque.

@tink a également un lien utile vers une question similaire sur StackOverflow où vous pouvez trouver comment l'implémenter en python.

Stéphane Chazelas
la source
L'hypothèse est que vous sélectionnez la source réelle d'une page Web, pas seulement la navigation, n'est-ce pas?
slm
@slm, non. Dans les navigateurs comme Firefox ou Chrome, lorsque vous sélectionnez et / ou copiez du texte dans une page Web (rendue), le navigateur définit la sélection à la fois sous forme de chaîne (pour les applications de texte à utiliser) et de html (pour les applications qui le comprennent comme libreoffice à utiliser). Ce sont des cibles. xclip -selection clipboard -t TARGETSrépertorie les cibles / formats que Firefox définit après avoir copié du texte à partir de là.
Stéphane Chazelas
Est-ce une nouvelle fonctionnalité xclip? Je reçois un -t: aucun fichier ou répertoire de ce type. J'utilise ver: 0.12.
slm
1
@StephaneChazelas Super solution! J'ai obtenu xclip à partir d'ici: pkgs.org/debian-sid/debian-main-amd64/… et il a été installé dans Kubuntu 12.04 sans aucun problème. C'est exactement le type de solution que j'espérais. Génial!
MountainX
1
@slm: Ma version de travail de xclip (installée à partir du lien ci-dessus) affiche également la version 0.12, mais le deb s'appelle xclip_0.12 + svn84-2_amd64.deb. Celui-ci inclut l'option -t et cette option est décrite dans sa page de manuel. Mais la page de manuel n'affiche pas l'option text / html, et je n'aurais probablement pas compris tout cela par moi-même.
MountainX