Installer l'application console Discourse Theme CLI pour vous aider à créer des thèmes

Le discourse Discourse Theme CLI est un gem ruby qui vous permet d’utiliser votre éditeur de choix lors du développement de thèmes ou de composants de thème Discourse. Lorsque vous enregistrez des fichiers, le CLI mettra à jour le thème ou le composant distant et les changements apparaîtront en direct !

Installation

Pour l’essayer, assurez-vous d’avoir Ruby 2.5 ou une version ultérieure installée.

Si vous êtes sous Windows, vous avez 2 options :

Option 1 : Sous-système Windows pour Linux.

Windows 10 a accès à un environnement Linux complet, vous pouvez l’utiliser pour installer ruby simplement avec sudo apt-get install ruby, cela vous donnera Ruby 2.3.

Option 2 : Anciennes versions de Windows

Les anciennes versions de Windows n’ont pas accès à WSL, vous pouvez facilement installer Ruby avec Ruby Installer, choisissez la version recommandée et les paramètres par défaut pour l’installation.

Mac OS version 10.13.3 est livré avec Ruby 2.3 par défaut, rien de spécial n’est nécessaire. Si vous utilisez une version antérieure de Mac OS, envisagez d’utiliser rvm, rbenv ou homebrew pour installer une version récente de ruby.


Une fois que Ruby 2.2 ou une version ultérieure est en cours d’exécution, ouvrez un terminal ou une invite de commande et exécutez :

gem install discourse_theme

Une fois installé, pour en savoir plus :

discourse_theme

Mise à jour

gem update discourse_theme

Fonctionnalités

Le CLI fournit 3 fonctions principales :

discourse_theme new

Vous pouvez l’utiliser pour créer rapidement un nouveau thème avec discourse_theme new NOM_DE_VOTRE_DOSSIER

discourse_theme watch

Vous pouvez l’utiliser pour surveiller un thème et synchroniser avec un site discourse (avec rafraîchissement en direct) en utilisant discourse_theme watch NOM_DE_VOTRE_DOSSIER

Ce qui signifie que vous pouvez utiliser votre propre éditeur pour modifier votre thème et le site se mettra à jour :unicorn: magiquement avec les changements !

discourse_theme download

Vous pouvez télécharger un thème existant depuis Discourse en utilisant discourse_theme download NOM_DE_VOTRE_DOSSIER. On vous donnera ensuite la possibilité de commencer à « surveiller » immédiatement !

Informations d’identification

Vous devrez générer une clé API. Allez dans la zone d’administration et générez une clé là-bas.

  • :exclamation: Sélectionnez un niveau d’utilisateur de Utilisateur unique lors de la génération de la clé, et non Tous les utilisateurs.
  • :exclamation: Assurez-vous de cocher Clé globale sinon vous recevrez des erreurs 403 forbidden.

Les informations d’identification sont (facultativement) stockées à ~/.discourse_theme. Les clés API sont stockées par site, et l’URL/theme_id pour chaque répertoire est également suivi. Si vous avez besoin de modifier vos paramètres, ajoutez simplement --reset à n’importe quelle commande et toutes les valeurs vous seront à nouveau demandées.

Témoignages

“Cet outil est vraiment un GEM !” @awole20
“C’est très très bien.” @awesomerobot
“Ça marche :slight_smile: Et c’est plutôt sacrément cool. Bien !” @angus
“OMG. C’est incroyable.” @pfaffman


Ce document est contrôlé par version - suggérez des modifications sur github.

79 « J'aime »
Theme Creator, create and show themes without installing Discourse!
CSS Theme Contest (with Prizes!)
Customizing handlebars templates
Setting up a solid workflow for custom theme development
Theme Developer Quick Reference Guide
Structure of themes and theme components
Automating Discourse Plugin Setup with `create-discourse-plugin` gem
When exporting a theme, I get a broken archive
Install Discourse for development using Docker
Developing Plugins Faster by separating the frontend into a theme component
Feedback on "on-discourse" javascript for setting up custom JS for each page?
Add settings to your Discourse theme
Get started with Theme Creator and the Theme CLI
Designer's Guide to getting started with themes in Discourse
Split up theme Javascript into multiple files
Updated Custom Header Icon: Post Data via URL
Theme Developer Tutorial: 2. Creating a remote theme
Developing Discourse Themes & Theme Components
Hiding GUI elements for new users (less overwhelming)
Add custom content that only appears on your homepage
Custom CSS/HTML
[Zotero extension +] Firefox v116 on macOS broken Discourse?
Remote themes not in database
How "difficult" is modifying/extending Discourse for a backend dev
Exporting a Theme from Staging and Importing it to the Production portal
Using Plugin Outlet Connectors from a Theme or Plugin
Downloaded component installs fine, but does not once changed/re-zipped
What are the benefits of a dev environment?
3.2.0.beta2-dev (7019dbcfe1) does not load CSS from common.scss anymore
End-to-end system testing for themes and theme components
Different CSS changes for different color schemes
Need help integrating code wrote on Edittext to the Discourse
Need help integrating code wrote on Edittext to the Discourse
How to add a custom button in user profile card?
How to easily edit my site remotely?
When to use a plugin vs theme component?
Discourse core is switching to pnpm for JS package management
Using the new custom-homepage feature
Focus the editor when title is pre-filled
Cannot put the template in the desired outlet
Is this the correct way to create a theme component?
Split up theme Javascript into multiple files
Canvas Theme Template
If you want to edit this theme, you must submit a change on its repository
Import site theme via console
How are theme setting fields created?
Customisability in discourse?
Edit CSS/HTML editor cursor offset makes it unusable due to CSS font override
Discourse Theme CLI is the bomb
Discourse 2.0.0.beta5 Release Notes
How difficult would it be to make the Discourse UI more like Flarum?
Discourse-webpack: A boilerplate for developing JS-heavy Discourse components
Import Error: about.json does not exist, or is invalid
How to Add Unique HTML Content Below Topic Body in discourse forum for Specific Topics
Reuse Discourse Hamburger Functionality
Themes - Add a description field
Create and share a font theme component
Customisability in discourse?
How to create a theme (if I am a pure end user)
Linting configuration
Linting configuration
Is it possible to use a local plugin directory with a docker install?
How to overrule a color variable for one theme only?
Can't customize text on custom button in template override using UI
Is it possible to use theme component from local folder (as plugin) - for local development?
Restrict editing of remote themes

