Eu tenho algo assim na aba JS do meu tema:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("0.11.1", (api) => {
api.renderInOutlet("above-main-container",
<template>
<div>
conteúdo html
</div>
</template>
);
});
Copiei e colei isso, funciona (apenas um exemplo)
Como faço para que isso seja renderizado apenas na página inicial ou apenas na página de categorias?
Desculpe se esta não for uma boa pergunta
É uma boa pergunta, não se preocupe! Isso vai funcionar:
import Component from "@glimmer/component";
import { service } from "@ember/service";
import { apiInitializer } from "discourse/lib/api";
import { defaultHomepage } from "discourse/lib/utilities";
class HomepageOnly extends Component {
@service router;
get shouldShow() {
return this.router.currentRouteName === `discovery.${defaultHomepage()}`;
}
<template>
{{#if this.shouldShow}}
<div>
coisas em html
</div>
{{/if}}
</template>
}
export default apiInitializer((api) => {
api.renderInOutlet("above-main-container", HomepageOnly);
});
Isso cria um novo componente, que usa o serviço router e a utilidade defaultHomepage para verificar se você está na página inicial. Em seguida, o componente é renderizado no outlet.
Tem um pouco mais aqui: Add custom content that only appears on your homepage
Obrigado, Kris, funcionou perfeitamente. Obrigado também pelo link, estou tentando aprender.