Ошибка при клике на логотип главной страницы

Настоятельно рекомендую не идти этим путём. Это всё равно что наклеить пластырь на побочный эффект, вместо того чтобы устранить коренную причину проблемы. Это создаст ещё больше трудностей (как в вашем последнем теме, возникшей из-за вышеуказанного кода).

Вы можете сделать свой JS чуть более совместимым с Discourse (лучший способ — всё же использовать plugin outlet, когда это возможно).
Вот пример. Он использует API при смене страницы, запускает код на конкретном маршруте и копирует HTML перед ссылкой (чтобы вы могли кликнуть по тегу):

JS
<script type="text/discourse-plugin" version="0.8">
  const { next } = require("@ember/runloop");
  
  function moveTags() {
    const mainLinks = document.querySelectorAll(".main-link:not(.tags-moved)");
    
    mainLinks.forEach((mainLink) => {
      const discourseTags = mainLink.querySelector(".discourse-tags");
      const titleElement = mainLink.querySelector("a[data-topic-id]");

      if (discourseTags && titleElement) {
        titleElement.insertAdjacentHTML("beforebegin", discourseTags.outerHTML);
        mainLink.classList.add('tags-moved');
      }
    });
  }

  api.registerModelTransformer("topic", async (topics) => {
    next(() => {
      moveTags();
    })
  });

  api.onPageChange((url) => {
    if (url.startsWith("/categories")) {
      moveTags();
    }
  });
</script>
CSS
.top-row, 
.link-top-line {
    .discourse-tag {
        font-size: var(--font-down-2) !important;
        padding: 2px 8px;
        margin: 2px 5px 2px -6px;
        border-radius: 10px;
        border: 1px solid #444460;
        background-color: #1f1f33;
    }
    
    .discourse-tag::after {
        content: '' !important;
        margin-left: 0 !important;
    }
}

.bottom-row, 
.link-bottom-line {
    .discourse-tags {
        display: none;
    }
}