Komplexe Themen-JavaScript-Dateien können in mehrere Dateien aufgeteilt werden, um alles schön organisiert zu halten.
Um diese Funktionalität zu nutzen, fügen Sie einfach Dateien zum Ordner /javascripts in Ihrem Theme-Verzeichnis hinzu. Diese Dateien können nicht über die Discourse-UI bearbeitet werden. Sie müssen daher die Theme CLI verwenden oder das Theme über Git beziehen.
JavaScript-Dateien werden genau wie in Core/Plugins behandelt, daher sollten Sie dieselbe Datei-/Ordnerstruktur befolgen. Theme-Dateien werden nach Core/Plugins geladen. Wenn die Dateinamen übereinstimmen, hat die Theme-Version Vorrang.
Als Beispiel können Sie nun das unter Using Plugin Outlet Connectors from a Theme or Plugin beschriebene Vorgehen durch das Hinzufügen einer einzigen Datei zu Ihrem Theme erreichen:
/javascripts/my-theme/connectors/discovery-list-container-top/add-header-message.gjs
import Component from "@glimmer/component"; import { service } from
"@ember/service"; export default class HeaderMessage extends Component {
@service currentUser;
<template>
Welcome
{{this.currentUser.username}}
</template>
}
Um die JS-API zu verwenden, erstellen Sie einen Initialisierer:
/javascripts/discourse/api-initializers/init-theme.gjs
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
// Ihr Code hier
});
Wenn Sie eine völlig andere .js-Asset-Datei benötigen (z. B. für einen Web Worker), lesen Sie sich bitte diesen Thread durch.
Dieses Dokument wird versioniert – schlagen Sie Änderungen auf GitHub vor.