Peringatan
Repositori ini akan mengalami perubahan besar, jadi kami akan menangguhkan PRS.
Baca lebih lanjut: #9045
Orang yang benar -benar serius tentang editor harus membuat kerangka kerja mereka sendiri.
BlockSuite adalah toolkit untuk membangun editor dan aplikasi kolaboratif. Ini mengimplementasikan serangkaian infrastruktur pengeditan konten, komponen UI dan editor secara mandiri.
Anda dapat mempertimbangkan Blocksuite sebagai pustaka komponen UI untuk membangun berbagai editor, berdasarkan kerangka vanilla yang diminimalkan sebagai runtime mereka. Dengan Blocksuite, Anda dapat:
PageEditor : Editor dokumen berbasis blok yang komprehensif, menawarkan kustomisasi dan fleksibilitas yang luas.EdgelessEditor : Editor Grafis dengan Dukungan Render Canvas Opt-In, tetapi juga berbagi kemampuan teks kaya yang sama dengan PageEditor .? Blocksuite saat ini sedang dalam tahap awal, dengan komponen dan kemampuan ekstensi masih di bawah penyempurnaan. Semoga Anda tetap disini, mencobanya, atau berbagi umpan balik Anda!
Blocksuite berasal dari basis pengetahuan affine, dengan tujuan desain termasuk:
Selama pengembangan affine, menjadi jelas bahwa Blocksuite maju melampaui hanya menjadi editor in-house dan berkembang menjadi kerangka kerja yang serbaguna. Itu sebabnya kami memilih untuk open source dan mempertahankan blocksuite secara mandiri.
Dengan editor BlockSuite, Anda dapat secara selektif menggunakan kembali semua fitur pengeditan di Affine:

Dan di bawah tenda, kerangka kerja vanilla blocksuite mendukung:
Untuk mencoba Blocksuite, lihat contoh Mulai Cepat dan mulailah dengan editor preset di @blocksuite/presets .
Hubungan antara blocksuite dan affine mirip dengan antara editor Monako dan vscode, tetapi dengan satu perbedaan utama: blocksuite tidak secara otomatis dihasilkan berdasarkan basis kode affine, tetapi dipertahankan secara independen dengan tumpukan teknologi yang berbeda - penggunaan affine bereaksi sementara blocksuite menggunakan komponen web.
Perbedaan ini telah memimpin blocksuite untuk menetapkan batasan yang jelas berdasarkan filosofi komponen-sentris, memastikan:
Untuk itu, proyek Blocksuite disusun di sekitar paket -paket kunci yang dikategorikan ke dalam dua kelompok: kerangka kerja tanpa kepala dan komponen pengeditan prebuilt.
| Kerangka | |
|---|---|
@blocksuite/store | Lapisan data untuk pemodelan status dokumen kolaboratif. Ini dibangun secara asli di Perpustakaan CRDT YJS, menyalakan semua dokumen Blocksuite dengan kolaborasi waktu nyata bawaan dan kemampuan perjalanan waktu. |
@blocksuite/inline | Komponen teks kaya minimal untuk pengeditan inline. BlockSuite memungkinkan pemecahan konten teks yang kaya dalam node blok yang berbeda menjadi editor inline yang berbeda, membuat konten kompleks dapat disusun dengan mudah. Ini secara signifikan mengurangi kompleksitas yang diperlukan untuk mengimplementasikan fitur pengeditan teks kaya tradisional. |
@blocksuite/block-std | Perpustakaan kerangka kerja-agnostik untuk pemodelan blok yang dapat diedit. Kemampuannya mencakup struktur bidang blok, acara, seleksi, dukungan clipboard, dll. |
| Komponen | |
|---|---|
@blocksuite/blocks | Implementasi blok default untuk menyusun editor preset, termasuk widget milik setiap blok. |
@blocksuite/presets | Komponen plug-and-play yang dapat diedit termasuk editor ( PageEditor / EdgelessEditor ) dan komponen UI tambahan bernama fragmen ( CopilotPanel , DocTitle ...). |
Lihat Building.md untuk instruksi tentang cara membangun dan menguji blocksuite dari sumber.
BlockSuite menerima permintaan tarik di GitHub. Sebelum Anda mulai berkontribusi, pastikan Anda telah membaca dan menerima perjanjian lisensi kontributor kami. Untuk menunjukkan perjanjian Anda, cukup edit file ini dan kirimkan permintaan tarik.
MPL 2.0