Benutzerdefiniertes CSS/HTML in einem nicht standardmäßigen Theme (ohne Komponente)

Das Standardthema ermöglicht benutzerdefiniertes CSS/HTML in seinen Einstellungen.

Experimentell wollte ich die Zeitleiste ausblenden. Ein guter Vorschlag hierfür mit CSS wurde gemacht (anderes Thema). Der Vorschlag war, die 4 Zeilen als Thema-Komponente zu implementieren. Nicht schwierig, aber ich dachte, die benutzerdefinierte CSS-Option im Standardthema wäre einfacher.

Ich habe mein Thema gewechselt und die 4 Zeilen als benutzerdefiniertes CSS eingefügt. Tatsächlich hat dies perfekt funktioniert.

Das lässt mich fragen, warum dieses benutzerdefinierte CSS/HTML (nur) hier verfügbar ist. Wäre es nicht sinnvoller, dies als allgemeine Einstellung zu haben?

Wahrscheinlich gibt es auch einen Anwendungsfall für benutzerdefiniertes CSS nur in einem Thema, aber ein allgemeines wäre doch auch nützlich, oder?

EDIT: Füge hier nur einen Link zum Hauptthema hinzu, das benutzerdefiniertes CSS diskutiert und den oben genannten „Standard“-Themenansatz beschreibt: Making custom CSS changes on your site

Eine Komponente, die mit jedem Thema verbunden ist, sind diese allgemeinen Einstellungen. Was wäre anders, wenn Sie einen weiteren Tab, Abschnitt oder eine „offizielle“ Komponente dafür hätten?

1 „Gefällt mir“

Nun, eine Komponente bedeutet, dass Sie die Komponente bearbeiten und dann die Komponente in Ihrer Discourse-Instanz aktualisieren müssen.

Um es klarzustellen, der Workflow für Themes und Komponenten ist absolut fantastisch. Ich denke nur, es könnte nützlich sein, kleine CSS-Dinge direkter / ad-hoc zu bearbeiten.

1 „Gefällt mir“

Äh… nein, das tust du nicht. Änderungen werden sofort nach dem Speichern übernommen.

Zuerst sprachen Sie über allgemeine Änderungen, jetzt bearbeiten Sie direkt nur ein Thema. Nun, wenn Sie Änderungen nur für ein Thema vornehmen, wäre es schön, wenn es eine Option pro Thema gäbe. Aber wenn CSS-Änderungen in einer Komponente vorgenommen werden, können Sie diese leicht und schnell deaktivieren, wenn (nicht wenn…) die Dinge aufgrund von Fehlern, Konflikten, Upgrades usw. schiefgehen.

Für Testzwecke vielleicht und wenn es egal ist, werden deine Benutzer diese Versuche auch sehen. Aber was ist, wenn du diese Änderung beibehalten möchtest und ein anderes Thema als das Standardthema zur Auswahl hast? Dann musst du eine weitere Runde drehen :wink:

1 „Gefällt mir“

In der Tat, genau deshalb habe ich mich nach einer allgemeinen benutzerdefinierten CSS-Option erkundigt, die themenübergreifend funktioniert.

Und Sie haben: die Komponente, die CSS-Änderungen enthält.

Ich bin neu hier, also verpasse ich sicher etwas.

Wenn ich meine eigene Komponente schreibe, würde ich sie auf GitHub stellen. Dann, wenn ich Änderungen vornehmen muss, würde ich sie auf GitHub vornehmen und dann Discourse bitten, die Komponente zu aktualisieren.

Ist das nicht der richtige (oder einfachste) Weg?

2 „Gefällt mir“

Warum würdest du das tun? Es sei denn, du planst, sie zu teilen. Aber keine große Sache – dann klickst du auf die Schaltfläche „Aktualisieren“ deiner Komponente.

Ich bin jetzt etwas verloren. Wie würdest du deine CSS-Änderungen einfacher in eine globale CSS-Datei (die auch eine Komponente wäre) einfügen? Was ist, wenn du das Thema Air ändern möchtest, wie denkst du, würdest du diese Änderungen liefern?

1 „Gefällt mir“

Unabhängig davon, ob Sie eine Komponente teilen, ist es oft eine gute Idee, sie auf GitHub zu hosten, damit Sie ihre Entwicklung verwalten können und sie auch eine gute Sicherung darstellt.

