Plugin ou componente de tema para modificação do editor de post?

Sinceramente, não faço ideia de onde postar isso, então fique à vontade para movê-lo se esta não for a categoria correta.

Recentemente, tenho me interessado em melhorar a experiência do usuário no Discourse ao adicionar tags ruby para texto no editor de posts. Para quem não sabe, essa tag pode ser usada ao escrever texto em japonês para indicar a “leitura” junto com o texto, como transformar 日本語 em ほん. No entanto, muitas pessoas, mesmo na nossa comunidade de aprendizado de japonês, não sabem que isso existe ou não se dão ao trabalho de usá-lo, pois pode ser trabalhoso escrevê-lo para frases ou sentenças longas. (O exemplo de uma palavra acima foi gerado a partir de <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby>.)

Por esse motivo, quero adicionar uma opção no menu do editor de posts que funcione de forma muito semelhante à opção de hiperlink. Ainda teria duas entradas, mas elas seriam usadas para separar o texto principal e a leitura, em vez do nome do link e da URL. Isso não interagiria com o servidor de forma alguma, pois apenas inseriria HTML puro (compatível com o Discourse) no editor. É provável que eu queira fazer uma pequena análise de texto para permitir que os usuários escrevam longas sequências de texto e adicionem as tags ruby de uma vez só, em vez de ter que fazê-lo caractere por caractere.

Então, a pergunta é: isso seria melhor feito como um componente de tema, um plugin ou algo completamente diferente? Além disso, haveria uma maneira de fazer isso sem me preocupar com o componente/plugin/o que quer que seja quebrando quando o núcleo do Discourse alterar algo no editor? Tenho quase certeza de que a instalação do Discourse que gostaria de ter isso adicionado é hospedada pelo próprio Discourse, então precisaria ser compatível com esse tipo de instalação. Ainda preciso verificar com os administradores desse site, mas não acho que terei problemas para conseguir que eles o instalem assim que estiver pronto (e, obviamente, vou conversar com eles primeiro após receber conselhos daqui).

Qualquer ajuda e orientação serão muito apreciadas!

O componente de tema é o caminho a seguir aqui! Não há necessidade de alterar o núcleo e já temos os hooks para adicionar isso.

Dê uma olhada em Composer Help Button (que atualmente é um plugin, mas pode ser facilmente convertido em um componente de tema).

Obrigado, vou dar uma olhada. Só para ter certeza, os componentes do tema podem ser adicionados mesmo em um site hospedado? Quero apenas garantir que os administradores do site que uso possam realmente instalar isso antes de gastar tempo com isso.

Sim, os componentes de tema podem ser instalados por administradores em um site hospedado. A documentação genérica sobre temas pode ser encontrada aqui.

Aqui está um exemplo de um componente de tema que adiciona um botão na barra de ferramentas ao editor:

https://github.com/discourse/DiscoTOC/blob/master/common/header.html#L373-L393