Installez l'application console CLI du thème Discourse pour vous aider à créer des thèmes

The discourse Discourse Theme CLI is a ruby gem that allows you to use your editor of choice when developing Discourse themes and theme components. As you save files the CLI will update the remote theme or component and changes to it will appear live!

Installing

To play with it, make sure you have Ruby 2.5 or up installed.

If you are on Windows, you have 2 options:

Option 1: Windows Subsystem for Linux.

Windows 10 has access to a full Linux environment, you can use it to install ruby simply with sudo apt-get install ruby, this will give you Ruby 2.3.

Options 2: Older Windows

Older versions of Windows have no access to WSL, you can easily install Ruby with Ruby Installer, go for the recommended version and default settings for the install.

Mac OS version 10.13.3 ship with Ruby 2.3 out of the box, nothing special is needed. If you are running an earlier version of Mac OS consider using rvm, rbenv or homebrew to install a recent ruby.


Once Ruby 2.2 or later is running, open a terminal or command shell and run:

gem install discourse_theme

Once installed, to learn more about it:

discourse_theme

Upgrading

gem update discourse_theme

Features

The CLI provides 3 main functions:

discourse_theme new

You can use it to quickly create a new theme with discourse_theme new YOUR_DIR_NAME

discourse_theme watch

You can use it to monitor a theme and synchronize with a discourse site (with live refresh) using discourse_theme watch YOUR_DIR_NAME

What this means is that you can use your own editor to edit you theme and site will magically :unicorn: update with the changes!

discourse_theme download

You can download an existing theme from Discourse using discourse_theme download YOUR_DIR_NAME. You will then be given the option to start “watching” straight away!

Credentials

You will need to generate an API Key. Go to the admin area and generate a key there.

  • :exclamation: Select a “User Level” of Single User when generating the key, not All Users.
  • :exclamation: Make sure to check Global Key or you will receive 403 forbidden errors.

Credentials are (optionally) stored at ~/.discourse_theme. API keys are stored per-site, and the URL/theme_id for each directory is also tracked. If you ever need to change your settings, just add --reset to any command and you will be prompted for all values again.

Testimonials

“This tool is truly a GEM!” @awole20
“This is very very good.” @awesomerobot
“It’s working :slight_smile: And it’s pretty dosh garn cool. Nice!” @angus
“OMG. It’s unbelievable.” @pfaffman


This document is version controlled - suggest changes on github.

79 « J'aime »

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 ?

1 « 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.

4 « 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.