Como posso editar a fonte do HTML na área de transferência?

Como posso editar a fonte do HTML na área de transferência?

Se eu cortar algum HTML de uma janela de mensagens instantâneas do Pidgin, posso facilmente colá-lo literalmente em um novo e-mail HTML no Thunderbird. Toda a formatação (fontes, cores, etc.) é preservada, então parece que minha área de transferência da área de trabalho do Ubuntu 13.10 deve ter a fonte HTML em algum lugar.

Mas eu gostaria de ajustar a fonte HTML.

Como posso realmente acessar a fonte HTML quando ela está na área de transferência? Eu gostaria apenas de jogá-lo em um arquivo de texto, trabalhar na marcação no Vim ou qualquer outra coisa e, em seguida, usar essa fonte HTML em uma página da Web ou alimentá-la no "Inserir → HTML" do Thunderbird.

Hmm, talvez algo comoColarImg(mencionado emTransferindo um gráfico da área de transferência para o disco?), mas usando request_rich_text()em vez de request_image()? Eu não me importaria de usar um pequeno script Python nas raras vezes em que desejo obter o código-fonte HTML da área de transferência.

O que está na área de transferência pode na verdade ser "rich text".

O script Python deesta respostasaídas

Current clipboard offers formats: ('TIMESTAMP', 'TARGETS', 'MULTIPLE',
'SAVE_TARGETS', 'COMPOUND_TEXT', 'STRING', 'TEXT', 'UTF8_STRING', 'text/html',
'text/plain')

Acontece que meus logs do Pidgin estão em HTML, então essa é uma maneira de chegaresseFonte HTML, ignorando totalmente a área de transferência. Ainda estou interessado na resposta à pergunta original (como recuperar HTML da área de transferência).

Responder1

Encontrei! Veja como acessar o código-fonte HTML quando há algum na sua área de transferência:

#!/usr/bin/env python
import gtk
print (gtk.Clipboard().wait_for_contents('text/html')).data

Esseajudou.

Essenão funcionou para mim. Meu retorno de chamada nunca foi inserido.

Responder2

Entendo onde você está tentando chegar. Tente colar em algo que use wysiwyg, edite-o lá e copie e cole no Thunderbird?

Talvez o bluegriffon ou o libreofficewriter funcionem.

Responder3

Aqui está uma modificação do seu script, que na verdade permiteediçãoo html diretamente.

Ele também resolve problemas com codificação de caracteres: se você responder a um e-mail de alguém que usa Windows, é provável que a codificação esteja presa em UTF-16, o que não é bom para edição. Talvez seja necessário instalar ochardetmóduloem Python.

Substitua 'vi'pelo editor de texto de sua preferência, no formato subprocess.call(....

#!/usr/bin/env python
import gtk
import chardet
import os
import getopt
import subprocess

dtype = 'text/html'
htmlclip = gtk.Clipboard().wait_for_contents(dtype).data
encoding = chardet.detect(htmlclip)['encoding']

# Shove the clipboard to a temporary file
tmpfn = '/tmp/htmlclip_%i' % os.getpid()

with open (tmpfn, 'w') as editfile:
   editfile.write(htmlclip.decode(encoding))

# Manually edit the temporary file
subprocess.call(['vi', tmpfn])

with open (tmpfn, 'r') as editfile:
   htmlclip = editfile.read().encode(encoding)

# Put the modified data back to clipboard
gtk.Clipboard().set_with_data(
      [(dtype,0,0)],
      lambda cb, sd, info, data: sd.set(dtype, 8, htmlclip),
      lambda cb, d: None )
gtk.Clipboard().set_can_store([(dtype,0,0)])
gtk.Clipboard().store()

Isso faz um ciclo completo de edição, modificando a área de transferência “no lugar”.

Eu o uso para compensar a irritante falta de um recurso de editor de HTML no Thunderbird:

  1. selecionar tudocom ctrl+ana janela de composição da mensagem
  2. ctrl+c
  3. execute o script acima, que abre um editor –
    1. faça suas alterações na fonte HTML
    2. salve e saia
  4. ctrl+vna janela de composição substitui todo o conteúdo pela sua versão editada em HTML.

Responder4

uma respostaem que usa diretamente o xcliputilitário:

xclip -selection clipboard -o -t text/html

Acho que é o mais fácil e confiável agora, já que GTK3/Python3 parece ter introduzido algumas mudanças que quebraram a resposta original.

informação relacionada