中核となる位置付け
REZICS では、リッチテキストを不透明な表示用マークアップの断片として扱いません。エディターは Portable Text 構造を直接操作するため、段落、見出し、リスト、マーク、リンク、画像、ユニットへの言及、カスタムブロックはすべて検証、変換、安全なレンダリングが可能です。
エディターが生成するコンテンツは、_type、_key、文書バージョンの意味を持つ Block Schema の Portable Text 文書に包まれます。保存時も読み取り時も再検証され、コンパイル時の型だけを信頼しません。
現在できること
- 通常の段落、見出し、引用、箇条書き、番号付きリストを編集する。
- 太字、斜体、リンク、スポイラーなどのスタイルマーク/注釈を適用する。
- 画像とその他の対応ブロックを挿入して検証する。
- ユニットへの言及によって作品、人物、その他のアイデンティティを本文に入れ、表示テキストだけを保存しない。
- スラッシュコマンド/言及の入口で構造化コンテンツを検索して挿入する。
- プロダクトごとに利用可能な機能を制限し、コメント、返信、ウィキでは正当なコンテンツ形態だけを使えるようにする。
- 外部入力を正規化し、未対応のマークと不正な URL を明示的にフォールバックさせる。
Portable Text がもたらすもの
Portable Text は、表示と意味を分けます。リンク先、スポイラーマーク、ユニットへの言及 ID、画像アセットはいずれも検証可能な形を持ちます。レンダラーは、元のコンテンツを書き換えることなく、コンテンツフィードのプレビュー、記事詳細、その他の画面に応じた適切な表示を選べます。
同じコンテンツから、言語を認識した文字数、読書時間、コンテンツ指標も計算でき、ブロックアイデンティティを通じて将来の段落コメントやより細かな履歴を支えます。
CodeMirror 6 と REZICS Markdown
長期的には CodeMirror 6 により一般的なテキスト/コード編集機能を提供し、カスタマイズした Portable Text 構造仕様と REZICS Markdown 構文の間に一対一の意味的関係を保ちます。目標は一度きりのエクスポートではなく、リッチテキストと Markdown を確実に往復させ、リッチテキストとプレーンテキストを自由に切り替えられる編集体験を作ることです。
これは引き続き拡張中です。現在利用できるのは Portable Text のリッチテキストエディターであり、まだ完成していない Markdown の完全な双方向ワークフローではありません。
関係と境界
エディターはコンテンツモデルと同じものではなく、キーボード操作の一つひとつを正式な履歴として記録するものでもありません。投稿などのプロダクトがフィールドと権限を決め、Block Schema が文書を検証し、公開の境界で初めて履歴が追跡可能な改訂を作ります。