フォームテンプレートを使用している投稿を編集すると、コンポーザーのプレビューで複数行の composer フィールドが1つの連続した行としてレンダリングされます。見出しはその後の文に貼り付いたようになり、リストやBBCodeはリテラルテキストとして表示されます。保存された投稿は正しくレンダリングされますが、プレビューだけが誤っています。
原因: form-template-field/composer.gjs は、ネイティブバリデーションのために各コンポーザーフィールドを非表示の <input type="text"> にミラーリングしています:
<input id={{this.validationInputId}} type="text" name={{@id}} value={{this.composerValue}} ... class="form-template-field__composer-hidden-input" />
コンポーザーの返信(プレビューがレンダリングする対象)は、これらの入力から組み立てられます。HTMLの値サニタイズルールに従い、type="text" の入力では代入時にCR/LFが削除されるため、プレビューが値を見る時点でフィールド値内のすべての改行が失われています。保存時はエディター自体から読み取られるため、保存された生データには影響しません。
再現手順 (2026.9.0-latest): composer フィールドを持つフォームテンプレート → 空行を含むテキストを入力(例:## heading、段落、リスト) → 保存された投稿の編集を開く → 投稿自体は正常に表示されるものの、プレビューでは1行に圧縮されて表示されます。
テーマとして実行している回避策: 非表示の入力を type="hidden" に変更(代入時に改行を保持)、フィールドエディターからすでに圧縮された値を修復、そして返信の再構築のために1つのinputイベントをディスパッチします。これによりプレビューが完全に復元されます。
コア修正に関する注記: type="hidden" はネイティブの required 制約バリデーションをスキップするため、代替コントロールはテキスト入力ではなく、視覚的に非表示の <textarea> にすべきです。