Descrição da tag está removendo target="_blank"

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?

Talvez você queira apenas ajustar Links externos padrão em nova aba

Mas é isso que quero dizer com Eu já tenho essa opção para abrir links externos em uma nova aba definida como Sim

image

Isso não afeta o HTML bruto que estou usando na descrição. É por isso que tive que encontrar uma alternativa.

1 curtida