Este componente de tema adiciona um botão de copiar aos blocos de código dentro de posts do Discourse — perfeito para comunidades que compartilham exemplos de código ou artigos de base de conhecimento que exigem a cópia de texto.
No desktop, o botão de copiar aparece ao passar o mouse sobre o bloco.
No mobile, o botão de copiar é sempre exibido, mas empurra o código dentro do bloco para baixo, evitando que a primeira linha de código fique obscurecida se for muito longa.
Observe que isso funciona apenas para blocos de código gerados por ```, e não para blocos de código em linha.
Este é um bloco de código.
Copie este texto.
Este é um bloco de código em linha. A cópia não funciona aqui.
Muito obrigado a @j.jaffeux, que realizou a maior parte do desenvolvimento inicial deste recurso.
Curioso se estamos abertos a substituir o texto localizado “copiar”/“copiado” por ícones? Talvez o ícone de copiar para “copiar” e o ícone de marca de verificação para “copiado”?
Estou aberto a adicionar uma configuração ao componente. A razão pela qual optei por usar texto localizado é que fica claro o que está acontecendo, além de o texto poder ter uma altura menor e ainda ser legível. A estética parecia se adequar melhor ao caso de uso.
Também corrigimos alguns bugs com versões mais antigas do Discourse que não têm @ember/runloop e Promise da biblioteca rsvp disponíveis. (Obrigado a @jomaxro pelos relatórios sobre isso)
Eu adoro muito isso! Mas será que o botão de copiar pode aparecer apenas ao tocar no mobile? Estou um pouco chateado com a perda consistente de espaço na tela no mobile, uma linha extra para cada bloco de código:
como é opt-in, você só ativaria em sites onde copiar blocos de código é realmente uma atividade comum também
… dito isso.. as chances de qualquer bloco de código ser copiado no mobile são minúsculas, então sinto que a proporção entre interface e uso está desequilibrada aqui, e preferiria algo que apareça apenas ao tocar no mobile?
Tínhamos isso originalmente, mas ele sobrepujava o texto sem que fosse possível vê-lo. Gosto da ideia de torná-lo visível ao tocar. Vou investigar isso.
Adoraria usar isso, mas assim que ativei para meu tema Grey Amber, meu site ficou lento e, às vezes, sem resposta, até que eu o desativei.
Alguém já experimentou esse comportamento, ou será que isso pode sobrecarregar tanto o VPS quando está ativado?
O site é composto em 99,9% por linhas de código simples, e eu esperava convertê-las para blocos de código, então não deveria estar tentando buscar nada para converter código existente. Ou está?
Preciso dar algum tempo para que se normalize? Ele continuava derrubando o site temporariamente e, às vezes, quando uma página carregava, aparecia um erro com a mensagem de “tente novamente” do Discourse.
Quanto ao possível bug de desempenho, testei uma página com dezenas de blocos de código e não encontrei nenhum problema. Então, precisarei de uma reprodução antes de poder fazer qualquer coisa @lcestou, por favor.
Teste o novo bloco de código aqui:
rsync -a file.txt file_backup.txt
rsync -a /var/www/public_html/ /var/www/public_html_backup/
Essa funcionalidade agora está no núcleo do Discourse
Como resultado, este componente do tema está agora OBSOLETO. Ele continuará funcionando para versões mais antigas do Discourse, mas não receberá mais atualizações.
Atualizei a postagem original para refletir essa informação.