リモートテーマの編集を制限する

長らく、Discourse にリモート Git リポジトリからインストールされたテーマをローカルで編集しないことがベストプラクティスとされてきました。テーマのコードやアップロードされたファイルに対する変更は、リモートリポジトリからテーマを更新する際に上書きされてしまいます。

今回のコミットでは、リモートテーマのローカル編集機能を削除し、Discourse 内でこのベストプラクティスを強制するように変更しました。

リモートテーマにローカルの変更がある場合、どうなりますか?

現時点では何も変わりません。テーマを削除するか、リモートから更新するまで、現在の状態のまま維持されます。

ローカルの変更を維持するには?

CSS のみの変更の場合:

CSS のみの変更を、新しいローカルテーマコンポーネントにコピーできます。手順は以下の通りです:

  1. Install をクリックします。
  2. Create new をクリックします。
  3. 右側のペインにある Edit ボタンをクリックします。
  4. CSS の変更を適切なファイル(common / mobile / desktop)にコピーします。
  5. 保存してテーマコンポーネントを有効化します。
  6. 重複する CSS を避けるため、リモートテーマを更新してローカルの変更を上書きします。

CSS 以外(JS/テンプレート)を変更した場合:

ローカルの変更を維持したい場合は、テーマをローカルテーマに移行することをお勧めします。手順は以下の通りです:

  1. 管理画面の [Customize] 下でテーマを開きます。
  2. Export をクリックして、ローカルの変更を含んだテーマをダウンロードします。
  3. テーマリストの下の Install をクリックし、From your device を選択します。
  4. エクスポートしたテーマをアップロードし、以前と同様にインストールして有効化します。

興味のある方にとっての別の選択肢として、GitHub でリモートテーマをフォークし、フォークしたリポジトリに変更をコミットしてから、Discourse インスタンスにそのフォークをインストールする方法もあります。これにより、メインリポジトリの将来の更新に対して変更をリベースするオプションが可能になります(ローカルテーマへの変換では提供されない機能です)。

最後に、将来の変更の重複や混乱を防ぐため、リモートテーマを必ず削除してください

「いいね!」 35

この機能を使って、リモートテーマの変更を素早くプレビューしていました。現在、同様のことを実現する方法はありますか?どこかで高さの変更をコミットし、プッシュしてプルして更新するだけで、変更が多すぎたり少なすぎたりすることに気づくのは避けたいです :frowning:

「いいね!」 1

一つの方法は、コミットをプッシュする前に、Discourse Theme CLI(テーマ作成を支援するコンソールアプリ) を使用して、異なる名前でコンポーネントを試すことです。もう一つの方法は、開発環境またはステージングサイトを使用することです。

「いいね!」 2

CLI ですね!素晴らしい!そんなものがあるなんて知りませんでした。とても助かります。

ヒントをありがとう!

「いいね!」 2

素晴らしいですね!もうブラウザで編集する必要もなくなります!:clinking_glasses:

「いいね!」 4