2.4.0.beta3 の新機能
robots.txt のカスタマイズ許可
この機能により、管理者は /admin/customize/robots で robots.txt ファイルの内容をカスタマイズまたは上書きできるようになります。このページは UI 内のどこにもリンクされていません。管理者は URL を手動で入力してアクセスする必要があります。
一括招待で最大 200 通のメールを 1 分間に送信
注意: invite.via_email は非推奨となり、代わりに invite.emailed_status が使用されます。
このコミットにより、メール送信ステータスを追跡するために invites テーブルに新しいカラム emailed_status が追加されました。
0 - 不要
1 - 保留中
2 - 一括保留中
3 - 送信中
4 - 送信済み
- 通常のメール招待の場合、招待レコードは
emailed_statusが ‘pending’ に設定されて作成されます。 - 一括招待が送信される場合、招待レコードは
emailed_statusが ‘bulk pending’ に設定されて作成されます。 - リンクを生成する招待の場合、招待レコードは
emailed_statusが ‘not required’ に設定されて作成されます。 - 招待メールがキューに入ると
emailed_statusは ‘sending’ に更新されます。 InviteEmailジョブを通じてメールが送信されると、招待のemailed_statusは ‘sent’ に更新されます。
招待の交換時の外部認証
この機能(有効化された場合)は、invite_only サイトが招待を交換する前に外部認証を要求することを可能にします。
- この機能を切り替えるための非表示のサイト設定が作成されました
- ローカルログインが無効化された状態での招待送信を可能にします
- 招待フォームに OAuth ボタンが追加されました
- OAuth のメールアドレスが招待のメールアドレスと一致している必要があります
- OAuth 認証に失敗した場合、招待の交換を防止します
PM を公開する際のカテゴリ選択の許可
以前はデフォルトで 未分類 でしたが、一部のフォーラムでは適切ではありませんでした。現在、スタッフメンバーは PM をどのカテゴリに移動するかを即座に決定できます。
審査待ちの投稿に対する生メールの閲覧許可
投稿がメールで到着したが審査が必要な場合、メールの生内容を表示するためにクリックできるアイコンが表示されるようになりました。
これは、Discourse のメールパーサーが異常に動作している場合や、投稿を審査するユーザーが承認/却下する前に元のコンテンツを知りたい場合に役立ちます。
監視ワードの改善
今回のリリースで新しい機能が追加されました。
新しいボタンが 2 つあります。1 つ目は管理者がアクションごとの監視ワードを .txt ファイルとしてダウンロードできるもので、2 つ目はアクションごと(ブロック、フラグなど)に削除されたワードをすべてクリアするものです。さらに、1 つ以上のブロックされたワードを含むために投稿が却下された場合、エラーメッセージには投稿に含まれるすべてのブロックされたワードがリストされるようになりました。
なお、この新機能により、監視ワードをインポートするためのファイル形式が .csv から .txt に変更され、監視ワードをエクスポートする際のファイル拡張子と一致しなくなっています。
HTML メールのカスタマイズ
この機能により、カスタム HTML テンプレートと、必要に応じてスタイルを設定するための CSS を使用して、すべてのメールの HTML 部分をカスタマイズできるようになりました。CSS はメールクライアントでのサポートが不十分なため、パースされてインラインスタイルに変換されます。カスタム HTML と CSS を記述する際は、どのメールクライアントがサポートしているかに注意してください。カスタマイズは非常にシンプルに保ってください。
カスタマイズは「管理 > カスタマイズ > メールスタイル」から追加および編集できます。
サマリーメールはすでにスタイル設定が大幅に行われているため、サマリーメールにカスタムスタイルを適用しないための設定 apply custom styles to digest が「管理 > 設定 > メール」にあります。
この作業の一環として、RTL ロケールがすべてのメールで正しくレンダリングされるようになりました。
「About」ページにカテゴリモデレーターの一覧を表示
Category Group Review/Moderation の機能に関する新しいアップデートです。今後は、カテゴリモデレーターがスタッフメンバーとともに、サイトの「About」ページに表示されるようになります。
グループメンバーの表示レベルのサポート追加とメンバーがグループに承認された際の通知送信
グループの表示管理に関するもう一つの追加機能です。現在、グループの表示レベルと同様に 5 つの表示レベルがあります。
- public(デフォルト)
- ログインユーザー
- メンバーのみ
- スタッフ
- オーナー
管理者とグループオーナーは常にグループメンバーを表示できます。
また、今後はユーザーがグループに承認された際に通知が送信されるようになります。
JavaScript API を通じたリモートサイトへのトピック一覧の埋め込み
この機能により、Discourse のトピック一覧としてレンダリングされる <d-topics-list> タグのサポートが追加されました。タグの属性はすべてフィルターとして渡されます。例えば:
<d-topics-list discourse-url="URL" category="1234"> はカテゴリ 1234 にフィルターを適用します。
この機能を使用するには、「embed topics list」サイト設定を有効にしてください。次に、埋め込みたいサイトには以下の JavaScript を含めてください。
<script src="http://URL/javascripts/embed-topics.js"></script>
ここで URL は Discourse フォーラムの URL です。
その後、HTML ドキュメントに <d-topics-list discourse-url="URL"> タグを含めると、それがトピック一覧に置き換えられます。
詳細については Embedding a list of Discourse Topics in another site を参照してください。
ユーザー通知用のウェブフックの追加
有効化された場合、ユーザーの通知が作成されるたびにウェブフックが発火します。フォーラムの規模によっては大量のデータになる可能性があるため、すべてのユーザーがフィードで表示する内容が含まれるため、慎重に使用する必要があります。
theme_uploads を JavaScript 内の設定として扱う機能と、テーマによる JS ファイルのアセットアップロードの許可
これらはテーマに関する他の改善点です。1 つ目はテーマとコンポーネントがテーマアセットにアクセスできるようにするものです。つまり、テーマ内の JS 内で以下のコードを使ってアセットの URL を取得できるようになりました。
settings.theme_uploads.name
2 つ目の改善点は、テーマがより大きな JS ペイロードの読み込みを遅延させる機能を解放するものです。テーマはすでにインライン JS を含めることが許可されているため、この変更は安全です。
iOS/Android ネイティブアプリとのリンクのためのサイト設定と PWA インストールプロンプトの Discourse UI への組み込み
今回のリリースでは、Android および iOS アプリ向けの新機能も追加されました。
現在、apple-app-site-association エンドポイントを介した iOS ユニバーサルリンクのサポートと、.well-known/assetlinks.json エンドポイントを介した Google Digital Asset Links のサポートを追加するための 2 つの新しいサイト設定があります。
さらに、ネイティブインストールの「ミニ情報」バーが表示されるのを防ぎ、それがポップアップするイベントをキャプチャし、ユーザーが現在の基準(現在は信頼レベル 1)を満たすまで遅延させるようにしました。
イベントが発生し、ユーザーが基準を満たした場合、インストールを提案する Discourse のアラートバナーが表示されます。バナーの閉じる操作は記録されるため、同じデバイスではユーザーが二度と邪魔されなくなります。
Discord でのログイン
discourse-plugin-discord-auth の機能をコアに追加しました。プラグインはコアが更新された際に自動的に無効化されます。詳細は discourse/discourse-plugin-discord-auth@fd08678?w=1 を参照してください。
セットアップ手順については Configure Discord Login for Discourse をご覧ください。
匿名キャッシュのパフォーマンス改善
パフォーマンスを向上させるための 2 つの新機能です。
- DISCOURSE_COMPRESS_ANON_CACHE (true|false、デフォルトは false): Redis 内の匿名キャッシュのボディエントリをオプションで圧縮できます。Redis が Web サーバーとは別のサーバーに存在する高負荷サイトにとって有用です。
- DISCOURSE_ANON_CACHE_STORE_THRESHOLD(デフォルトは 2): エントリを Redis に格納するのは、N 回以上観測された場合のみです。これにより、クローラーが大量のトピックを巡回してそれらをすべて Redis に格納し、二度と使用されないという状況を回避できます。トピックのデフォルトの匿名キャッシュ時間はわずか 60 秒です。匿名キャッシュは、1 分で 100 人以上のユーザーが単一のトピックにアクセスする「スラッシュドット効果」を回避するために存在します。




