External domain link blocklist

A very basic theme component (courtesy of :robot:) using a hardcoded domain list:

<script type="text/discourse-plugin" version="0.8.25">
  api.decorateCookedElement((element) => {

    const domainsToUnlink = ["example.com", "specificdomain.com"];

    const links = element.querySelectorAll("a");

    links.forEach((link) => {
      const url = new URL(link.href);
      if (domainsToUnlink.includes(url.hostname)) {
        const textNode = document.createTextNode(link.textContent);
        link.replaceWith(textNode);
      }
    });
  }, { id: "unlink-specific-domains" });
</script>

2 Likes