私は CKEDitor5 で遊んでいて、カスタム データ プロセッサを作成しようとしました。toData
変換でモデルを使いたいのですが、メソッドがview/DocumentFragment
オブジェクトで呼び出されます。model/DocumentFragment
したがって、私の質問は、それをオブジェクトに変換する方法 (またはデータ プロセッサからモデルにアクセスする方法) です。
更新(コメントに収まらないため):私がやろうとしていること(またはこれまでに行ったこと)をもう少し詳しく説明してみましょう。モデル自体にアクセスする方法を理解しましたが、あなたも指摘したように、それは悪い解決策のように思えました。
DataProcessor
したがって、基本的には、エディター データを BBCode に変換するを作成したいと考えています。
一方ではtoView
、BBCode から HTML への変換が既に実装されていると想定できるため (私の場合)、この方法は単純です。また、HTML から、エディタ データをロードするのは簡単なようです (Markdown プロセッサで使用されるのと同じプロセスによって)。
一方、ビューよりもモデルデータから BBCode に変換する方が簡単なようです。ほとんどの場合、view/DocumentFragment
オブジェクトとビュー ツリーの残りの部分は、DOM または HTML の別の表現にすぎないためです。太字かどうかはあまり気にしません。ノードに属性がある<b>
か<strong>
どうかを知りたいだけです。text
bold
このモデルを使用することで、HTML で使用される表現ではなく、セマンティクスに取り組みたいと考えています。基本的にすべての HTML タグを対応する BBCode にマップするのは少し無意味に思えます (たとえ CKE5 が一貫した HTML タグを提供するのに優れているとしても)。したがって、私の観点からは、モデルを使用する方が理にかなっています。セマンティック表現から「データ形式」への変換は、「データ形式」(ビューツリー、DOM、HTML、モールス信号) に変換してから「表現マップ」を作成するよりも簡単です。
長い間、RTE や WYSIWYG エディターの使用を妨げていたのは、まさに HTML から BBCode への変換の難しさでした。現在、CKE5 には、HTML 形式だけでなく、エディターに表示される HTML からも独立しているため、何にでも簡単に変換できるように思われるモデルがあります (ビュー ツリーについては、正確に HTML であるため、これは言えません)。エディター - 少なくとも contenteditable が生成するものではありませんが、それでも十分ではありません)。
また、Plugin
を設定する を作成しました。DataProcessor
これは、Markdown 機能の種類も同様でした (どこかのドキュメントで)。それは悪い考えですか?
ご回答ありがとうございます。