
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
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 ochardet
mó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:
- selecionar tudocom ctrl+ana janela de composição da mensagem
- ctrl+c
- execute o script acima, que abre um editor –
- faça suas alterações na fonte HTML
- salve e saia
- ctrl+vna janela de composição substitui todo o conteúdo pela sua versão editada em HTML.
Responder4
Háuma respostaem que usa diretamente o xclip
utilitá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.