Olá ![]()
Aqui está um exemplo de como eu uso isso no meu componente de tema.
No meu caso, eu uso configurações para isso porque o componente altera ícones dinamicamente via CSS, permitindo-me direcionar essas configurações diretamente. (Adicionar classe aos links nem sempre funciona muito bem em alguns casos.)
No entanto, para o seu componente, você pode simplesmente excluir o nome de host atual dinamicamente, algo como isto, eu acho:
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 }
);
});