Canvas Theme Vorlage

|||
|-|-|-|
| :information_source: | Zusammenfassung | Starten Sie Ihr Theme-Design schnell mit einer vorbereiteten Theme-Vorlage.
| :eyes: |Zielgruppe| Neue Entwickler, die mit dem Erstellen von Themes für Discourse beginnen möchten. Erfahrene Entwickler, die eine fertige Vorlage verwenden möchten. |
| :hammer_and_wrench:|Repository| Manuel Kostka / Discourse / Canvas / Canvas Theme Template · GitLab |
| :question:|Installationsanleitung|So installieren Sie ein Theme oder eine Theme-Komponente|
| :open_book:|Neu bei Discourse Themes?| Anfängerleitfaden zur Verwendung von Discourse Themes|

Canvas bietet eine flexible Vorlage, mit der Sie benutzerdefinierte Themes mit weniger Code erstellen können. Passen Sie Eigenschaften und Konfigurationswerte einfach an, um ein Theme an Ihre Bedürfnisse anzupassen.

Beispielansichten


Die Basisvorlage behält Standardwerte bei und bleibt im Design neutral.

Minimale Anpassungen, die einige benutzerdefinierte Eigenschaften ändern und eine Hervorhebungsfarbe definieren:

Ein Design, das die Topic Cards-Komponente und benutzerdefinierte Stile für Banner integriert:

Ein aufwändiges Theme, das eine benutzerdefinierte Schriftart und einzigartige Farbschemata enthält:

Verwendung


  1. Klonen Sie die Theme-Vorlage.

  2. Synchronisieren Sie das Theme mit Ihrer Discourse-Instanz mithilfe des discourse_theme gems.

  3. Gehen Sie zum Admin-Backend und passen Sie diese Theme-Komponenten-Einstellungen manuell an:
    Kategorie-Banner
    Plugin-Outlet → above-main-container
    Tag-Banner
    Unterhalb der Website-Kopfzeile anzeigen → deaktivieren
    Oberhalb des Hauptcontainers anzeigen → aktivieren

  4. Bearbeiten Sie scss/properties.scss, um Werte für benutzerdefinierte Eigenschaften zu definieren

  5. Bearbeiten Sie about.json, um Assets, Farbschemata und weitere Theme-Komponenten hinzuzufügen

Ein genauerer Blick auf die Einrichtung


Die Vorlage Canvas Theme erweitert nur das Standard-Theme-Skelett um die Bündelung einiger Theme-Komponenten und das Hinzufügen einiger fertiger Stil-Dateien. Die eigentlichen Funktionen werden von einer separaten Theme-Komponente Canvas Settings übernommen. Diese Komponente erfüllt zwei Funktionen:

Diese getrennte Einrichtung ermöglicht es Ihnen, ein Theme mit der Canvas-Vorlage zu erstellen und gleichzeitig von den fortlaufenden Fehlerbehebungen und Updates zu profitieren, die über die Komponente bereitgestellt werden.

Beispiel-Themes


Sie können den Code der freigegebenen Beispielansichten überprüfen oder sie als Ihr Starter-Theme aus diesen Repositories installieren:


:tada: Ein riesiges Dankeschön an Discourse für das Sponsoring der Entwicklung dieses Projekts!

24 „Gefällt mir“

Diese Theme-Einstellungen werden nicht angezeigt, als ich versuchte, die Beispiel-Themes zu installieren. Ist das das erwartete Verhalten?

1 „Gefällt mir“

Die Einstellungen befinden sich beim Theme-Komponenten, die als Canvas Settings installiert sind. Es ist vielleicht etwas irreführend, dass die Einstellungen in der Benutzeroberfläche immer Theme Settings genannt werden, auch bei Theme-Komponenten.

2 „Gefällt mir“

In der Canvas-Einstellungen-Komponente gefunden, danke!

3 „Gefällt mir“

Vielen Dank für deine Arbeit daran, @manuel.

Ich habe die Editor-Version lokal ausprobiert, sie funktioniert größtenteils sehr gut, aber mir sind einige kleine Probleme aufgefallen.


Bei einer Standardinstallation, ohne Änderung von Einstellungen, wird das Tag-Label in der Komponente „Extra Banners“ an der falschen Stelle angezeigt:

Das Kategoriebanner wird ebenfalls an derselben Stelle angezeigt, oberhalb der Seitenleiste. Die neuesten und angesagtesten Themen werden korrekt in der Hauptspalte angezeigt.


Ich vermute, dass es nicht das Ziel des Themes ist, die Admin-Oberfläche vollständig abzudecken, jedoch sehen die hellen und dunklen Editor-Farbpaletten der Admin-Seitenleiste recht unterschiedlich aus. Ich bin neugierig, ob es möglich ist, sie mit der nicht-Admin-Seitenleiste zu harmonisieren.

5 „Gefällt mir“

Das Theme soll Banner neben der Seitenleiste anzeigen, über den above-main-container-Outlet. Die Extra-Banners-Komponente verwendet diesen Outlet standardmäßig, aber die beiden Komponenten für Kategorie- und Tag-Banner werden standardmäßig unterhalb des Headers gerendert. Ich möchte diese Komponenten nicht forken, nur um einen anderen Standard-Outlet festzulegen. Deshalb habe ich diese Anweisungen eingefügt:

Aber wenn das leicht zu übersehen ist, gibt es vielleicht eine bessere Möglichkeit, es auszudrücken? :thinking:

Ja, das ist einfach genug und scheint ein guter Ansatz für dieses Theme zu sein. Ich habe gerade einen Commit hinzugefügt!

5 „Gefällt mir“