2 „Gefällt mir“

Vielleicht ist es einfacher, wenn ich ein konkretes Beispiel gebe.

Ich möchte die Zeitleiste ausblenden (nur als Experiment), dabei hat mir @merefield mit CSS geholfen:

.topic-navigation {
  display: none
}

Für dieses Experiment möchte ich das global tun. Es ist ein Experiment, daher muss ich es nicht auf die strukturellste / reproduzierbarste / technisch korrekteste Weise tun.

Eine Komponente ist keine große Sache. Aber was noch weniger Mühe macht, ist die Einstellung Edit CSS im Standardthema. Ich habe es ausprobiert und es funktioniert perfekt.

Ich möchte jedoch sehen, was meine Community-Mitglieder denken, aber ich verwende das Thema zeronoise, das keine Einstellung Edit CSS hat.

Meine Frage ist nun, wäre es nicht nützlich, wenn Discourse eine Möglichkeit hätte, ein wenig mit CSS zu basteln, so wie es möglich ist, wenn man das Thema Default einstellt.

Um es klarzustellen: Ich verstehe, dass es einen Anwendungsfall für Edit CSS gibt, der themenspezifisch ist, daher wäre es zusätzlich zu Edit CSS in Default, nicht anstelle davon.

Ich hoffe, das erklärt ein wenig, worauf ich hinauswill. Lassen Sie mich wissen, wenn ich technische Elemente falsch verstanden habe, und ich werde sie entsprechend bearbeiten.

Und danke an alle, die ihre Gedanken teilen. :pray:

Im Sinne von kratze deinen eigenen Juckreiz denke ich darüber nach, den Code Bearbeite CSS/HTML aus dem Standardthema zu nehmen und ihn in einer separaten Themenkomponente oder einem Plugin zu verpacken (natürlich unter Beibehaltung der GPL-2).\n\nIch schätze, eine Komponente wäre am einfachsten.

Jetzt bin ich völlig verloren.
Sie müssen dafür eine separate, selbst erstellte Komponente verwenden. Und diese Komponente sind Ihre globalen Einstellungen in dem Sinne, dass Sie sie in jedem Theme aktivieren, das sie verwendet.

mit grundlegenden CSS-Änderungen? Ist das nicht ein bisschen übertrieben?

Das ist tatsächlich der Grund, warum ich diesen ganzen Thread begonnen habe.

Wie würden Sie grundlegende CSS-Änderungen vorschlagen?

Persönliche Präferenz.

Es gibt keine Versionskontrolle im Admin-Menü.

Es ist auch eine Möglichkeit, Ihr Wissen zu verbessern.

2 „Gefällt mir“

Hallo Bastiaan :slight_smile:

Sie können das HTML und CSS eines „externen“ Themes/Komponenten nicht direkt bearbeiten, da Änderungen überschrieben würden, wenn das Theme/die Komponente aktualisiert wird. Das war vor etwa zwei oder drei Jahren noch möglich, aber diese Funktion wurde entfernt.

Sie können eine lokale neue Komponente direkt über die Benutzeroberfläche von Discourse erstellen, um das CSS Ihres vorhandenen Themes zu überschreiben (über den CSS-Tab der Komponente) oder eine neue Komponente als GitHub-Projekt erstellen, das Sie über die Komponentenseite aktualisieren („Update“-Schaltfläche jedes Mal, wenn das Repository geändert wird).

Verstehe ich das richtig, was Sie tun möchten, und beantwortet dies Ihre Fragen?

2 „Gefällt mir“

Hallo @Canapin, großartig! Danke :pray:. Das ist genau das, wonach ich gesucht habe.

Das erklärt wahrscheinlich auch das Missverständnis mit @Jagster. Es gibt eine direkte Möglichkeit, das zu tun, was ich versucht habe, aber ich war mir nicht bewusst, dass man eine neue Komponente direkt aus der Benutzeroberfläche erstellen kann (was benutzerdefiniertes CSS ermöglicht).

Vielleicht wäre es nützlich, dies zu den großartigen Anleitungen zu Themes und/oder CSS von @Johani hinzuzufügen.

3 „Gefällt mir“