I temi complessi di JavaScript possono essere suddivisi in più file, per mantenere le cose ben organizzate.
Per utilizzare questa funzionalità, è sufficiente aggiungere file alla cartella /javascripts nella directory del tema. Questi file non possono essere modificati dall’interfaccia utente di Discourse, quindi è necessario utilizzare la Theme CLI o caricare il tema da git.
I file Javascript sono trattati esattamente come quelli in core/plugins, quindi è necessario seguire la stessa struttura di file/cartelle. I file del tema vengono caricati dopo core/plugins, quindi se i nomi dei file corrispondono, prevarrà la versione del tema.
Come esempio, ora è possibile realizzare Using Plugin Outlet Connectors from a Theme or Plugin aggiungendo un singolo file al tema:
/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>
}
Per utilizzare l’API JS, creare un inizializzatore:
/javascripts/discourse/api-initializers/init-theme.gjs
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
// Il tuo codice qui
});
Se hai bisogno di un asset .js totalmente diverso (ad esempio per un web worker), consulta questo argomento.
Questo documento è controllato tramite versione - suggerisci modifiche su github.