Em algumas descrições das minhas tags, quero adicionar um link como este:
<a href="https://store.sgiant.me" target="_blank">Clique aqui</a> para visitar a loja oficial do Sir Giant.
Quando o salvo pela primeira vez, funciona e abre em uma nova janela.
Quando atualizo a página, não funciona mais e, quando verifico o código, ele se torna:
<a href="https://store.sgiant.me">Clique aqui</a> para visitar a loja oficial do Sir Giant.
Eu já tenho a opção de abrir links externos em uma nova aba definida como Sim, mas isso parece não afetar este caso específico em que estou adicionando código HTML.
O ChatGPT sugeriu a criação de um componente com a aba JS contendo:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
function processTagLinks() {
document.querySelectorAll('.tag-title-contents a[href^="http"]').forEach(link => {
if (!link.href.includes(window.location.hostname) && !link.hasAttribute('data-processed')) {
link.setAttribute('target', '_blank');
link.setAttribute('rel', 'noopener noreferrer');
link.setAttribute('data-processed', 'true');
}
});
}
// Processa imediatamente
processTagLinks();
// Observa mudanças no DOM
const observer = new MutationObserver(() => {
processTagLinks();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// Também executa em mudanças de página
api.onPageChange(() => {
setTimeout(processTagLinks, 100);
});
});
Mas eu não sou um desenvolvedor e não sei se essa é uma boa solução ou não?
