- 难度
- 较难
- 适合
- 进阶
- 主要语言
- TypeScript
- GitHub
- ★ 45.7k
- 许可证
- AGPL-3.0
- 快照日期
- 2026年8月9日
先判断要不要学
这个项目值得拆什么?
SiYuan 是隐私优先的个人知识管理系统,以内容块、双向链接、所见即所得 Markdown、数据库视图和本地工作空间为核心。仓库由 Go kernel 与 TypeScript 前端组成,并向 Electron、Web、移动和导出渲染生成不同 bundle。官方 AGENTS.md 给出了高价值架构地图。
- 01
块树、引用、索引和编辑交互展示了成熟内容模型。
- 02
前端通过 HTTP/WebSocket 与 Go kernel 协作,边界清楚可学。
- 03
同一 Protyle 渲染能力服务编辑、预览与导出,适合学习核心能力复用。
可以学什么
不只是看代码,而是找到产品的骨架
- 学产品结构
- 学数据库
- 学界面
- 学完整项目组织
- 学部署
- 学 AI 接入
块树与事务
选一个段落块,跟踪编辑动作、kernel transaction、索引和 WebSocket 推送。
app/src/protyle · app/src/util/fetch.ts · kernel/model核心渲染跨平台复用
对比 app/desktop/mobile/export 四种 bundle,理解 Protyle 如何在不同环境提供富内容。
app/webpack.config.js · app/src/protyle · app/stage工作空间数据所有权
从 .sy JSON、assets、storage 与备份提示理解本地数据边界。
README.md · kernel/model · kernel/cli/cmd三段学习路径
从理解、修改到做出你的版本
0130 分钟先跑通
建立 kernel/UI 双层地图
- 读 README Architecture 与 AGENTS.md
- 标出 kernel/model 和 app/src/protyle
- 找到 fetch/WebSocket 边界
完成标志:一张块编辑数据流图。
022 小时动手改
阅读一个纯 UI 编辑交互
- 选工具栏或面包屑切片
- 追踪事件到 kernel 请求
- 记录撤销与重做影响
- 阅读相关渲染代码
完成标志:一份跨层交互笔记。
031 天做变体
做一个简化本地块编辑器
- 仅支持段落、标题与双向引用
- 以 JSON 块树持久化
- 实现撤销与反向引用索引
- 测试循环引用、并发编辑和损坏文件恢复
完成标志:一个能说清块模型与数据恢复边界的本地原型。
评分解释
每一分都要说清楚为什么
可复刻性10 / 25
多端编辑器与数据引擎极难整体复刻。
文档与代码清晰度18 / 20
AGENTS.md 与 README 架构导航优秀。
新手学习价值11 / 20
适合切片学习,不适合整项目入门。
产品完整度15 / 15
知识管理功能和多端交付非常成熟。
vibe coding 代表性6 / 10
可学 AI 如何在成熟仓库小步工作。
活跃度5 / 5
高频发布与活跃维护。
新颖性5 / 5
块编辑、本地数据与多端渲染组合突出。