首页/新闻资讯/正文详情

BlockSuite 预设完全上手指南:5 行代码集成 PageEditor 和 EdgelessEditor

发布时间:2026/9/26 2:59:09 来源:云帆数科 栏目:资讯中心
BlockSuite 预设完全上手指南:5 行代码集成 PageEditor 和 EdgelessEditor
BlockSuite 预设完全上手指南5 行代码集成 PageEditor 和 EdgelessEditor【免费下载链接】blocksuite Content editing tech stack for the web - BlockSuite is a toolkit for building editors and collaborative applications.项目地址: https://gitcode.com/GitHub_Trending/bl/blocksuite假设你要做一个既能写文档、又能开白板的协作产品从零造轮子至少要做块模型、选区、渲染管线和同步协议。BlockSuite 预设把这部分打包好了装一个blocksuite/presets建一个 Doc5 行代码挂上编辑器Notion 式的 PageEditor 和无限画布的 EdgelessEditor 都能直接跑而且两者共用同一份数据切换视图不丢内容。 一个心智模型两个编辑器只是同一棵块树的两种渲染先抓住一个类比文档是一棵块树编辑器只是渲染这棵树的一种方式。BlockSuite 里的 Doc 是一棵树根节点是affine:page下面挂着画布affine:surface和笔记块affine:note笔记块里再挂段落、列表、表格。PageEditor 把这棵树从上到下渲染成纵向滚动的页面EdgelessEditor 把同一棵树渲染成自由拖动的卡片铺在无限画布上。数据一模一样区别只在用哪套根块和视图来画。图中间就是两边共用的块树。理解了这张图预设部分只剩两个名词BlockSpec一个块的完整包包含数据结构Schema、视图组件View、业务逻辑Service三层再加斜杠菜单、工具条这类可选挂件。Specs 列表一个编辑器到底启用哪些块就是一个数组。PageEditor 用PageEditorBlockSpecsEdgelessEditor 用EdgelessEditorBlockSpecs两份列表的差异就是两种编辑器的全部秘密。先盘家底7 类预设组件各管什么事预设包presets 源码导出的东西不多但每样都有明确分工组件你能拿到什么PageEditor纵向文档编辑直接打字/唤起块菜单标题、多级列表、代码、表格都在EdgelessEditor无限画布缩放、平移、自由拖动笔记块带画框frame和画布自由文本AffineEditorContainer页面/白板一键切换的容器自带文档标题和标签区省去自己拼 TopBar 的活Outline跟随块树实时生成的侧边大纲点击标题跳到对应块doc-title / comment / frame-panel标题、行内评论、画布画框管理都是可直接插入的独立组件AI 聊天块预置的聊天消息列表组件接上自己的模型输出就是 AI 对话界面createEmptyDoc()一次调用拿到带 page 画布 笔记 段落的空文档本地演示不用手写初始化两种编辑器内置的块阵容相同段落、列表、代码、数据库表格、数据视图、分割线、图片、附件、书签外加 Figma、GitHub、YouTube、Loom、HTML、关联文档、同步文档 7 种嵌入块。区别只在根块和画布块用的是哪份 Spec。 5 行代码跑起来一个能用的编辑器一条主线走到底装依赖 → 建文档 → 挂载。第一步装三个包presets 是成品编辑器blocks 提供块定义store 是数据层pnpm add blocksuite/presets blocksuite/blocks blocksuite/store第二步在新页面的入口文件里写这 5 行import blocksuite/presets/themes/affine.css; import { createEmptyDoc, AffineEditorContainer } from blocksuite/presets; const { doc, init } createEmptyDoc(); init(); const editor new AffineEditorContainer(); editor.doc doc; document.body.append(editor);刷新页面就能打字/出斜杠菜单标题、列表、表格随手插。想把视图换成白板把导入和实例化换成EdgelessEditor即可两个视图都要且数据互通就保持用AffineEditorContainer调editor.switchEditor(edgeless)切换。不满足于最小片段的话仓库里 examples 目录 有 React、Vue、Angular、Preact、Svelte、Solid 共 11 个可直接运行的示例覆盖 IndexedDB、SQLite 本地持久化和 WebSocket 实时同步照着改比从零搭快得多。为什么拆成Specs 编辑器两层这个拆分背后是三个明确的设计取舍取舍一功能集用数组声明而不是写死在组件里。因为启用哪些块只是一个列表同一份 Doc 就能派生出页面版、白板版和只读预览版preview规格列表三套渲染。切换视图等于换数组数据零迁移——这就是上一节那张图能成立的原因。取舍二编辑器本体只是薄壳。三种编辑器组件都是 Web Component浏览器原生自定义元素不绑定任何前端框架所以丢进 React、Vue 或纯 HTML 的接法完全相同。想深度定制某个块的长相时做法不是改编辑器而是写一份自己的 BlockSpec 塞进数组里规格清单在 blocks 的 specs 目录 里能看到每种块的结构。取舍三数据层天生为协作准备。Doc 底层基于 YjsCRDT一种允许双方同时写、自动合并冲突的数据结构所以多人实时编辑不是后期加的功能而是换一个数据提供器provider的事。examples 里 IndexedDB、SQLite、WebSocket 三种接法都有现成代码。选页面、选白板还是一键切换附 4 个坑选型看产品形态你的产品选择原因纯长文写作、知识库PageEditor纵向滚动心智最顺焦点管理现成白板、脑暴、无限画布EdgelessEditor缩放平移、自由定位、画框都是内置行为AFFiNE 式文档 白板二合一AffineEditorContainer一份 Doc 切两个视图标题标签区附带实战里容易踩的 4 个坑SSR 会直接抛错。blocksuite/presets在 Node 环境 import 会主动报错同构框架Next.js 等记得把编辑器做成客户端懒加载。只能 import 一次。同一页面里重复引入 presets 会破坏单例检查控制台会给出明确告警出现时优先查打包配置。别漏主题 CSS。第一行的themes/affine.css不是装饰不导入就是无样式裸组件。Doc 没有 root 时编辑器渲染空白。render逻辑里doc.root为空就不输出任何内容所以必须先addBlock或doc.load()完成再挂载顺序反了看到的就是白屏。另外注意页面模式下没有画框和自由文本笔记块在白板模式下会渲染成可拖动卡片——这不是 bug正是两份 Specs 列表的差异所在。下一步git clone https://gitcode.com/GitHub_Trending/bl/blocksuite进 examples 目录跑一个你熟悉的框架再对照 quick-start 指南 把createEmptyDoc()换成你自己的数据源一个属于你自己的编辑器就成形了。【免费下载链接】blocksuite Content editing tech stack for the web - BlockSuite is a toolkit for building editors and collaborative applications.项目地址: https://gitcode.com/GitHub_Trending/bl/blocksuite创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Swift 第三方 DebugCenter功能
Swift 第三方 DebugCenter功能

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络&#xff0… · 2026/9/26 2:59:09

2025护网行动零基础指南:岗位选择、面试技巧与现场实战全攻略
2025护网行动零基础指南:岗位选择、面试技巧与现场实战全攻略

每年一到护网招聘季,我这边消息列表就开始热闹。问得最多的一类问题是:“我是零基础,能不能去护网?护网面试一般问什么?网上说的那些技术名词我真的要全学会吗?”说实话,护网这个圈子信息差很大… · 2026/9/26 2:59:09

小红书数据采集工程化实战:从笔记、评论到图片的爬虫与落库
小红书数据采集工程化实战:从笔记、评论到图片的爬虫与落库

简介:这份资源面向小红书运营者、数据采集开发者与自动化脚本学习者,围绕平台数据采集、爬虫工程、账号养号、内容发布、评论互动与数据分析等场景,提供一套可参考的实践代码与前端工程结构。包内共277个文件,以107个ts脚本、77个… · 2026/9/26 2:59:09

2026年CSP-S初赛真题解析与备考指南
2026年CSP-S初赛真题解析与备考指南

1. 2026年CSP-S初赛整体印象与考点分布1.1 试卷结构与题型变化先说结论:2026年CSP-S初赛的卷面结构,和近三年保持高度一致,依旧是“单选阅读程序完善程序”三大板块。总分100分,其中单项选择题15题共30分,阅读程序题3大… · 2026/9/26 3:35:35

GNN图神经网络核心原理与PyG实战:从消息传递到节点分类
GNN图神经网络核心原理与PyG实战:从消息传递到节点分类

简介:这是一份以图神经网络为核心的完整代码资源,面向具备一定深度学习基础、希望入门或进阶GNN的开发者与研究人员,可用于解决图数据建模、节点分类与嵌入表示学习等问题。资源包为ZIP格式,共323个文件,绝大多数为JSO… · 2026/9/26 3:35:35

Spring Boot 2 + Vue 3实战:智能无人仓库管理系统设计详解
Spring Boot 2 + Vue 3实战:智能无人仓库管理系统设计详解

在仓库管理这片地界摸爬滚打了这么多年,我见过太多从手工台账到Excel表格再到进销存软件的演变史,但说实话,真正能做到"无人"两个字、把人的因素从核心流程里剥离出去的项目,少之又少。手头这个基于 Spring Boot 2 Vue… · 2026/9/26 3:35:29

U8+数据导入实战:从Excel清洗到数据库落地的三层方法论
U8+数据导入实战:从Excel清洗到数据库落地的三层方法论

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 3:35:29

AI-Python机器学习与深度学习核心实战:OpenClaw、Hermes自动化编程配置指南
AI-Python机器学习与深度学习核心实战:OpenClaw、Hermes自动化编程配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 3:35:29

STM32F407 SysTick 中断设计框架
STM32F407 SysTick 中断设计框架

SysTick 是 Cortex-M 内核提供的 24 位向下计数定时器。配置好计数周期后,硬件周期性请求中断,CPU 进入 SysTick_Handler(),我们在其中实现软件计时。1. 设计思路:先确定中断周期,再累计次数以“LED 每隔 1 秒翻转一次… · 2026/9/26 3:35:29

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码