Copiar componente de postagem

|||
-|-|-|
:discourse2: | Resumo | Copiar postagem exibe um botão na barra de controle de cada postagem que copia todo o conteúdo da postagem para a área de transferência do usuário.
| :eyeglasses: | Prévia | Prévia no Criador de Temas do Discourse
:hammer_and_wrench: | Link do Repositório | https://github.com/discourse/discourse-copy-post
:open_book:|Novo em Temas do Discourse?| Guia para iniciantes em Temas do Discourse

Instalar este componente de tema

Configurações

Nome Descrição
copy_type Selecione o tipo de texto copiado que você gostaria de salvar na área de transferência (Markdown ou HTML).
copy_button_allowed_groups Selecione os grupos que têm permissão para usar o botão de cópia. Por padrão, todos os usuários do Nível de Confiança 1 o verão.
Tradução Padrão
title Copiar o conteúdo desta postagem

Capturas de tela

A imagem mostra um tópico de discussão em um fórum com várias respostas discutindo o filme mais inspirador que eles já viram, incluindo comentários sobre Trees e Albania. (Legenda por IA)


:discourse2: Hospedado por nós? Componentes de tema estão disponíveis para uso em nossos planos Standard, Business e Enterprise.

25 curtidas

Ótimo componente de tema! Obrigado

2 curtidas

O que acontece com a formatação e a mídia?

2 curtidas

@Zup

Pode ser necessário fazer algumas melhorias nesta área, mas atualmente:

  • a mídia não é copiada
  • a formatação será perdida (ou seja, apenas texto simples), no entanto, as quebras de linha das tags <p> estarão presentes.
3 curtidas

Espero que isso possa ser atualizado para incluir mídia e formatação ao ser colado no Discourse.

2 curtidas

@Zup

Sim, definitivamente algo que pretendo melhorar no futuro.

No entanto, enquanto isso, adicionei uma configuração para copiar o conteúdo HTML bruto em vez disso. Se você definir isso como true, o botão de cópia copiará o HTML bruto da postagem em vez do texto simples. Desta forma, você terá a formatação e a mídia.

4 curtidas

Super! :clap:

Talvez um segundo botão, Duplicar, (na área do ícone de engrenagem do moderador?) para copiar automaticamente todo o conteúdo da postagem para um novo tópico com "DUPLICAR: " anexado ao início do título?

De qualquer forma, muito útil como está, obrigado!

4 curtidas

Talvez fazer o botão fazer uma requisição para /raw/topic_id/post_number para que você possa copiar o conteúdo real da postagem? Dessa forma, ele agirá como o botão “Source” muito útil do Reddit Enhancement Suite.

7 curtidas

Um componente semelhante já existe: Raw Post Button.

Adicionar um botão de cópia à modal desse componente combinaria ambas as abordagens, o que você acha @keegan @Johani?

4 curtidas

@md-misko Sim, acho que é uma ótima ideia. Como criei um widget para o botão de cópia, acredito que ele possa ser copiado de forma bastante simples para ser usado no modal.

4 curtidas

Existe algum truque para mostrar o botão apenas para usuários logados?

1 curtida

@Jagster

Agora tem! :smiley: Adicionei uma configuração para aplicar um nível mínimo de confiança para exibir o widget. Configurá-lo para 0 fará com que apenas usuários logados possam ver o botão.

3 curtidas

Por que não podemos dar dois joinhas quando é merecido :wink:

2 curtidas

:+1: :+1:

Agora @keegan os tem. :smiley:

1 curtida

Isso não estava funcionando em uma nova instalação.
O min_trust_level não era selecionável no Admin.
editar: o componente estava funcionando, mas não estava sendo exibido corretamente no Admin

Eu fiz um fork do repositório e consegui fazer funcionar, mas defini o min_trust_level como um inteiro.
Então (5) = ‘desabilitado’ (0-4) como esperado. Então uma pequena reescrita.

Eu não fiz um PR… pois é uma simplificação… talvez alguém possa confirmar que o componente não está funcionando?

2 curtidas

Olá @geoff777 Testei isso em uma nova instalação e parece estar funcionando corretamente para mim.
Além disso, se eu aplicar essas alterações, o problema com a configuração do min_trust_level como um inteiro no arquivo settings.yml é que o valor 0 não está aparecendo no menu suspenso.

2 curtidas

Qualquer um dos valores, exceto desativado, não está aparecendo na caixa quando selecionado. Pelo que sei, nenhum dos valores está em uso, no entanto.

4 curtidas

Ah, desculpe, meu erro. Pensei que você quisesse dizer que alterou as strings na enum para inteiros, mas você quis dizer que usou o tipo inteiro em vez disso. Sim, essa parece ser uma abordagem melhor. Eu atualizei o componente de tema para suportar isso. Espero que isso corrija quaisquer problemas.

3 curtidas

Este é um ótimo TC! Em nosso caso de uso, queremos que nossos autores copiem posts completos e os colem em um editor externo de um site de curso. Seria ótimo se você pudesse copiar o post inteiro, incluindo mídia, em formato HTML ou apenas texto rico.

1 curtida

Apenas um aviso para aqueles que usavam isso anteriormente. Movi este projeto de pessoal para um official Theme component :tada:. Com isso, fiz algumas alterações para modernizar o componente para que ele funcione corretamente na versão mais recente do Discourse.

Também atualizei as configurações. Em vez de uma configuração apenas de nível de confiança, agora você pode selecionar quaisquer grupos que deseja permitir o uso do botão de cópia. Além disso, permiti uma configuração de copy_type para que você possa escolher se o texto copiado é a marcação HTML da postagem ou o Markdown bruto.

6 curtidas