Les Uploads via Admin >> Personnaliser >> Thèmes disparaissent après l’enregistrement d’un thème surveillé.

Comment inclure des ressources d’image dans le thème afin qu’elles ne soient pas effacées après l’enregistrement ?

2 « J'aime »

Salut, bienvenue !

Vous devez inclure les ressources directement dans votre composant de thème.
À la racine, vous créez un répertoire assets.
Ensuite, vous les déclarez dans about.json

"assets": {
  "<votre_identifiant>": "assets/<votre_nom_de_fichier_ressource>",
}

Vous pouvez voir un exemple ici GitHub - MeghnaAJ/discourse-christmas-decorations.

3 « J'aime »

Une petite note pour les développeurs qui utilisent cet outil pour générer des composants de thème :
Vous êtes encouragés à le mettre à jour ! :+1:

Un PR récent a fait du discourse-theme-skeleton le dépôt par défaut. Il vous donnera les derniers fichiers de configuration !

9 « J'aime »

Merci !

Ce serait bien d’ajouter une section Mise à jour au sujet…

S’agit-il d’une mise à jour --reset ou d’une mise à jour rubygem ?

4 « J'aime »

Bonne idée ! J’ai ajouté une section « mise à niveau » à l’OP

gem update discourse_theme
5 « J'aime »

Pour installer le gem sur WSL, j’ai dû exécuter à la fois sudo apt-get install ruby et sudo apt-get install ruby-dev.
Peut-être que cela peut être ajouté aux instructions d’installation.

Si vous n’installez pas ruby-dev, obtenez-vous une erreur ? Il ne devrait pas être nécessaire d’installer ruby-dev car ruby lui-même est suffisant.

4 « J'aime »

Je suis presque sûr d’avoir eu une erreur qui m’a dit d’installer ruby-dev, sinon je n’aurais pas su que le paquet existait.
Mais je n’arrive pas à le reproduire en essayant de le réinstaller. Peut-être que j’ai fait quelque chose d’étrange la première fois.

2 « J'aime »

C’est en effet étrange. N’hésitez pas à me faire savoir si vous parvenez à reproduire le problème.

2 « J'aime »

J’ai mis à jour mon serveur hier vers la version 3.5.0.beta9-dev et je n’obtiens plus de rechargements en direct avec le gem de thème discourse depuis. Le gem est en version 2.1.6.

Je ne vois aucune erreur, donc je voulais d’abord demander si quelqu’un d’autre a le même problème ?

2 « J'aime »

Les rechargements en direct des feuilles de style ont été désactivés pour les instances de production, car ils causaient des problèmes lors de la mise à jour des thèmes et/ou du cœur de Discourse.

Fondamentalement : les modifications des feuilles de style sont souvent liées à des modifications du JS/HTML, de sorte que le chargement en direct uniquement pour les feuilles de style est risqué. Les utilisateurs finissent par exécuter de « nouvelles » feuilles de style sur du HTML « ancien », ce qui peut entraîner des expériences très étranges.

Le chargement en direct est toujours activé pour les instances Discourse en mode développement. Idéalement, vous devriez utiliser cela pour le développement plutôt qu’un site de production. Outre le rechargement des feuilles de style, le mode développement d’Ember vous donne des messages d’erreur beaucoup plus conviviaux que le mode production d’Ember.

3 « J'aime »

C’est un grand changement. Je suis surpris qu’il n’y ait pas eu d’annonce. Je faisais principalement du développement de thèmes uniquement sur les sites de production.

Un réglage de site pour retrouver l’ancien comportement serait bien.

6 « J'aime »

D’accord, cela m’a surpris, et je n’ai pas pu trouver ce fil de discussion actuel malgré mes recherches, ou peut-être ai-je vu la date de l’OP plus ancienne et l’ai ignorée.

1 « J'aime »

Un message a été divisé dans un nouveau sujet : Comment puis-je récupérer un thème précédent