Várias configurações não correspondem à documentação e bugs na interface

Estou apenas começando com o Discourse, então talvez eu esteja perdendo algo óbvio, embora não pense assim. Estou usando a instância hospedada para projetos de código aberto, então não sei se tenho opções limitadas ou o que está acontecendo.

Configurações ausentes

Bugs na interface do usuário

  • O menu Plugins não aparece, exceto no modo de navegação anônima do Chrome. O Firefox (incluindo o modo anônimo) não aparece, assim.


    Modo anônimo do Chrome abaixo

    (Resolvido… AdBlocker)

  • O botão “Discord” da integração de chat do Discord não tem ação e tem uma barra de rolagem estranha abaixo. Nenhuma ação realizada ou erros no modo de desenvolvedor ao clicar no botão.

  • Ao criar uma categoria, o botão “Adicionar grupo de tags obrigatório” falha “até depois que a categoria for salva”

1 curtida

Remova seu adblock :rofl:

A coisa dos webhooks está na interface do Discord, não no Discourse. Talvez eles tenham mudado como funciona?

Essas configurações estão ocultas em alguns dos nossos níveis de hospedagem.

Remova seu adblock

Parece que isso ajudou com o menu de plugins. Obrigado!

A coisa dos webhooks está na interface do Discord, não no Discourse. Talvez eles tenham mudado a forma como funciona?

Eu sei como obter o webhook do Discord (não mudou)… mas preciso adicionar o endereço do webhook em algum lugar no Discourse para que ele possa enviar para o Discord.

Essas configurações estão ocultas em alguns dos nossos níveis de hospedagem.

É decepcionante. Gostaria de adicionar um WidgetBot crate (integração do Discord) à página… é uma solução muito melhor do que (Deprecated) Display a "Discord Widget" in a dropdown button

<script src="https://cdn.jsdelivr.net/npm/@widgetbot/crate@3" async defer>
  new Crate({
    server: '299881420891881473',
    channel: '355719584830980096',
  })
</script>

Um trecho de código bem simples. Adicionar o JavaScript de origem manualmente não funciona.

Imagino que não haja outra maneira de habilitar essas opções?

Talvez pudesse haver um processo de solicitação para verificar se a origem é segura e ela poderia ser adicionada a instâncias hospedadas? Ou apenas permitir, já que o JavaScript é executado no cliente e não no host de qualquer maneira?

1 curtida

O caminho correto a seguir é criar um Theme component que faça o que você deseja. Um componente assim pode enviar o JS de terceiros como um ativo de primeira parte, o que é mais seguro e compatível com CSP.

Um exemplo recente que fiz é GitHub - discourse/discourse-orgchart, que envia 3 bibliotecas JS diferentes em seus assets e funciona perfeitamente sob CSP.

2 curtidas

Ok, isso me aponta na direção certa. Eu estava confuso sobre estendê-lo através do settings.yml, mas está começando a fazer sentido. Este parece ser um exemplo relevante: discourse-mermaid-theme-component/settings.yml at fa43854e66becf43626063e33dde29f636933d1f · discourse/discourse-mermaid-theme-component · GitHub

Aliás, aprecio suas respostas!

Se você quiser, uma maneira super fácil via UI é apenas colar o conteúdo de https://cdn.jsdelivr.net/npm/@widgetbot/crate@3 em uma tag de script como:

<script>
// cole todo o conteúdo de https://cdn.jsdelivr.net/npm/@widgetbot/crate@3 aqui
</script>
<script>
  new Crate({
    server: '299881420891881473',
    channel: '355719584830980096',
  })
</script>

Infelizmente, isso não funcionou.

Também não está funcionando estendendo-o através de um tema. :confused:

Então, agora que meu menu de plugins está funcionando… parece que o Discourse Voting não está incluído. Isso é intencional? Eu imaginava que todos os plugins oficiais viriam por padrão.

Nem todos os plugins oficiais estão incluídos em todos os planos de hospedagem

3 curtidas