親愛なる Discourse 開発者各位、
件名:rake posts:rebake(将来の機能)
rake posts:rebake # 各投稿を最新の Markdown で再構築
rake posts:rebake_match[pattern,type,delay] # 文字列/正規表現に一致するすべての投稿を再構築し、必要に応じてループを遅延させる
A. トピック ID(または投稿 ID)が特定の整数より大きい場合にのみ再構築できるようにする機能を追加していただければ幸いです。
rake posts:rebake_incremental['topic_id', 34567] # topic_id が 34567 以上の場合に再構築
rake posts:rebake_incremental['post_id', 364123] # post_id が 364123 以上の場合に再構築
理由:
(1) 再構築を行う際、特に移行タスクの作業中、開発者はすでにトピックや投稿を移行している場合があります。しかし、その後、新しい投稿を含めて移行を更新した場合(例えば、アクティブなフォーラムで移行が更新された場合)、再構築の開始点を指定する方法はありません(私の知る限りでは)。パターンマッチングはこれを目的として設計されていません(私の理解が誤っている場合は別ですが)。
(2) 古いフォーラムから Discourse への移行タスクにおいて、テキストの微調整を行う際、例えば、コーディングフォーラムで Markdown と互換性があるように古いフォーラムの特殊文字を調整したり、レガシーフォーラムの再帰的 BB コードを調整したりする際に、最後の 1000 件の投稿(データベース全体ではなく)を再構築することが有効です。
B. A よりもさらに柔軟に(比較演算子を指定)
rake posts:rebake_incremental['topic_id', '>=', 34567] # topic_id が 34567 以上の場合に再構築
rake posts:rebake_incremental['post_id', '<', 364123] # post_id が 364123 未満の場合に再構築
汎用的な形式:
rake posts:rebake_incremental[target, operator, id]
ここで:
- target は topic_id または post_id
- operator は算術比較演算子
- id は整数で、topic_id または post_id
注記:移行タスクは、特に元のフォーラムから Discourse への投稿のテキストとエンコーディングにおいて、正しい結果を得るために多くの反復を必要とすることがよくあります。非 Markdown ベースのフォーラムで使用できる多くの文字は、Markdown 処理フォーラムに移行すると問題を引き起こす可能性があります。上記のように再構築プロセスをより制御可能にすることは、その解決に役立つでしょう。