デフォルト以外のテーマでのカスタムCSS/HTML(コンポーネントなし)

デフォルトのテーマでは、設定でカスタムCSS/HTMLを使用できます。

実験として、タイムラインを非表示にしたいと思いました。CSSを使用してこれを実現するための素晴らしい提案がありました(別のトピック)。提案は、4行をテーマコンポーネントとして実装することでした。難しくはありませんが、デフォルトのテーマのカスタムCSSオプションの方が簡単かもしれないと思いました。

テーマを切り替えて、4行をカスタムCSSとして挿入しました。実際にこれは完璧に機能しました。

これは、カスタムCSS/HTMLが(ここで)のみ利用可能である理由を疑問に思わせます。これを一般的な設定にする方が理にかなっていませんか?

おそらく、テーマでのみカスタムCSSを使用する用途もあるでしょうが、一般的なものも役立つのではないでしょうか?

編集: 上記の「デフォルト」テーマのアプローチを説明した、カスタムCSSに関するメインのトピックへのリンクをここに追加します:Making custom CSS changes on your site

すべてのテーマに接続されているコンポーネントは、そのような一般的な設定です。別のタブ、セクション、または「公式」コンポーネントがある場合、何が異なりますか?

「いいね!」 1

コンポーネントとは、コンポーネントを編集してから、Discourseインスタンスでコンポーネントを更新する必要があることを意味します。

明確にしておくと、テーマとコンポーネントのワークフローは絶対に素晴らしいです。しかし、小さなCSSの変更をより直接的/アドホックに編集できると便利だと思います。

「いいね!」 1

え…いや、そうではありません。変更は保存後すぐに反映されます。

まず、一般的な話をしていましたが、今度はテーマを1つだけ直接編集しています。まあ、テーマを1つだけ変更する場合は、テーマごとにオプションがあると良いのですが。しかし、CSSの変更が1つのコンポーネントにある場合、バグ、競合、アップグレードなどによって問題が発生した場合(発生しない場合ではなく…)、簡単に、そして迅速に無効にすることができます。

試用のためかもしれませんが、ユーザーがそれらの試用を見ても構わない場合もあります。しかし、その変更を維持したい場合、デフォルト以外のテーマしか選択肢がない場合はどうなりますか?その場合は、別のラウンドを行う必要があります :wink:

「いいね!」 1

まさにその通りで、テーマ全体で機能する一般的なカスタムCSSオプションについて疑問に思っていたのです。

そして、CSSの変更を保持するコンポーネントがあります。

初心者なので、何か見落としているに違いありません。

自分でコンポーネントを書く場合、GitHubに配置します。その後、変更を加える必要がある場合は、GitHubで変更を加え、Discourseにコンポーネントを更新するように指示します。

それは正しい(または最も簡単な)方法ではありませんか?

「いいね!」 2

なぜそうするのですか?共有する予定がない限り。しかし、大したことではありません — その後、コンポーネントの更新ボタンをクリックします。

グローバルCSSファイル(それもコンポーネントになります)にCSSの変更を簡単に入れるにはどうすればよいですか?テーマAirを変更したい場合は、どのように変更を配信するつもりですか?

「いいね!」 1

コンポーネントを共有しているかどうかにかかわらず、GitHubでホストすることは、その進化を管理できるため、多くの場合良い考えであり、優れたバックアップにもなります。

「いいね!」 2

具体的な例を挙げた方が分かりやすいかもしれません。

タイムラインを(実験として)非表示にしたいのですが、@merefieldさんの助けを借りてCSSで実現できました

.topic-navigation {
  display: none
}

この実験では、これをグローバルに行いたいのです。実験なので、最も構造的/再現可能/技術的に正しい方法で行う必要はありません。

コンポーネントはそれほど手間がかかりません。しかし、それ以上に手間がかからないのは、デフォルトテーマのEdit CSS設定です。試してみたところ、これは完璧に機能しました。

しかし、コミュニティメンバーの意見を聞きたいのですが、私はzeronoiseというテーマを使用しており、これにはEdit CSS設定がありません。

私の質問は、Discourseに、Defaultテーマを設定した場合のように、CSSを少しだけいじれる方法があれば便利ではないかということです。

明確にしておきますが、Edit CSSにはテーマ固有のユースケースがあることは理解していますので、DefaultEdit CSS追加するものであり、置き換えるものではありません。

これで、私が何を言いたいのか少しは説明できたでしょうか。技術的な要素に間違いがあれば教えてください。修正します。

そして、皆さんのご意見を共有していただきありがとうございます。:pray:

scratch your own itch の精神で、デフォルトテーマの Edit CSS/HTML コードを、別のテーマコンポーネントまたはプラグイン(もちろんGPL-2のまま)としてパッケージ化することを考えています。

コンポーネントにするのが一番簡単だと思います。

全く分からなくなりました。
それには個別の自作コンポーネントを使用する必要があります。そして、そのコンポーネントは、それを使用するすべてのテーマで有効にするという意味で、グローバル設定となります。

基本的なCSSの変更で?それは少しやりすぎではありませんか?

それがまさに私がこのスレッド全体を開始した理由です。

基本的なCSSの変更を行うには、どのようにすればよいでしょうか?

個人の好みです。

管理メニューにはバージョン管理がありません。

知識を向上させる方法でもあります。

「いいね!」 2

Bastiaanさん、こんにちは :slight_smile:

「外部」のテーマ/コンポーネントの HTML および CSS は、テーマ/コンポーネントが更新されたときに変更が上書きされるため、直接編集することはできません。2、3年前までは可能でしたが、この機能は削除されました。

既存のテーマの CSS をオーバーライドするために、Discourse のインターフェースに直接ローカルの新しいコンポーネントを作成する(コンポーネントの CSS タブから)、または GitHub プロジェクトとして新しいコンポーネントを作成してリポジトリが変更されるたびに「更新」ボタンをクリックして更新する、という方法があります。

私があなたのやりたいことを理解しており、この回答があなたの質問に答えているでしょうか?

「いいね!」 2

@Canapinさん、素晴らしいです!ありがとうございます。:pray: まさに探していたものです。

これはおそらく@Jagsterさんとの誤解の原因も説明しています。私がやろうとしていたことを直接行う方法がありますが、インターフェースから直接新しいコンポーネントを作成できること(カスタムCSSを許可する)を知りませんでした。

これは、@JohaniさんによるテーマやCSSに関する素晴らしいガイドに追加すると役立つかもしれません

「いいね!」 3