Les thèmes complexes de javascript peuvent être divisés en plusieurs fichiers, afin de maintenir une bonne organisation.
Pour utiliser cette fonctionnalité, ajoutez simplement des fichiers au dossier /javascripts dans votre répertoire de thème. Ces fichiers ne peuvent pas être modifiés depuis l’interface utilisateur de Discourse, vous devez donc utiliser le Theme CLI ou sourcer le thème depuis git.
Les fichiers Javascript sont traités exactement de la même manière qu’ils le sont dans le cœur/les plugins, vous devez donc suivre la même structure de fichiers/dossiers. Les fichiers de thème sont chargés après le cœur/les plugins, donc si les noms de fichiers correspondent, la version du thème aura la priorité.
À titre d’exemple, vous pouvez désormais réaliser ce qui est décrit dans Using Plugin Outlet Connectors from a Theme or Plugin en ajoutant un seul fichier à votre thème :
/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>
}
Pour utiliser l’API JS, créez un initialisateur :
/javascripts/discourse/api-initializers/init-theme.gjs
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
// Votre code ici
});
Si vous avez besoin d’un actif .js totalement différent (par exemple pour un web worker), consultez ce sujet.
Ce document est contrôlé par version - suggérez des modifications sur github.