Hola ![]()
Aquí tienes un ejemplo de cómo lo uso en mi componente de tema.
En mi caso, utilizo configuraciones para esto porque el componente cambia los iconos dinámicamente a través de CSS, lo que me permite apuntar directamente a esas configuraciones. (Añadir una clase a los enlaces no siempre funciona muy bien en algunos casos).
Sin embargo, para tu componente, puedes simplemente excluir el nombre de host actual dinámicamente algo como esto, creo:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
api.decorateCookedElement(
(element) => {
const currentHost = window.location.hostname;
const selector = `a[href*='//']:not([href^='/']):not([href*='${currentHost}'])`;
const links = element.querySelectorAll(selector);
links.forEach((link) => {
console.log("External link:", link.href);
});
},
{ id: "external-link", onlyStream: true }
);
});