Até agora, estou ciente de duas maneiras de fazer isso:
<span>some text</span>
CSS:
[data-theme-custom] {
color: pink;
}
[wrap="indent"]some text[/wrap]
Isso criará um div ou um span (se houver outro conteúdo na mesma linha), contendo os seguintes atributos: class="d-wrap" e data-wrap="custom"
CSS
[data-wrap="custom"] {
color: pink;
}
Existem outras maneiras de personalizar algum conteúdo escolhido em uma postagem que eu não conheça?
Além disso, existe uma maneira de adicionar uma classe personalizada a um elemento? Não encontrei nada na pesquisa. Acho que isso não é possível?
Posso dar um “up” descaradamente?\n\nNão consegui encontrar nenhum tópico listando todas as maneiras de personalizar o conteúdo HTML de uma postagem usando o editor inerente do Discourse.\n\nSe houver outras além das duas que mencionei - que são muito semelhantes -, talvez um howto pudesse ser útil?
Eu também gostaria de saber quais tags HTML funcionam no composer. Acho que já vi isso em algum lugar antes, mas não consegui encontrar hoje mais cedo.
Por exemplo, eu estava tentando adicionar um <button class="success">Click me</button> ao composer, ele apareceu na prévia, mas falhou quando postei. Acho que algumas tags HTML funcionam, só não tenho certeza quais.
É possível usar algumas classes HTML no Discourse, no entanto, a maior parte do HTML em uma postagem é higienizada por motivos de segurança, e apenas HTML estritamente permitido é permitido em markdown. Para adicionar classes à lista de permissões, você deve usar um plugin, a higienização ocorre tanto no lado do servidor quanto no lado do cliente. Confira Permitindo tags/atributos HTML para obter detalhes sobre onde adicionar os atributos permitidos, e acredito que seria semelhante a algo como isto: Discourse HTML Whitelist. e, como @RGJ mencionou, observe que a função whiteList() está obsoleta e hoje é chamada de allowList().
Em relação a outras maneiras de personalizar o conteúdo, as postagens são widgets, e os temas do Discourse têm a capacidade de decorar widgets, então você poderia aproveitar isso.
Existem apenas algumas linhas de código no meu plugin e eu realmente não sei o que ele está fazendo e se tudo é necessário, mas pelo menos posso adicionar spans com uma classe nolinkify.
No meu caso, o objetivo era facilmente “deslinkificar” palavras em posts com Auto-Linkify Words (ele só aceita tags e classes para evitar linkificação), e especialmente palavras em tags de título HTML ao usar DiscoTOC - automatic table of contents
Também tentei uma solução baseada em sintaxe bbcode como esta: