คำเตือน
ที่เก็บนี้จะได้รับการเปลี่ยนแปลงที่สำคัญดังนั้นเราจะระงับการรับ PRS
อ่านเพิ่มเติม: #9045
คนที่จริงจังกับบรรณาธิการควรสร้างกรอบของตัวเอง
Blocksuite เป็นชุดเครื่องมือสำหรับการสร้างบรรณาธิการและแอพพลิเคชั่นการทำงานร่วมกัน มันใช้ชุดโครงสร้างพื้นฐานการแก้ไขเนื้อหาส่วนประกอบ UI และบรรณาธิการอย่างอิสระ
คุณสามารถพิจารณา Blocksuite เป็นไลบรารีส่วนประกอบ UI สำหรับการสร้างบรรณาธิการต่าง ๆ ตามกรอบวานิลลาที่ย่อเล็กสุดเป็นรันไทม์ของพวกเขา ด้วย blocksuite คุณสามารถ:
PageEditor : ตัวแก้ไขเอกสารที่ใช้บล็อกที่ครอบคลุมซึ่งเสนอการปรับแต่งและความยืดหยุ่นอย่างกว้างขวางEdgelessEditor : ตัวแก้ไขกราฟิกที่มีการรองรับการแสดงผลการเรนเดอร์แบบ opt-in canvas แต่ยังแบ่งปันความสามารถในข้อความที่หลากหลายเดียวกันกับ PageEditor- ปัจจุบัน Blocksuite อยู่ในช่วงเริ่มต้นโดยมีส่วนประกอบและความสามารถในการขยายยังคงอยู่ภายใต้การปรับแต่ง หวังว่าคุณจะติดตามความคืบหน้าลองหรือแบ่งปันความคิดเห็นของคุณ!
Blocksuite มีต้นกำเนิดมาจากฐานความรู้ Affine โดยมีเป้าหมายการออกแบบรวมถึง:
ในระหว่างการพัฒนาของเลียนแบบเป็นที่ชัดเจนว่า Blocksuite กำลังก้าวไปข้างหน้าเพียงแค่เป็นบรรณาธิการในบ้านและพัฒนาไปสู่กรอบการทำงานที่หลากหลาย นั่นเป็นเหตุผลที่เราเลือกที่จะโอเพนซอร์สและบำรุงรักษาบล็อกซึต์อย่างอิสระ
ด้วยบรรณาธิการ BlockSuite คุณสามารถเลือกใช้คุณสมบัติการแก้ไขทั้งหมดใน Affine:

และภายใต้ประทุนกรอบการทำงานของ Vanilla Blocksuite สนับสนุน:
หากต้องการลองใช้ blocksuite ให้ดูตัวอย่างเริ่มต้นอย่างรวดเร็วและเริ่มต้นด้วยตัวแก้ไขที่ตั้งไว้ล่วงหน้าใน @blocksuite/presets
ความสัมพันธ์ระหว่าง blocksuite และ affine นั้นคล้ายคลึงกับระหว่างตัวแก้ไขโมนาโกและ VSCODE แต่ด้วยความแตกต่างที่สำคัญอย่างหนึ่ง: blocksuite ไม่ได้สร้างขึ้นโดยอัตโนมัติตาม codebase affine แต่ได้รับการดูแลอย่างอิสระด้วยสแต็กเทคโนโลยีที่แตกต่างกัน
ความแตกต่างนี้ได้นำ blocksuite เพื่อกำหนดขอบเขตที่ชัดเจนตามปรัชญาส่วนประกอบเป็นศูนย์กลางเพื่อให้มั่นใจว่า:
ด้วยเหตุนี้โครงการ BlockSuite จึงมีโครงสร้างรอบแพ็คเกจคีย์ที่แบ่งออกเป็นสองกลุ่ม: กรอบการทำงานแบบไม่มีหัวและส่วนประกอบการแก้ไข prebuilt
| กรอบ | |
|---|---|
@blocksuite/store | เลเยอร์ข้อมูลสำหรับการสร้างแบบจำลองสถานะเอกสารความร่วมมือ มันถูกสร้างขึ้นโดยธรรมชาติบนห้องสมุด CRDT YJS ให้กำลังใจเอกสารบล็อกทั้งหมดทั้งหมดด้วยการทำงานร่วมกันแบบเรียลไทม์ในตัวและความสามารถในการเดินทางข้ามเวลา |
@blocksuite/inline | ส่วนประกอบข้อความที่สมบูรณ์น้อยที่สุดสำหรับการแก้ไขแบบอินไลน์ Blocksuite ช่วยให้แยกเนื้อหาข้อความที่หลากหลายในโหนดบล็อกที่แตกต่างกันลงในตัวแก้ไขแบบอินไลน์ที่แตกต่างกัน สิ่งนี้จะช่วยลดความซับซ้อนที่จำเป็นในการใช้คุณสมบัติการแก้ไขข้อความที่หลากหลายแบบดั้งเดิม |
@blocksuite/block-std | ห้องสมุดเฟรมเวิร์ก-อ้อยสำหรับการสร้างแบบจำลองบล็อกที่แก้ไขได้ ความสามารถของมันครอบคลุมโครงสร้างของฟิลด์บล็อกเหตุการณ์การเลือกการสนับสนุนคลิปบอร์ด ฯลฯ |
| ส่วนประกอบ | |
|---|---|
@blocksuite/blocks | การใช้งานบล็อกเริ่มต้นสำหรับการเขียนตัวแก้ไขที่ตั้งไว้ล่วงหน้ารวมถึงวิดเจ็ตที่เป็นของแต่ละบล็อก |
@blocksuite/presets | ส่วนประกอบที่แก้ไขได้แบบปลั๊กและเล่นรวมถึง บรรณาธิการ ( PageEditor / EdgelessEditor ) และส่วนประกอบ UI เสริมชื่อ Fragments ( CopilotPanel , DocTitle ... ) |
ดู Building.md สำหรับคำแนะนำเกี่ยวกับวิธีการสร้างและทดสอบบล็อกซึท์จากแหล่งที่มา
Blocksuite ยอมรับคำขอดึงบน GitHub ก่อนที่คุณจะเริ่มมีส่วนร่วมโปรดตรวจสอบให้แน่ใจว่าคุณได้อ่านและยอมรับข้อตกลงใบอนุญาตผู้สนับสนุนของเรา เพื่อระบุข้อตกลงของคุณเพียงแก้ไขไฟล์นี้และส่งคำขอดึง
MPL 2.0