Как получить список тегов для текущей открытой темы?

Привет!

Я пытаюсь создать компонент темы, который добавляет пользовательскую кнопку к темам с определёнными тегами. Например: темы с тегом event-tag должны иметь кнопку рядом с категорией под названием «Event», которая ведёт на страницу событий.

Я выяснил, куда нужно добавить кнопку (через плагин-выход topic-category), следуя этому руководству: Developing Discourse Themes & Theme Components

И сейчас у меня есть следующее:

<script type="text/x-handlebars" data-template-name="/connectors/topic-category/foobar2">
    <div style="height: 25px; width: 25px;background: red">
      <a href="<events_URL>" target="_blank">Ссылка</a>
    </div>
  </script>

Итак, мой вопрос: как можно проверить список тегов темы, чтобы определить, нужно ли добавлять кнопку в скрипте выше?

Хорошо, есть небольшой прогресс:

Я обнаружил, что если использовать modifyClass следующим образом:

<script type="text/discourse-plugin" version="0.8">
    api.modifyClass("component:topic-category", {
      didInsertElement: function() {
        this._super();
        console.log("Добро пожаловать на страницу тем!")
      }
    });
    </script>

Я могу перейти на страницу темы и получить сообщение «Добро пожаловать», но я всё ещё не уверен, как получить текущие теги страницы, чтобы решить, нужно ли отображать кнопку или нет.

Ах, я нашёл решение.

Я снова и снова перечитывал это: Developing Discourse Themes & Theme Components

и обнаружил, что если просто выполнить console.log(this), то можно вывести все данные на странице, включая теги. Думаю, теперь я смогу двигаться дальше, извлекая данные о тегах со страницы и проверяя, есть ли они в настройках или нет. Как только я доведу это до ума и сочту готовым для публикации, размещу материал в категории компонентов тем. Просто хотел поделиться своими находками на случай, если кто-то ещё учится создавать компоненты тем!

Только для информации: код для получения списка тегов в данном контексте будет следующим:

<script type="text/discourse-plugin" version="1.4.0">
    api.modifyClass("component:topic-category", {
      pluginId: "returnTags",
      didInsertElement: function() {
        this._super();
        console.log(this.topic.tags)
      }
    });
</script>

Результат:

:information_source: (pluginId обязателен для избежания предупреждения)