Discourseのカスタマイズはどのくらいまで可能?

カスタマイズの「安全性」を具体的に知らずに判断するのは難しいですが、一般的にカスタマイズが複雑になればなるほど、メンテナンスの手間は増えます。

プラグインの出力先にカスタムコンポーネントを追加したり、Discourseのコンポーネントを完全に置き換えたりする場合…一般的には、これらは拡張ポイントにカスタムコードを差し込む形になるため、動作し続けるはずです(多くの人がこれらのポイントを利用しているため、私たちはこれらを維持するよう努めています)。

CSSでは、可能であれば既存の--variablesを活用して変更を行うべきです。なぜなら、コンテンツ構造を変更しなければならない場合もありますが、その際でも同じ変数を再利用できるからです。

したがって、この方法はより安全です:

.d-header {
   --title-color--header: red;
}

一方、この方法は安全性が低いです:

.d-header {
    .extra-info-wrapper .topic-link {
      color: red;
    }
}

私たちは、テンプレートのオーバーライドやmodifyClassの使用など、壊れやすかった従来のカスタマイズ方法からプラットフォームを遠ざけるよう努めてきました。また、より安定したAPIの開発も進めていますが、それでもいずれは少なからずメンテナンスが必要になるでしょう。