Les thèmes et les composants de thème vous permettent de gérer les ressources téléversées, telles que les images et les polices. Vous pouvez contrôler les ressources acceptées par votre thème à l’aide du paramètre du site : theme authorized extensions
Inclure des ressources dans les thèmes et les composants
Pour les thèmes distants
Les thèmes distants incluent :
- Les thèmes et composants installés à partir de la liste Populaires de thèmes
- Les thèmes et composants installés en utilisant la méthode Depos un dépôt git
Pour téléverser des ressources vers un thème distant ou un composant de thème, consultez Create and share a font theme component pour un exemple détaillé.
Téléversement de ressources vers les thèmes et composants locaux
Les thèmes locaux incluent :
- Les thèmes par défaut Clair et Sombre qui accompagnent chaque instance Discourse
- Les thèmes et composants créés en utilisant la méthode d’installation + Créer nouveau
- Les thèmes et composants téléversés depuis votre ordinateur local en utilisant la méthode d’installation Depuis votre appareil.
Pour téléverser des ressources vers un thème local ou un composant de thème, accédez à votre thème ou composant et sélectionnez + Ajouter dans la section Téléversements :
Dans la fenêtre modale d’ajout de téléversement, choisissez un fichier et entrez un nom de variable SCSS à utiliser avec vos personnalisations CSS, javascript et/ou handlebars
Une fois téléversée, la ressource apparaîtra dans la liste des Téléversements :
Note importante : N’ajoutez pas de téléversements aux thèmes et composants via l’interface d’administration si le composant a été installé à distance depuis un dépôt git. Les mises à jour du composant effaceront tout téléversement qui n’était pas inclus dans le dépôt git.
Comment utiliser les ressources
SCSS
@font-face {
font-family: Amazing;
src: url($Comic-Sans) format("woff2");
}
body {
font-family: Amazing;
font-size: 15px;
}
.d-header {
background-image: url($texture);
}
:informationsource: _Lors de l’utilisation de polices
ttfouotf, assurez-vous d’utiliser le formatopentype.
Javascript
// {theme}/javascripts/discourse/api-initializers/init-theme.gjs
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
console.log(settings.theme_uploads.balloons);
});
HTML
Vous ne pouvez pas ajouter directement une ressource de thème à un HTML brut (comme dans les sections d’en-tête ou après l’en-tête du panneau d’administration de personnalisation). Vous devez utiliser un modèle handlebars ou l’API de plugin (plus d’informations à ce sujet sur Developing Discourse Themes & Theme Components).
Un contournement consiste à charger votre ressource en tant qu’image de fond en utilisant SCSS (comme dans l’exemple ci-dessus). Ainsi, dans la section d’en-tête de votre thème, vous pourriez ajouter :
<div class="my-custom-div">
<a href="/"></a>
</div>
et ensuite dans votre CSS :
.my-custom-div a {
height: 50px;
width: 100px;
background-image: url($asset-name);
}
Accéder aux téléversements de thème en tant que paramètres
Vous pouvez également traiter theme_uploads comme des paramètres dans JavaScript (commit associé).
Cela permet aux thèmes et aux composants d’accéder aux ressources du thème.
Dans le js du thème, vous pouvez maintenant obtenir l’URL d’une ressource avec :
settings.theme_uploads.name
Informations supplémentaires
Ce document est sous contrôle de version - suggérez des modifications sur github.



