O problema: Quero que os usuários possam postar como personagens de RPG. Gostaria que eles pudessem inserir um modelo em uma postagem - algo como o abaixo:
[wrap="characterpost"]
[characterav]https://image.link.example.png[/characterav]
[charactername][[Nome do Personagem]][/charactername]
[/wrap]
E então usar um script para que a imagem substitua o avatar original e o link do tópico charactername vá para a frente do nome de usuário. Por exemplo, se a postagem normalmente diz “Nome de Usuário”, quero substituí-la por “Nome do Personagem interpretado por Nome de Usuário”.
(“Nome do Personagem” incluiria um link para um tópico com a ficha do personagem, espero que usando apenas o componente temático wikilinks para facilitar o uso.)
Colei um esqueleto de postagem em um Codepen e consegui escrever um javascript que faria exatamente isso. No entanto, ao adicioná-lo a um decorador de postagem e fazê-lo funcionar ao vivo com a API, encontrei um obstáculo.
Aqui está o que tenho no common>header no momento:
<script type="text/discourse-plugin" version="0.8">
api.decorateCookedElement(
element => {
// encontra a tag characterpost dentro da postagem
const characterPost = element.querySelector('[data-wrap="characterpost"]');
// encontra o pai da tag characterpost, que contém o avatar e o nome de usuário
const characterPostParent = characterPost.closest('article');
// deixa vermelho para ver se está funcionando
characterPostParent.style.backgroundColor = "red";
},
{
id: 'render-character-post', onlyStream: true, afterAdopt: true
}
);
</script>
Isso tem gerado um erro. É possível acessar o wrapper “article” para postagens usando decorateCookedElement para que eu possa chegar ao nome de usuário e avatar? Se não, como posso prosseguir?
Isso é muito legal, obrigado por compartilhar! Eu estava procurando algo semelhante também. Você sabe se isso afeta a forma como as postagens aparecem nos resultados de pesquisa também?
Boa pergunta! O nome da tag e seu conteúdo fazem parte do conteúdo da postagem; isso pode afetar o resultado da pesquisa.
Tentarei algo mais limpo, como usar um modal e salvar em campos personalizados em vez disso.
EDIT: Acho que entendi errado se você estiver falando sobre alterações que aparecem no resultado da pesquisa, a resposta é não (nem o HTML aparecerá).
Pensar que pode ser uma ideia propor, talvez na wiki da comunidade, um guia de template de fórum. Frequentemente, as pessoas procuram ideias sobre diferentes tipos de configurações de fórum.
Neste caso, pode ser um pouco específico. Mas um template de RPG de mesa que inclua este recurso que você criou.