標準プラグインを更新する手順

小規模なセルフホスト型Discourseサイトを、標準のDockerインストールで構築しました。長年にわたり、containers/app.ymlファイルの末尾にあるフックを編集してプラグインリポジトリをgit cloneすることで、多数のプラグインをインストールしてきました。また、プラグイン開発も少し行いました。

しかし、数か月前、多くの標準プラグインがDiscourseコアに統合されました。仮に、Discourseリポジトリ全体をフォークし、それらのプラグインの1つ(例:discourse-math)を編集し、ローカル開発環境で変更がうまく機能するようになったとします。この新しいプラグインを本番のDiscourseインスタンスに組み込む手順は何でしょうか?

ついでに聞きますが、公式プラグインをフォークする必要があるのはなぜですか?

いずれにせよ、app.yml で特定のプラグインディレクトリを削除してから、どうしても必要な場合は独自のものをクローンするためのコマンドを実行できます。たとえば、次のようになります。

<in after_code: somewhere >
    - exec:
        cd: $home/plugins
        cmd:
          - rm -r poll
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/myaccount/myplugin-replacement.git

次のようにできるかもしれませんが、確認してください。

<in after_code: somewhere >
    - exec:
        cd: $home/plugins
        cmd:
          - rm -r poll
          - git clone https://github.com/myaccount/myplugin-replacement.git

スペースにはそれほど注意を払っていません。インデントが完璧であることを確認してください。

なぜなら、discourse-math プラグインで使用されている古いバージョンの MathJax を更新したいと考えているからです。

わかりました。不足しているのはこの行のようです。

cmd:
  - rm -r poll

ただし、poll が何であるかを明確にしてください。競合(現在発生していると思われるもの)を防ぐために、古い discourse-math ディレクトリを削除すべきだと思います。つまり、次のようなものです。

cmd:
  - -r plugins/discourse-math

これは、やみくもに実行するのに適したコマンドではなさそうですね。:slight_smile:

間違いをしても構いません、もししたら再構築すればいいのです。

私の例はpollプラグインを使ったものです。

プラグインのディレクトリを繰り返さないでください。

@merefield ちなみに、私のフロントページのこのアニメーションがお好きかもしれません: https://discourse.marksmath.org/

作成の過程で、あなたのコードをいくつか使用しました。

ハ、いいね、これでユーザーカードにクリックを追加して!:slight_smile:

これでうまくいきました、@merefield さん。本当にありがとうございます!!!

これは公式プラグインにとって pr-welcome な変更かもしれません。プラグインを利用するみんなの利益のために、この作業を引き受けてみたいという方は、Contribute > Feature トピックを立てて提案してください。