Será mais fácil criar um componente personalizado que anexe isso às postagens corretas em vez de preencher um modelo.
Se você editar o código do seu tema em admin > temas e componentes… e adicionar isso à aba JS, isso deve lhe dar o que você procura com alguns ajustes:
import { apiInitializer } from "discourse/lib/api";
import Component from "@glimmer/component";
class TopicIdentifier extends Component {
get topicId() {
return this.args.post?.topic?.id;
}
get shouldShow() {
const firstPost = this.args.post?.post_number === 1; // primeira postagem no tópico
const desiredCategories = [45, 3]; // uma lista separada por vírgulas de IDs de categoria onde você deseja que isso apareça
const isInCategory = desiredCategories.includes(
this.args.post?.topic.category.id
);
return firstPost && isInCategory;
}
<template>
{{#if this.shouldShow}}
<!-- você pode editar o conteúdo abaixo, {{this.topicId}} é onde o ID do tópico será preenchido -->
Este tópico tem o ID
{{this.topicId}}
<!-- você pode editar o conteúdo acima -->
{{/if}}
</template>
}
export default apiInitializer((api) => {
api.decorateCookedElement((element, helper) => {
const wrapper = document.createElement("div");
wrapper.className = "custom-topic-id"
helper?.renderGlimmer(
wrapper,
<template><TopicIdentifier @post={{helper.model}} /></template>
);
element.appendChild(wrapper);
});
});
Você pode encontrar o ID da categoria a partir de sua URL para configurar desiredCategories, por exemplo, a categoria suporte aqui no Meta tem o ID 6
Você pode adicionar CSS para estilizar isso como desejar com a aba CSS… por exemplo
.custom-topic-id {
display: inline-block;
background: yellow;
}
