Funktion bei Seitenwechsel aufrufen

Ich möchte bei jeder Seitenänderung des Benutzers eine JavaScript-Funktion aufrufen.
Ich verstehe JS- und Ruby-on-Rails-Code, bin mir aber nicht sicher, was in Discourse die beste Praxis dafür ist. Ich wäre für jeden Tipp dankbar.

Ps. Ich verwende eine Dockerisierte Version von Discourse.

Je nachdem, was Sie tun möchten, kann dies stark variieren. Um jedoch eine Funktion aufzurufen oder bei jeder Seitenänderung des Benutzers etwas auszuführen, können Sie die Plugin-API verwenden.

Hier können Sie einen Entwicklerleitfaden zur Verwendung von Discourse-Themen/Komponenten (benutzerdefiniertes JS usw.) lesen.

Hier finden Sie Informationen zu withPluginApi.

Dies ist ein einfaches Beispiel, bei dem ich die aktuelle URL sowie den Seitentitel protokolliere.

Ich mache dies in der Datei common/head_tag.html. Diese kann unter /admin/customize/themes/9/common/head_tag/edit bearbeitet werden.

<script type="text/discourse-plugin" version="0.8">
    api.onPageChange((url, title) => {
        console.log(url, title);
    });
</script>

Danke @jordan.vidrine für die Antwort. Ich werde mir diese Ressourcen ansehen. Eine weitere Frage, vielleicht eher im Zusammenhang mit der Docker-Version: Gibt es bewährte Praktiken zum Bearbeiten von Dateien innerhalb des Containers? Kann ich einfach in den Container “eintauchen”, die Dateien ändern und ihn neu starten?

Für einige Instanzen sollte das meiner Meinung nach funktionieren. (Ich habe nicht viel Erfahrung mit Docker)

Sie können auch bestimmte css- und html-Dateien sowie <script>-Tags über das Discourse-Admin-Panel bearbeiten, wenn Sie Ihre Site unter /admin/customize/themes/9/common/head_tag/edit besuchen.