Installieren Sie die Discourse Theme CLI-Konsole App, um Ihnen beim Erstellen von Themes zu helfen

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 „Gefällt mir“

Uploads über Admin \u003e\u003e Anpassen \u003e\u003e Designs verschwinden, nachdem ein beobachtetes Design gespeichert wurde.

Wie können wir Bild-Assets in das Design aufnehmen, damit sie nach dem Speichern nicht verloren gehen?

2 „Gefällt mir“

Hallo, willkommen!

Sie müssen die Assets direkt in Ihre Theme-Komponente aufnehmen.
Im Stammverzeichnis erstellen Sie ein Verzeichnis assets.
Deklarieren Sie sie dann in about.json

"assets": {
  "<your_identifier>": "assets/<your_asset_filename>",
}

Ein Beispiel finden Sie hier: GitHub - MeghnaAJ/discourse-christmas-decorations.

3 „Gefällt mir“

Eine kurze Information für Entwickler, die dieses Tool zur Generierung von Theme-Komponenten verwenden:
Sie werden ermutigt, es zu aktualisieren! :+1:

Ein kürzlich erstellter PR hat das discourse-theme-skeleton Repository als Standardvorlage festgelegt. Es wird Ihnen die neuesten Konfigurationsdateien liefern!

9 „Gefällt mir“

Danke!

Es wäre großartig, einen Abschnitt „Update“ zum Thema hinzuzufügen…

Ist es ein --reset oder ein Rubygem-Update?

4 „Gefällt mir“

Gute Idee! Ich habe einen „Upgrading“-Abschnitt zum OP hinzugefügt

gem update discourse_theme
5 „Gefällt mir“

Um das Gem auf WSL zu installieren, musste ich sowohl sudo apt-get install ruby als auch sudo apt-get install ruby-dev ausführen.
Vielleicht kann das zu den Installationsanweisungen hinzugefügt werden.

Wenn Sie ruby-dev nicht installieren, erhalten Sie dann einen Fehler? Es sollte nicht notwendig sein, ruby-dev zu installieren, da ruby selbst ausreichend ist.

4 „Gefällt mir“

Ich bin ziemlich sicher, dass ich eine Fehlermeldung erhalten habe, in der mir geraten wurde, ruby-dev zu installieren, sonst hätte ich nicht gewusst, dass das Paket existiert.
Aber ich kann es durch erneute Installation nicht reproduzieren. Vielleicht habe ich es beim ersten Mal seltsam gemacht.

2 „Gefällt mir“

Das ist in der Tat seltsam. Lassen Sie mich wissen, wenn Sie das Problem erneut reproduzieren können.

2 „Gefällt mir“

Ich habe meinen Server gestern auf 3.5.0.beta9-dev aktualisiert und erhalte seitdem keine Live-Reloads mehr mit dem Discourse-Theme-Gem. Das Gem ist Version 2.1.6.

Ich sehe keine Fehler oder ähnliches, daher wollte ich zuerst fragen, ob noch jemand das gleiche Problem hat?

1 „Gefällt mir“

Live-Reloads von Stylesheets wurden für Produktionsinstanzen deaktiviert, da sie Probleme beim Aktualisieren von Themes und/oder Discourse-Core verursachten.

Grundsätzlich gilt: Änderungen an Stylesheets sind oft mit Änderungen an JS/HTML verbunden, daher ist ein Live-Laden nur für Stylesheets riskant. Benutzer führen dann ‘neue’ Stylesheets gegen ‘alten’ HTML-Code aus, was zu sehr seltsamen Erfahrungen führen kann.

Live-Laden ist für Discourse-Instanzen im Entwicklungsmodus weiterhin aktiviert. Idealerweise sollten Sie diesen für die Entwicklung verwenden und nicht eine Produktionsseite. Abgesehen vom Stylesheet-Reload bietet der Ember-Entwicklungsmodus weitaus hilfreichere Fehlermeldungen als der Ember-Produktionsmodus.

3 „Gefällt mir“

Das ist eine große Änderung. Ich bin überrascht, dass es keine Ankündigung gab. Ich habe die Theme-Entwicklung hauptsächlich nur auf Produktionsseiten durchgeführt.

Eine Site-Einstellung, um das alte Verhalten zu erhalten, wäre nett.

4 „Gefällt mir“

Zustimmung, das hat mich überrascht, und ich konnte diesen aktuellen Thread trotz Suche nicht finden, oder vielleicht habe ich das ältere OP-Datum gesehen und es ignoriert.