Debo estar haciendo algo muy estúpido, pero soy incapaz de verlo. Espero que publicarlo aquí me haga verlo para poder eliminarlo antes de que nadie más sepa lo estúpido que soy.
“HELLO WORLD” debería aparecer en la página de inicio. Veo “THIS IS THE HOMEPAGE” en la consola. Sé que se está ejecutando. Pero no está ahí.
Luego intenté añadir “Extra item” porque no tenía otras ideas. Tampoco aparece.
Tuve errores antes de renombrar el archivo a .gjs, así que eso es una prueba más de que está prestando atención al archivo y está haciendo que suceda algo.
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.8.0", (api) => {
// see if we're on the home page
api.onPageChange(() => {
const router = api.container.lookup("service:router");
const url = router?.currentURL;
const isHomePage = url === "/";
api.renderInOutlet("top-notices", `<template>Extra item</template>`);
if (isHomePage) {
console.log("THIS IS THE HOMEPAGE");
api.renderInOutlet("after-header", `<template>HELLO WORLD</template>`);
}
});
});
¡Oh, nena! ¡Realmente sabía lo que era un servicio! ¡Realmente sabía lo que era un getter! Ahora mi texto se está renderizando en la página de inicio y no en otra página (¡y presumiblemente en todas las demás!).