Gutenberg: さまざまな技術的アプローチを比較する

作成日 2017年02月23日  ·  3コメント  ·  ソース: WordPress/gutenberg

これまでのところ、次の技術的なプロトタイプがあります。

1- https://wordpress.github.io/gutenberg/tinymce-per-block/

  • マルチTinyMCE
  • 制御(状態->レンダリング->イベント->状態->再レンダリング)
  • 状態はオブジェクトとして表されます
  • 文法の使用

2- https://wordpress.github.io/gutenberg/tinymce-single/ (単一のTinyMCE、制御されていない、文法なし、HTML解析)

  • シングルグローバルTinyMCE
  • 制御されていない(状態->レンダリング->イベント-> newState)
  • 状態は、HTML全体を含む単純な文字列です
  • エディター内で文法を使用していませんが、 tinymce.getContentを呼び出している間に文法コメントを追加できる場合があります

(ここに他の技術的なプロトタイプを自由に追加してください)

この問題を作成しているので、各アプローチの長所と短所を比較して、実装するアプローチを決定するのに役立てることができます。

[Type] Question

最も参考になるコメント

これらの2つのプロトタイプについての私の気持ちは次のとおりです。

プロトタイプ1:

長所:

  • エディターコンテキスト外でブロックを使用する方が簡単なようです
  • 私は状態をオブジェクトとして持つことよりも個人的な好みがあります。状態の外部操作(TinyMCEに組み込まれていないアクション)は簡単に実現できるようです。

短所:

  • マルチブロック選択は実現不可能のようです。 Ctrl + Aはブロックごとです。

プロトタイプ2:

長所:

  • マルチブロック選択
  • フルテキストUI感覚を実現しやすく

短所

この実験的なプロトタイプhttps://github.com/WordPress/gutenberg/pull/113に基づいて、TinyMCEをラッパーとして使用し、状態の変化に基づいてコンテンツを再レンダリングする混合アプローチに取り組みました。 いくつかの調査の後、このアプローチはDraftJSまたはProseMirrorを再作成しようとしているように感じます。 そして、TinyMCEを使用する正しい方法ではないと思います。

全てのコメント3件

これらの2つのプロトタイプについての私の気持ちは次のとおりです。

プロトタイプ1:

長所:

  • エディターコンテキスト外でブロックを使用する方が簡単なようです
  • 私は状態をオブジェクトとして持つことよりも個人的な好みがあります。状態の外部操作(TinyMCEに組み込まれていないアクション)は簡単に実現できるようです。

短所:

  • マルチブロック選択は実現不可能のようです。 Ctrl + Aはブロックごとです。

プロトタイプ2:

長所:

  • マルチブロック選択
  • フルテキストUI感覚を実現しやすく

短所

この実験的なプロトタイプhttps://github.com/WordPress/gutenberg/pull/113に基づいて、TinyMCEをラッパーとして使用し、状態の変化に基づいてコンテンツを再レンダリングする混合アプローチに取り組みました。 いくつかの調査の後、このアプローチはDraftJSまたはProseMirrorを再作成しようとしているように感じます。 そして、TinyMCEを使用する正しい方法ではないと思います。

このチケットを作成していただきありがとうございます。

比較するときは、#3についても考える必要があります。これは、選択するアプローチに依存しているように思われるためです。

プロトタイプ2が進むべき道だと思いますが、TinyMCEの作業がはるかに多くなるため、より面倒かもしれませんが、最終的には、おそらく今のところ最善のアプローチになるでしょう。

エディターの外部でブロックを再利用するのは難しいですか?

ブロックタイプとコントロールタイプを定義するためのAPIが、TinyMCE以外で使用するのに十分なデータを提供する限り、これはPrototype2の欠点ではないと思います。 高度にカスタム化されたTinyMCEインスタンスにフィードするために使用されるブロックタイプ/コントロールタイプ定義APIを開発する必要があると思います。 ブロックタイプ/コントロールタイプのデータを使用して、将来的に他の何かをフィードすることもできます。

おそらく口に合わないかもしれませんが、Prototype 2は、WordPressがすでに機能している方法のほとんどを反映しており、TinyMCEは多くのことを実行します。これは、私にとって非常に賢明な前進です。

このページは役に立ちましたか?
0 / 5 - 0 評価