La descrizione del tag rimuove target="_blank"

Su alcune descrizioni dei miei tag voglio aggiungere un link come questo:

<a href="https://store.sgiant.me" target="_blank">Clicca qui</a> per visitare lo store ufficiale di Sir Giant.

Quando lo salvo per la prima volta, funziona e si apre in una nuova finestra.
Quando aggiorno la pagina, non funziona più e se controllo il codice, diventa:

<a href="https://store.sgiant.me">Clicca qui</a> per visitare lo store ufficiale di Sir Giant.

Ho già impostato l’opzione per aprire i link esterni in una nuova scheda su Sì, ma questo sembra non influire su questo particolare caso in cui sto aggiungendo codice HTML.

ChatGPT ha suggerito la creazione di un componente con la scheda JS contenente:

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 immediatamente
  processTagLinks();

  // Osserva le modifiche al DOM
  const observer = new MutationObserver(() => {
    processTagLinks();
  });

  observer.observe(document.body, {
    childList: true,
    subtree: true
  });

  // Esegui anche al cambio pagina
  api.onPageChange(() => {
    setTimeout(processTagLinks, 100);
  });
});

Ma non sono uno sviluppatore e quindi non so se sia una buona soluzione o meno.

Forse vuoi solo regolare Apri i link esterni predefiniti in una nuova scheda

Ma è proprio questo che intendo con Ho già impostato l'opzione per aprire i link esterni in una nuova scheda su Sì

image

Questo non influisce sull’HTML grezzo che sto usando nella descrizione. Ecco perché ho dovuto trovare un’alternativa.

1 Mi Piace