03 技术设计

技术设计:编辑器 Markdown 边界

这是示例知识库,可以自由编辑、体验产品。你可以修改流程图、时序图或代码块。
Markdown 是导入、导出和 AI 生成内容的文本协议。编辑器运行时仍以 DOM block 和 JsonML 为核心,Markdown 只在系统边界转换。

四条链路

场景
转换
导入
`markdownToBlocks`:Markdown → block DOM
导出
`jsonmlToMarkdown`:JsonML → Markdown
AI 建页
模型生成 Markdown → vent 转换 → 创建页面
AI 上下文
页面 JsonML → vent 转换 → Markdown

AI 如何创建页面

sequenceDiagram participant UI as AI Chat participant Go as doodle ChatService participant LLM participant Vent as vent converter participant Page as PageService participant Redis UI->>Go: agent 对话 Go->>LLM: tool_choice=create_page LLM-->>Go: name / parent_id / markdown Go->>Vent: POST /convert/markdown-to-jsonml Vent->>Vent: markdownToBlocks + JsonMLDom.fromHTML Vent-->>Go: JsonML Go->>Page: Create page Go->>Redis: InitPageDocFromJSONML Go-->>UI: page_created
模型只需要生成稳定的 Markdown,不需要理解 DOM、JsonML 或 JSON0 op;服务端继续负责页面归属校验和初始化。
三个关键取舍
  1. 运行时不用 Markdown:DOM block 更适合富文本编辑和协同操作。
  2. 组件保存源数据:图表和白板导出后仍可继续编辑。
  3. 保证语义往返:不追求文本逐字一致,但不能丢失 block 语义。
新增组件时,需要同时检查导入、导出和 Desktop 本地同步;能显示出来,只完成了表达的一半。
把总览图里的「Markdown 文本」改成「我的笔记」