Guardar HTML del portapapeles como texto de descuento

9

Quiero poder resaltar una sección de una página web y copiarla en el portapapeles y luego guardarla en mi disco local como reducción. Necesito una forma eficiente de hacer eso.

Mi método engorroso actual es:

  1. resaltar sección y copiar al portapapeles
  2. abrir Libre Office Writer
  3. pegar en el escritor
  4. guardar el documento de Writer como HTML
  5. terminal abierta
  6. cd al directorio donde guardé el HTML
  7. pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md

¡Obviamente, necesito un método mejor! ¿Alguna sugerencia?

MountainX
fuente
Creo que obtener fuente HTML o texto enriquecido de la solicitud del portapapeles X en Stackverflow puede proporcionar orientación para obtener lo que está buscando.
Tink
¿Puede referirse a una página que desee copiar de esta manera?
slm
Podría ser cualquier página web en la que esté navegando. Ejemplo: money.cnn.com/2013/06/05/technology/mobile/…
MountainX
Estás seleccionando la página web a través de la página de origen, ¿verdad? O piezas de todos modos.
slm
Como StephaneChazelas mencionó en los comentarios a continuación, solo estoy seleccionando el texto de Firefox (u otro navegador) normalmente. NO voy a la vista de origen.
MountainX

Respuestas:

11

Con una versión reciente de xclip(la -topción se agregó en 2010 pero aún no se lanzó AFAICT, por lo que deberá obtenerla de Subversion o usar la que está empaquetada en Debian).

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

Y si quieres hacer que vuelva al portapapeles:

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

Lo que puedes hacer en un bucle con:

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

El segundo xclip, con -quietbloqueará hasta que otra cosa reclame la selección de CLIPBOARD, es decir, hasta que seleccione otra cosa en algún lugar.

De esa manera, puede copiar de un lado a otro entre su navegador y lo que sea que esté pegando el descuento.

@tink también tiene un enlace útil a una pregunta similar en StackOverflow donde puede encontrar cómo implementarlo en python.

Stéphane Chazelas
fuente
La suposición es que está seleccionando la fuente real de una página web, no solo navegando hacia ella, ¿correcto?
slm
@slm, no. En navegadores como Firefox o Chrome, cuando selecciona y / o copia texto en una página web (representada), el navegador establece la selección como una cadena (para que las aplicaciones de texto la usen) y como html (para aplicaciones que la entienden como libreoffice para usar). Esos se llaman objetivos. xclip -selection clipboard -t TARGETSenumerará los objetivos / formatos que Firefox establece después de copiar algo de texto desde allí.
Stéphane Chazelas
¿Es esta una nueva característica en xclip? Me sale un -t: No existe tal archivo o directorio. Estoy usando ver: 0.12.
slm
1
@StephaneChazelas ¡Impresionante solución! Obtuve xclip desde aquí: pkgs.org/debian-sid/debian-main-amd64/... y se instaló en Kubuntu 12.04 sin ningún problema. Este es exactamente el tipo de solución que esperaba. ¡Excelente!
MountainX
1
@slm: Mi versión de trabajo de xclip (instalada desde el enlace anterior) también muestra la versión 0.12, pero la deb se llama xclip_0.12 + svn84-2_amd64.deb. Este sí incluye la opción -t y esa opción se describe en su página de manual. Pero la página de manual no muestra la opción text / html, y probablemente no habría descubierto nada de esto por mi cuenta.
MountainX