これまでのところ、次の技術的なプロトタイプがあります。
1- https://wordpress.github.io/gutenberg/tinymce-per-block/
2- https://wordpress.github.io/gutenberg/tinymce-single/ (単一のTinyMCE、制御されていない、文法なし、HTML解析)
tinymce.getContent
を呼び出している間に文法コメントを追加できる場合があります(ここに他の技術的なプロトタイプを自由に追加してください)
この問題を作成しているので、各アプローチの長所と短所を比較して、実装するアプローチを決定するのに役立てることができます。
これらの2つのプロトタイプについての私の気持ちは次のとおりです。
長所:
短所:
長所:
短所
この実験的なプロトタイプhttps://github.com/WordPress/gutenberg/pull/113に基づいて、TinyMCEをラッパーとして使用し、状態の変化に基づいてコンテンツを再レンダリングする混合アプローチに取り組みました。 いくつかの調査の後、このアプローチはDraftJSまたはProseMirrorを再作成しようとしているように感じます。 そして、TinyMCEを使用する正しい方法ではないと思います。
このチケットを作成していただきありがとうございます。
比較するときは、#3についても考える必要があります。これは、選択するアプローチに依存しているように思われるためです。
プロトタイプ2が進むべき道だと思いますが、TinyMCEの作業がはるかに多くなるため、より面倒かもしれませんが、最終的には、おそらく今のところ最善のアプローチになるでしょう。
エディターの外部でブロックを再利用するのは難しいですか?
ブロックタイプとコントロールタイプを定義するためのAPIが、TinyMCE以外で使用するのに十分なデータを提供する限り、これはPrototype2の欠点ではないと思います。 高度にカスタム化されたTinyMCEインスタンスにフィードするために使用されるブロックタイプ/コントロールタイプ定義APIを開発する必要があると思います。 ブロックタイプ/コントロールタイプのデータを使用して、将来的に他の何かをフィードすることもできます。
おそらく口に合わないかもしれませんが、Prototype 2は、WordPressがすでに機能している方法のほとんどを反映しており、TinyMCEは多くのことを実行します。これは、私にとって非常に賢明な前進です。
最も参考になるコメント
これらの2つのプロトタイプについての私の気持ちは次のとおりです。
プロトタイプ1:
長所:
短所:
プロトタイプ2:
長所:
短所
この実験的なプロトタイプhttps://github.com/WordPress/gutenberg/pull/113に基づいて、TinyMCEをラッパーとして使用し、状態の変化に基づいてコンテンツを再レンダリングする混合アプローチに取り組みました。 いくつかの調査の後、このアプローチはDraftJSまたはProseMirrorを再作成しようとしているように感じます。 そして、TinyMCEを使用する正しい方法ではないと思います。