Wie kann ich die Liste der Tags des aktuell geöffneten Themas abrufen?

Hallo!

Ich versuche, eine Theme-Komponente zu erstellen, die einen benutzerdefinierten Button zu markierten Themen hinzufügt. Zum Beispiel: Themen mit dem Tag event-tag erhalten neben der Kategorie einen Button mit der Bezeichnung Event, der zur Events-Seite verlinkt.

Ich habe herausgefunden, wo ich den Button hinzufügen möchte (über den Plugin-Outlet topic-category) anhand dieser Anleitung: Developing Discourse Themes & Theme Components

und ich habe derzeit Folgendes:

<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">Link</a>
    </div>
  </script>

Meine Frage ist also, wie kann ich die Liste der Tags eines Themas überprüfen, um zu sehen, ob das obige Skript einen Button hinzufügen soll oder nicht?

Okay, also ein kleiner Fortschritt:

Ich habe festgestellt, dass, wenn ich modifyClass so verwende:

<script type="text/discourse-plugin" version="0.8">
    api.modifyClass("component:topic-category", {
      didInsertElement: function() {
        this._super();
        console.log("Willkommen auf der Themen-Seite!")
      }
    });
    </script>

Ich kann zur Themen-Seite gelangen und erhalte eine Antwort mit „Willkommen“, aber ich bin mir immer noch nicht sicher, wie ich die Tags der aktuellen Seite abrufen kann, um zu sehen, ob ich den Button füllen soll oder nicht.

Ah, ich habe die Lösung gefunden.

Ich habe dies immer wieder gelesen: Developing Discourse Themes & Theme Components

und festgestellt, dass, wenn ich nur console.log(this) eingebe, alle Daten auf der Seite ausgegeben werden, einschließlich der Tags. Ich denke, ich kann von hier aus weitermachen, indem ich die Tag-Daten auf der Seite abrufe und prüfe, ob sie in den Einstellungen vorhanden sind oder nicht. Sobald ich dies verfeinert habe und denke, dass es für die Öffentlichkeit bereit ist, werde ich es in der Kategorie Theme-Komponenten veröffentlichen. Ich dachte nur, ich teile meine Erkenntnisse, falls jemand anderes lernt, wie man Theme-Komponenten erstellt!

Nur zur Information, der Code zum Abrufen der Tag-Liste in diesem Kontext wäre:

<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>

Gibt zurück:

:information_source: (pluginId ist erforderlich, um eine Warnung zu vermeiden)