警告
該存儲庫將經歷重大變化,因此我們將中止接受PR。
閱讀更多:#9045
真正認真對待編輯的人應該自己製作自己的框架。
BlockSuite是用於構建編輯和協作應用程序的工具包。它獨立實施了一系列內容編輯基礎架構,UI組件和編輯器。
您可以將BlockSuite作為UI組件庫,用於構建各種編輯器,基於最小化的香草框架作為其運行時。使用Blocksuite,您可以:
PageEditor :全面的基於塊的文檔編輯器,提供廣泛的自定義和靈活性。EdgelessEditor :具有選擇加入畫布渲染支持的圖形編輯器,但也與PageEditor共享相同的豐富文本功能。? Blocksuite目前處於早期階段,其組件和擴展功能仍在改進。希望您可以繼續關注,嘗試或分享您的反饋!
Blocksuite起源於仿射知識庫,其設計目標包括:
在Aggine的發展過程中,很明顯,Blocksuite不僅僅是成為內部編輯者,還發展成為一種多功能框架。這就是為什麼我們選擇獨立開源和維護街區的原因。
使用BlockSuite編輯器,您可以選擇性地重複使用Aggine中的所有編輯功能:

在引擎蓋下,香草隔間框架支持:
要試用BlockSuite,請參閱快速啟動示例,然後以@blocksuite/presets中的預設編輯器開始。
街區和仿射之間的關係與摩納哥編輯器和VScode之間的關係相似,但是有一個主要區別:基於仿射代碼庫會自動生成BlockSuite,而是通過不同的技術堆棧獨立維護,而Affine用途則使用了React React,而Blocksuite使用Web組件。
這種差異導致禁區基於以組分為中心的哲學設定明確的界限,以確保:
為此,BlockSuite項目圍繞圍繞分為兩組的密鑰軟件包結構:無頭框架和預構建的編輯組件。
| 框架 | |
|---|---|
@blocksuite/store | 用於建模協作文檔狀態的數據層。它是在CRDT庫YJS上原產地建造的,它具有內置的實時協作和時間旅行功能,為所有Blocksuite文檔提供動力。 |
@blocksuite/inline | 最小豐富的文本組件,用於內聯編輯。 BlockSuite允許將不同的塊節點中的豐富文本內容插入不同的內聯編輯器中,從而使復雜的內容可以方便地組合。這大大降低了實施傳統的豐富文本編輯功能所需的複雜性。 |
@blocksuite/block-std | 用於建模可編輯塊的框架 - 敏捷庫。它的功能涵蓋了塊字段,事件,選擇,剪貼板支持等的結構。 |
| 成分 | |
|---|---|
@blocksuite/blocks | 用於編寫預設編輯器的默認塊實現,包括屬於每個塊的小部件。 |
@blocksuite/presets | 插件的可編輯組件,包括編輯器( PageEditor / EdgelessEditor )和名為Fragments ( CopilotPanel , DocTitle ...)的輔助UI組件。 |
有關如何從源頭構建和測試街區的說明,請參見building.md。
BlockSuite接受GitHub上的拉請求。在開始貢獻之前,請確保您已閱讀並接受了我們的貢獻許可協議。要指示您的協議,只需編輯此文件並提交拉動請求即可。
MPL 2.0