Sur certaines descriptions de mes balises, je souhaite ajouter un lien comme ceci :
<a href="https://store.sgiant.me" target="_blank">Cliquez ici</a> pour visiter la boutique officielle de Sir Giant.
Lorsque je le sauvegarde pour la première fois, cela fonctionne et s’ouvre dans une nouvelle fenêtre.
Lorsque je rafraîchis la page, cela ne fonctionne plus et lorsque je vérifie le code, il devient :
<a href="https://store.sgiant.me">Cliquez ici</a> pour visiter la boutique officielle de Sir Giant.
J’ai déjà activé l’option permettant d’ouvrir les liens externes dans un nouvel onglet sur “Oui”, mais cela ne semble pas affecter ce cas particulier où j’ajoute du code HTML.
ChatGPT a suggéré la création d’un composant avec l’onglet JS contenant :
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');
}
});
}
// Process immediately
processTagLinks();
// Watch for DOM changes
const observer = new MutationObserver(() => {
processTagLinks();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// Also run on page changes
api.onPageChange(() => {
setTimeout(processTagLinks, 100);
});
});
Mais je ne suis pas développeur et je ne sais pas si c’est une bonne solution ou pas.
