La descripción de la etiqueta está eliminando target="_blank"

En algunas descripciones de mis etiquetas quiero añadir un enlace como este:

<a href="https://store.sgiant.me" target="_blank">Haz clic aquí</a> para visitar la tienda oficial de Sir Giant.

Cuando lo guardo por primera vez, funciona y se abre en una nueva ventana.
Cuando actualizo la página, ya no funciona y, si reviso el código, se convierte en:

<a href="https://store.sgiant.me">Haz clic aquí</a> para visitar la tienda oficial de Sir Giant.

Ya tengo activada la opción de abrir enlaces externos en una nueva pestaña, pero parece que esto no afecta a este caso particular en el que estoy añadiendo código HTML.

ChatGPT sugirió la creación de un componente con la pestaña JS que contiene:

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');
      }
    });
  }

  // Procesa inmediatamente
  processTagLinks();

  // Observa los cambios en el DOM
  const observer = new MutationObserver(() => {
    processTagLinks();
  });

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

  // También se ejecuta en cambios de página
  api.onPageChange(() => {
    setTimeout(processTagLinks, 100);
  });
});

Pero no soy desarrollador y no sé si es una buena solución o no.

Quizás solo quieras ajustar Enlaces externos predeterminados en una nueva pestaña

Pero eso es a lo que me refiero con Ya tengo esa opción para abrir enlaces externos en una nueva pestaña configurada en Sí

image

Esto no afecta al HTML sin procesar que estoy usando en la descripción. Por eso tuve que encontrar una alternativa.

1 me gusta