Wordgard: ProseMirrorの作者による新しいセマンティック・リッチテキスト・エディタ

Wordgard: ProseMirrorの作者による新しいセマンティック・リッチテキスト・エディタ

Wordgardは、構造化されたブラウザ内リッチテキスト・エディタを構築するために設計されたオープンソースのJavaScriptライブラリです。ProseMirrorの作者であるMarijn Haverbekeによって作成されたWordgardは、自由形式のHTMLエディタを提供するのではなく、スキーマを介してドキュメント構造を精密に制御できるフレームワークを提供します。

コア・アーキテクチャと機能

Wordgardはセマンティック・エディタ・システムとして構築されており、これは生のHTML表現よりもコンテンツの構造を優先することを意味します。このアプローチにより、開発者は厳格なドキュメントの整合性を維持するカスタマイズされたエディタを作成できます。

スキーマベースのドキュメント制御

Wordgardは、ドキュメントの正確な構造を定義するためにスキーマを使用します。これにより、開発者はカスタムドキュメント要素を作成し、コンテンツが特定のフォーマットに準拠することを保証できるため、自由形式のエディタでよく発生する任意の入れ子構造や無効なHTMLを防ぐことができます。

多用途なプログラミング・インターフェース

作者が「Deluxe API」と呼ぶ、汎用性と多用途性を備えた機能をライブラリは備えています。このAPIは、標準的な機能を超えた深いカスタマイズを必要とする、複雑で要求の厳しいエディタの基盤として機能することを意図しています。

モジュール式拡張システム

ほとんどのエディタ機能は拡張機能(extensions)として実装されています。このモジュール性は、デフォルトの実装が要件を満たさない場合に、開発者が特定の動作を置き換える、または変更することを可能にします。

高度なコンテンツ・サポート

Wordgardには、いくつかの複雑な編集要件に対するネイティブ・サポートが含まれています:

  • Collaborative Editing: 同一ドキュメントを複数のユーザーが同時に編集できるシステムをサポートし、同時編集をマージするメカニズムを備えています。
  • Structured Content: エディタは、テーブル、ネストされたリスト、キャプション付きの図、その他のカスタム構造を扱うことができます。
  • Right-to-Left (RTL) Support: ライブラリは、インターフェースとコンテンツの両方で方向を認識し、双方向テキストとRTLドキュメントをサポートします。
  • Accessibility: エディタは、キーボードのみのユーザー、スクリーンリーダーのユーザー、およびモバイルデバイス向けに設計されており、UIの国際化サポートも含まれています。

技術的哲学

Wordgardは、明快さとテストのしやすさを向上させるために、関数型プログラミングのスタイルを使用して開発されています。MITライセンスの下でリリースされており、GitHubではなく、セルフホストされたインスタンスである code.haverbeke.berlin でホストされています。

コミュニティの議論と視点

コミュニティのフィードバックは、ProseMirrorからWordgardへの移行に関する期待と懸念の両方を浮き彫りにしています。

ProseMirrorからの移行

ProseMirrorは、ChatGPTやGeminiを含む多くの主要なウェブアプリケーションの基盤となるツールであるため、その将来の開発に関する大きな懸念があります。ユーザーは、WordgardがProseMirrorの概念の進化形であるように見えるものの、直接的なアップグレードパスがないため、切り替えには多大な手動の労力が必要であることを指摘しています。

他のエディタとの比較

開発者は、WordgardがMetaのLexicalのような他の業界標準と比較してどうであるかを疑問視しています。一部のユーザーは、ドキュメントの静的型付け表現とのより良い統合を求めており、これは、開発者がエディタとバリデーションライブラリ(Zodなど)のためにスキーマを二度定義しなければならないことがよくあったProseMirrorでの以前の課題でした。

ユーザー体験とデザイン

技術的なAPIは賞賛されていますが、一部の初期テスターは、「Try」デモにおいて、Android ChromeでのUndo機能の問題や、iOSでのキーボード置換の不具合などの軽微な不具合を報告しています。技術的なAPIは賞賛されていますが、一部の初期テスターは、「Try」デモ「Try」デモにおいて、Android ChromeでのUndo元に戻す機能の問題や、iOSでのキーボード置換の不具合などの軽微な不具合を報告しています。また、ウェブサイトの視覚的デザインとKamila Stankiewiczによるカスタム・アートワークは、その美学的な魅力からコミュニティから広く賞賛されています。

Sources