Salvar HTML da área de transferência como texto de remarcação

9

Quero destacar uma seção de uma página da Web e copiá-la para a área de transferência e salvá-la no meu disco local como redução. Eu preciso de uma maneira eficiente de fazer isso.

Meu método atual e complicado é:

  1. destaque a seção e copie para a área de transferência
  2. open Libre Office Writer
  3. colar no Writer
  4. salvar documento do Writer como HTML
  5. terminal aberto
  6. cd para o diretório em que salvei o HTML
  7. pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md

Obviamente, preciso de um método melhor! Alguma sugestão?

MountainX
fonte
Acredito que a obtenção de código HTML ou rich text da solicitação da área de transferência X no Stackverflow pode fornecer orientações para a obtenção do que você está procurando.
tink
Você pode se referir a uma página que deseja copiar dessa maneira?
Slm
Pode ser qualquer página da Web que eu esteja navegando. Exemplo: money.cnn.com/2013/06/05/technology/mobile/…
MountainX
Você está selecionando a página na página de origem, certo? Ou pedaços de qualquer maneira.
slm
Como StephaneChazelas mencionou nos comentários abaixo, estou apenas selecionando texto do Firefox (ou outro navegador) normalmente. Eu não estou indo para a visualização de origem.
MountainX

Respostas:

11

Com uma versão recente de xclip(a -topção foi adicionada em 2010, mas ainda não foi lançada no AFAICT, você precisaria obtê-la do subversion ou usar a que acompanha o Debian).

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

E se você quiser voltar para a área de transferência:

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

Com o qual você pode fazer um loop com:

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

O segundo xclip, com -quietserá bloqueado até que outra coisa reivindique a seleção CLIPBOARD, ou seja, até você selecionar outra coisa em algum lugar.

Dessa forma, você pode copiar entre o navegador e o que quer que esteja colando.

O @tink também possui um link útil para uma pergunta semelhante no StackOverflow, onde você pode descobrir como implementá-lo em python.

Stéphane Chazelas
fonte
O pressuposto é que você está selecionando a fonte real de uma página da Web, e não apenas navegando até ela, correto?
slm
@slm, não. Em navegadores como o Firefox ou Chrome, quando você seleciona e / ou copia algum texto em uma página da Web (renderizada), o navegador define a seleção como uma string (para aplicativos de texto usar) e como html (para aplicativos que o entendem como libreoffice para usar). Esses são chamados de alvos. xclip -selection clipboard -t TARGETSlistará os destinos / formatos que o Firefox define depois que você copiar algum texto a partir daí.
Stéphane Chazelas
Esse é um novo recurso xclip? Eu recebo um -t: não existe esse arquivo ou diretório. Estou usando a versão 0.12.
Slm
1
@StephaneChazelas Awesome solution! Eu obtive o xclip a partir daqui: pkgs.org/debian-sid/debian-main-amd64/… e ele foi instalado no Kubuntu 12.04 sem nenhum problema. Este é exatamente o tipo de solução que eu esperava. Ótimo!
MountainX
1
@ slm: Minha versão de trabalho do xclip (instalada no link acima) também mostra a versão 0.12, mas o deb é chamado de xclip_0.12 + svn84-2_amd64.deb. Este inclui a opção -t e essa opção é descrita em sua página de manual. Mas a página de manual não mostra a opção text / html, e eu provavelmente não teria descoberto nada disso sozinho.
MountainX