警告
このリポジトリは大きな変更を受けるため、PRSの受け入れを一時停止します。
続きを読む:#9045
編集者に真剣に取り組んでいる人は、独自のフレームワークを作成する必要があります。
BlockSuiteは、編集者と共同アプリケーションを構築するためのツールキットです。インフラストラクチャ、UIコンポーネント、編集者を独立して編集する一連のコンテンツを実装します。
BlockSuiteは、最小化されたバニラフレームワークに合わせてランタイムとして基づいて、さまざまな編集者を構築するためのUIコンポーネントライブラリと見なすことができます。 BlockSuiteを使用すると、次のことができます。
PageEditor :包括的なブロックベースのドキュメントエディター。広範なカスタマイズと柔軟性を提供します。EdgelessEditor :オプトインキャンバスレンダリングサポートを備えたグラフィックスエディターですが、 PageEditorと同じリッチテキスト機能も共有しています。? BlockSuiteは現在、初期段階にあり、コンポーネントと拡張機能はまだ改良性があります。お楽しみに、試してみる、またはフィードバックを共有できることを願っています!
BlockSuiteは、アフィンナレッジベースに由来し、次のようなデザインの目標があります。
アフィンの開発中に、ブロックスイートが単に社内編集者であることを超えて進歩し、多目的なフレームワークに進化していることが明らかになりました。そのため、ブロックスイートを独立してオープンソースと維持することを選択しました。
BlockSuiteエディターを使用すると、すべての編集機能をAffineで選択的に再利用できます。

そして、ボンネットの下で、バニラブロックスイートフレームワークがサポートしています。
BlockSuiteを試すには、クイックスタートの例を参照して、 @blocksuite/presetsのプリセットエディターから始めます。
BlockSuiteとAffineの関係は、Monaco EditorとVSCodeの関係に似ていますが、1つの大きな違いがあります。BlockSuiteはアフィンコードベースに基づいて自動的に生成されませんが、異なる技術スタックで独立して維持されます。
この違いにより、BlockSuiteはコンポーネント中心の哲学に基づいて明確な境界を設定するようになり、次のことを保証しました。
そのため、ブロックスイートプロジェクトは、ヘッドレスフレームワークと事前に構築された編集コンポーネントの2つのグループに分類される主要パッケージの周りに構成されています。
| フレームワーク | |
|---|---|
@blocksuite/store | 共同ドキュメント状態をモデル化するためのデータレイヤー。これは、CRDTライブラリYJSの上にネイティブに構築されており、リアルタイムのコラボレーションとタイムトラベル機能が組み込まれたすべてのブロックスイートドキュメントに電力を供給しています。 |
@blocksuite/inline | インライン編集用の最小リッチテキストコンポーネント。 BlockSuiteを使用すると、さまざまなブロックノードのリッチテキストコンテンツをさまざまなインラインエディターに分割できるようになり、複雑なコンテンツが便利に構成可能になります。これにより、従来の豊富なテキスト編集機能を実装するために必要な複雑さが大幅に削減されます。 |
@blocksuite/block-std | 編集可能なブロックをモデル化するためのフレームワークと存在するライブラリ。その機能は、ブロックフィールド、イベント、選択、クリップボードサポートなどの構造をカバーしています。 |
| コンポーネント | |
|---|---|
@blocksuite/blocks | 各ブロックに属するウィジェットを含む、プリセットエディターを構成するためのデフォルトのブロック実装。 |
@blocksuite/presets | 編集者( PageEditor / EdgelessEditor )およびFragmentsという名前の補助UIコンポーネント( CopilotPanel 、 DocTitle ...)を含むプラグアンドプレイの編集可能なコンポーネント。 |
ソースからブロックスイートを構築およびテストする方法については、building.mdを参照してください。
BlockSuiteは、GitHubでプルリクエストを受け入れます。貢献を開始する前に、貢献者ライセンス契約を読んで受け入れたことを確認してください。契約を示すには、このファイルを編集してプルリクエストを送信するだけです。
MPL 2.0