いいえ、これはおそらく奇妙なリクエストでしょうから、私のジレンマをここで説明します。
私たちは Discourse インスタンス を運用しており、多くのユーザーがいます。また、20 年にわたるメーリングリストの歴史を持つため、メーリングリストモードのユーザーが多数います。
現在、いくつかのアクティブなカテゴリがありますが、すべてのメーリングリストユーザーが長年 [SDL] というスラッグで始まるメールを受け取り、メールフィルターでその文字列に基づいてメールをフォルダに整理しているため、件名フォーマットにカテゴリ名は含めていません。
そのため、私たちのフォーマット文字列は以下のようになっています([SDL] はハードコードされています)…
%{optional_re}[SDL]%{optional_pm} %{topic_title}
…この形式は 3 年間問題なく機能していました。
しかし、今、リビジョン管理システムへのコミットを記録する古く堅いメーリングリストを、Discourse のカテゴリに移行しようとしています。これは、古く堅いメーリングリストよりも Discourse が提供する多くのメリットを活用するためですが、ここで問題が発生しました。なぜなら、そのメーリングリストは異なるスラッグ(もちろん [Commits])を使用していたからです。
そのため、件名フォーマット文字列に、ハードコードされた [SDL] 文字列の代わりに、カテゴリ固有のスラッグとして使用できる何らかの要素が必要です。
既存のカテゴリスラッグ文字列を使用することはできません。なぜなら、ほとんどのカテゴリは同じ文字列を使用する必要があるからです。また、一意である必要がなかったとしても(私はそう推測していますが)、それを変更するとフォーラムへの既存の URL がすべて壊れてしまいます。カテゴリ名も使用できません。なぜなら、ほとんどのカテゴリは単に [SDL] である必要があるからです。加えて、それらは一般に長すぎるフレーズです。
これに対して何か良い方法はありますか?もしそれが不可能なら、%{optional_cat} と同様に、カテゴリごとの設定に汎用的な文字列を追加し、それをメール件名フォーマット文字列からアクセスできるようにすることはできませんか?例えば、デフォルトで空文字列になる %{cat_mailsubj} のようなものです。
ありがとうございます!
追記:どうやら私は 2017 年にも同じ結論に至ったようです:How to properly alter the database? - #8 by icculus …より良い選択肢はあるでしょうか、それとも再びこのパッチをほこりから取り出すべきでしょうか?