Los temas complejos de JavaScript se pueden dividir en varios archivos para mantener una buena organización.
Para utilizar esta funcionalidad, simplemente añada archivos a la carpeta /javascripts en el directorio de su tema. Estos archivos no se pueden editar desde la Interfaz de Usuario de Discourse, por lo que debe utilizar la Theme CLI o cargar el tema desde git.
Los archivos de JavaScript se tratan exactamente igual que en el núcleo/plugins, por lo que debe seguir la misma estructura de archivos/carpetas. Los archivos del tema se cargan después del núcleo/plugins, por lo que si los nombres de los archivos coinciden, la versión del tema tendrá prioridad.
Como ejemplo, ahora puede lograr lo siguiente: Using Plugin Outlet Connectors from a Theme or Plugin añadiendo un único archivo a su 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>
}
Para usar la API de JS, cree un inicializador:
/javascripts/discourse/api-initializers/init-theme.gjs
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
// Your code here
});
Si necesita un activo .js totalmente diferente (por ejemplo, para un web worker), consulte este tema.
Este documento está controlado por versiones: sugiera cambios en github.