Discourseのカスタマイズがなぜこんなに難しいのか?

CSSを編集したい場合、コンポーネントを作成し、CSSファイルを作成して、それが機能することを確認する必要があります。次に、たとえば「Discourse Topic Cards」のコンポーネントを追加し、カスタムCSSファイルに戻って変更を適用し、保存をクリックしてからページを更新すると、カスタムCSSが適用されません。

また、管理エリアでテンプレートを編集する方法がないのはなぜですか?「Discourse Topic Cards」のテンプレートを編集したい場合、Discourse DockerにSSHで接続して変更を加える必要がありますか?

WordPress にはより馴染みがありますか?もしそうなら、これはより簡単に理解できるはずです。コア、プラグイン、またはテーマを直接編集しないでください。次のアップデートが発生したときに、すべての変更を失うことになるからです。

したがって、これらの多くの困難は実際には Discourse からではなく、世界の仕組みから生じているのです :smirking_face:

「いいね!」 5

これらのルールが他の場所で定義されているルールよりも優先されるように、CSSに!importantを追加する必要があるかもしれません。これは、いくつかのコンポーネントが特定の順序でロードされる場合に予想される状況です。これは一般的な問題であり、必ずしもDiscourseに固有の問題ではありません。「そのコンポーネントは最後にロードされるべきだ」と伝えるための重み付けシステムを設けることができるかどうかはわかりませんが、それは非常に管理不可能に思えます。

だからこそ、テーマやテーマコンポーネントでは、絶対に必要でない限り、CSSで!importantを使用しないことが重要です。

リモートテーマコンポーネントを編集したい場合は、GitHubでフォークして独自のバージョンを作成してください。それが最も簡単な方法です!ただし、元のバージョンからのアップデートは受け取れません。リモートコンポーネントを編集することはできません。なぜなら、あなたのカスタマイズがアップデートと衝突する可能性があり(そしてそれを処理するのは悪夢です)。

Discourseのカスタマイズはかなりアクセスしやすいです。ただし、どのようなカスタマイズを期待しているかによります。ここで何を達成しようとしていますか?おそらくお手伝いできます。Discourseチームは、カスタマイズ機能が歓迎される分野については、通常オープンです。

「いいね!」 1

私は長年ウェブサイトを運営してきましたが、もう少しユニークなものを作成すると、より良い結果が得られると思います。「Discourse Cards Topic」テンプレートをカスタマイズして、一般的なトピックリストからポスター、返信、表示回数、アクティビティ統計を含めたいと思います。

できること:

  • 機能リクエスト(今回のように適切なトピックに投稿する)
  • 可能であれば Marketplace に投稿する
  • コーディング方法とテーマコンポーネントの仕組みを学ぶ(#documentation:theme-developers を参照)、Dev に遠慮なく質問する
「いいね!」 3

コーダーが読めるドキュメントはありますか?

Discourseに慣れるために役立つ可能性のあるリソースをいくつかご紹介します。

時間をかけてお読みください!ガイドには、外部ガイドへのリンクも含まれている場合があります。

ご質問があれば、Dev に質問してください :+1:

「いいね!」 5

Discourse Topic Cards テーマコンポーネントの上にさらに変更を追加したい場合は、次のようにします。

  1. Discourse Topic Cards をインストールし、アクティブなテーマに追加します。
  2. 新しいテーマコンポーネントを作成します。
  3. 新しいテーマコンポーネントもアクティブなテーマに追加します。

サーバーにSSHで接続したり、ソースコードを変更したり、リポジトリをフォークしたりする必要はありません。

例として、Minima テーマの Discourse Topic Cards に変更を加えた方法を以下に示します。

このようにすれば、テーマからの新しいアップデートを引き続き受け取ることができ、すべてのテーマコンポーネントが整理され、分離されるため(デバッグのために簡単に無効化/有効化できます)。

しかし、このプロセスは管理者のために少し詳しく説明できると、私は思います。