投稿エディタの変更にはプラグインかテーマコンポーネントどちらが適していますか?

正直に言いますが、どこに投稿すればいいか全くわかりません。もしこのカテゴリが適切でない場合は、自由に移動させてください。

最近、Discourse の投稿エディタで ruby タグを追加する際のユーザーエクスペリエンスを改善することに興味を持っています。ご存じない方のために説明すると、このタグは日本語の文章を書く際に、文字の「読み方」を併記するために使われます。例えば、日本語を ほん のように表示できます。しかし、私たちの日本語学習コミュニティでさえ、多くの人がこの機能の存在を知らなかったり、長いフレーズや文章の場合、手入力が面倒だから使おうとしない人がいます。(先ほどの単語の例は、ほん というコードから生成されたものです。)

そのため、投稿エディタのメニューにハイパーリンクオプションと非常に似た機能のオプションを追加したいと考えています。これは依然として 2 つの入力フィールドを持ちますが、リンク名と URL の代わりに、メインのテキストと読み方を区別するために使われます。これはサーバーと一切やり取りせず、単にエディタにバニラ(Discourse がサポートする)HTML を挿入するだけです。おそらく、ユーザーが長い文字列を入力して、一文字ずつ行うのではなく、一度にすべてのルビタグを追加できるように、少しテキスト解析を行うことになるでしょう。

そこで質問ですが、これはテーマコンポーネント、プラグイン、あるいは全く別の方法として実装するのが最適でしょうか?また、コアの Discourse がエディタに関する変更を加えた際に、コンポーネントやプラグインなどが壊れることを気にしなくて済むような方法はありますか?私がこの機能を追加したいと考えている Discourse インストールは、Discourse によってホストされているものだと思いますので、そのタイプのインストールと互換性がある必要があります。まだそのサイトの管理者に確認する必要がありますが、準備ができたらインストールを許可してもらえると思うので問題ないでしょう(もちろん、ここでアドバイスを得た後、最初に彼らに確認します)。

どんなサポートやアドバイスでも感謝します!

この場合は、テーマコンポーネントが最適です!コアを変更する必要はなく、これを追加するためのフックも既に用意されています。

Composer Help Button をご覧ください(現在はプラグインですが、簡単にテーマコンポーネントに変換できます)。

ありがとうございます、確認しますね。念のため確認したいのですが、ホストされたサイトでもテーマコンポーネントを追加できますか?このサイトに時間を費やす前に、私が利用しているサイトの管理者が実際にこれをインストールできるかどうかを確認したいのです。

はい、ホストされたサイトでは、管理者がテーマコンポーネントをインストールできます。一般的なテーマのドキュメントはこちらで確認できます。

以下は、コンポーザーにツールバーボタンを追加するテーマコンポーネントの例です:

https://github.com/discourse/DiscoTOC/blob/master/common/header.html#L373-L393