Ah ja, ich sehe, wie wir hierher gekommen sind. Wir möchten die Standardwerte in den Kategorien/Tags-Bannern-Komponenten nicht unbedingt ändern, auch wollen wir sie nicht forken. Es ist kompliziert zu beheben, lassen wir es vorerst so und schauen, ob andere auf dasselbe Problem stoßen.

Die Änderung an der Admin-Seitenleiste sieht schon gut aus, danke!

4 „Gefällt mir“

Könnten diese Anweisungen etwas ausführlicher erläutert werden? Ist es nicht möglich, einfach über die Admin-Oberfläche zu installieren? Danke :folded_hands:t4:

EDIT: Ich habe die Installation über die Admin-Oberfläche vorgenommen und es scheint zu funktionieren, außer dass es jetzt nirgends zu geben scheint, wo man SCSS bearbeiten kann.

EDIT: Nie wieder, ich sehe, dass das wahrscheinlich erwartet wird und Sie zeigen, wie man die Theme-Dateien direkt bearbeitet. Ich frage mich, ob dies auf der Roadmap für die Admin-Oberfläche stehen könnte? Zum Beispiel eine Variablenbearbeitung, so wie Sie eine Einstellungsbearbeitung haben.

3 „Gefällt mir“

Ich weiß nicht, was auf der Kern-Roadmap steht, aber eine Sache, die Sie jetzt tun könnten, ist, eine neue Theme-Komponente direkt in der Admin-Benutzeroberfläche zu erstellen:

Und dann deklarieren Sie benutzerdefinierte Eigenschaften in seiner CSS-Datei. Sie könnten entweder nach Eigenschaften in der Readme-Datei suchen. Oder kopieren Sie den Inhalt von properties.scss aus dem Theme-Repository.

2 „Gefällt mir“

Wie klone ich das zu Gihub? Bin noch etwas grün hinter den Ohren :wink:

Sie könnten es über die Benutzeroberfläche importieren:

Wenn Sie jedoch Änderungen synchronisieren möchten, müssen Sie meiner Meinung nach zu einem lokalen Klon ziehen und dann von dort aus pushen. Etwas wie das hier:

  1. Von GitLab klonen
git clone "https://gitlab.com/manuelkostka/discourse/canvas/theme.git"
  1. Push-URL auf Ihr GitHub-Repository setzen
git remote set-url --push origin "git@github.com:Username/Reponame.git"
  1. Dann können Sie periodisch von GitLab abrufen und nach GitHub pushen
git fetch -p origin
git push origin
2 „Gefällt mir“

Ich sehe auf GitHub auf Mobilgeräten kein Pluszeichen. Möglicherweise muss ich die Befehlszeilen verwenden, wenn ich zu Hause bin.

Alles, was ich auf dem GitHub-Dashboard sehe, ist die Option, ein neues Repository zu erstellen, aber keine Option zum Beanspruchen. Ich habe ein kostenloses Konto, bin mir also nicht sicher, ob das etwas damit zu tun haben könnte.

Ich habe eine Komponente hinzugefügt, mit der Sie einige Stilvariablen und Layoutoptionen direkt in der Komponenten-UI definieren können:

Es ist im Vergleich zur Deklaration von benutzerdefinierten Variablen im Stylesheet begrenzt. Aber es ermöglicht Ihnen, mit ein paar verschiedenen Looks zu experimentieren. Ich bin gespannt zu hören, ob das funktioniert! :eyes:

2 „Gefällt mir“

Ich spiele gerade damit und finde es schön! Gibt es eine Möglichkeit, den Zeilenabstand des Menüs zu verringern – um es kompakter zu gestalten?

Außerdem kann ich die feste Seitenleiste nicht scrollen, ist das ein Fehler?

2 „Gefällt mir“

Ich habe gerade die CSS-Stile für die feste Seitenleiste angepasst, das Scrollen sollte wieder funktionieren!

Die feste Seitenleiste ist jedoch nur eine der Optionen in der Styles-Komponente, die ich im obigen Beitrag erwähnt habe. Wenn Sie weitere Stile anpassen möchten (z. B. das Menü der Seitenleiste mit Abständen versehen), müssen Sie den oben im Abschnitt Verwendung und Ein genauerer Blick auf die Einrichtung erklärten Ansatz befolgen: Verwenden Sie Ihr eigenes Stylesheet mit benutzerdefinierten CSS-Eigenschaften – in diesem Fall wäre das -d-sidebar-row-height.

3 „Gefällt mir“

Ich habe ein neues Beispiel-Theme basierend auf dieser Vorlage zusammengestellt. Wie der Name schon sagt, ist dies eine Hommage an das ursprüngliche Central-Theme! :hugs: :partying_face:

Ich liebte das Layout und den visuellen Stil von Central und habe einige seiner Funktionen in eigenständige Komponenten verpackt, wie das Benutzerdefiniertes Benutzermenü und mehrere Seitenleistenblöcke.

Mir ist aufgefallen, dass diese Vorlage mit der Seitenleiste und einigen Stilen tatsächlich eine gute Annäherung an das Aussehen und Gefühl des ursprünglichen Themes darstellt.


Auf jeden Fall plane ich nicht, das Central-Theme vollständig neu zu erstellen. Aber ich werde vielleicht immer noch mit einem speziellen Topic-Listen-Stil experimentieren. Wenn Sie neugierig sind und einen Blick darauf werfen möchten, ist das Theme auch hier live: https://central.kostka.studio

8 „Gefällt mir“

Sehr nett. Danke f

1 „Gefällt mir“

Danke für das Teilen dieser Vorlage! Die Flexibilität mit Komponenten und das saubere Design machen es wirklich einfach, sie anzupassen. Ich freue mich darauf, sie auf meiner eigenen Instanz auszuprobieren.

2 „Gefällt mir“

Willkommen bei Discourse :discourse: !

2 „Gefällt mir“