11# MindDoc
22
3- Markdown 优先的结构化大纲编辑器,支持思维导图视图,为 Obsidian 打造 。
3+ Markdown 优先的结构化大纲编辑器,支持思维导图视图 —— 同时适配 Obsidian 和 VS Code 。
44
5- 写标准 Markdown,看交互式大纲,切换思维导图——所有数据始终存储在同一个 ` .md ` 文件中。
5+ 写标准 Markdown,看交互式大纲,切换思维导图——所有数据始终存储在同一个 ` .md ` 文件中。原生 LLM 协作:一键将脑图转为结构化提示词,AI 输出回写即节点。
6+
7+ ## 为什么选择 MindDoc
8+
9+ 市面上不乏大纲工具和思维导图软件,但 MindDoc 的设计出发点是解决几个被忽略的痛点:
10+
11+ ** Markdown 即数据源,而非导出格式。** 大多数思维导图工具把 Markdown 当作导入/导出的二等公民——导出的 md 丢失结构、导入后无法双向同步。MindDoc 让 ` .md ` 文件成为唯一的真实数据源,编辑结果直接写回原文件,Git 可追踪、任意编辑器可打开。
12+
13+ ** 为 LLM 协作而生。** ` .mind.md ` 是标准 Markdown,大模型天然就能读懂和生成。通过"复制为 AI 上下文"功能,一键将当前脑图结构转化为结构化提示词,粘贴给 ChatGPT/Claude 即可获得精准的文档整理、思路扩展或内容润色——AI 的输出拖回来直接就是可编辑的节点。
14+
15+ ** 本地优先,数据自有。** 不需要注册账号、不需要云同步、不需要付费订阅。所有数据以纯文本文件存在本地,你可以用任何同步工具(Git、iCloud、Syncthing)自行管理。
16+
17+ ** 拖拽整理 + 键盘高效。** 大纲视图和思维导图视图共享同一套操作模型,拖拽是直观的,键盘是高效的——两者任一视图中的结构调整都会实时反映到另一个视图。
618
719## 特性
820
921** 双视图**
10- - 大纲视图:拖拽排序、键盘快捷键、行内编辑
11- - 思维导图视图:基于 Mind Elixir,支持拖拽重组节点、右键菜单、缩放控制
22+ - 大纲视图:拖拽排序、键盘快捷键、行内编辑、搜索筛选
23+ - 思维导图视图:基于 Mind Elixir,支持拖拽重组、缩放、聚焦
1224- 一键切换,数据实时同步
1325
1426** 往返保真**
@@ -20,70 +32,26 @@ Markdown 优先的结构化大纲编辑器,支持思维导图视图,为 Obsi
2032- 拖拽排序(大纲和脑图均支持)
2133- 行内标题编辑(双击或 F2)
2234- 快捷键:Tab/Shift+Tab(缩进/提升)、Enter(新建兄弟节点)、Delete(删除)、Ctrl+Z/Y(撤销/重做)
23- - 任务复选框切换(null → 未选 → 已选 → null)
24- - 节点详情面板:编辑备注,查看代码块/引用等附属内容
25-
26- ** 思维导图增强**
27- - 右键菜单(添加子节点、删除、编辑等)
28- - 节点 "+" 按钮快速创建子节点
29- - Ctrl+滚轮缩放、百分比显示、滑块控制
30- - 可配置展开方向(左右/上下/右侧/左侧)
31-
32- ** 搜索筛选**
33- - Ctrl+F 按标题搜索节点
34- - 实时筛选,匹配关键词高亮
35- - 祖先节点保持可见,不丢失上下文
36-
37- ** 嵌入块**
38- - 在任意 Obsidian 笔记中通过代码块嵌入 MindDoc 视图
39- - 可配置:视图模式、高度、最大深度、初始折叠状态
40- - 只读展示,支持视图切换和刷新
41-
42- ```` markdown
43- ``` minddoc
44- file: [[我的大纲.mind.md]]
45- mode: switchable
46- height: 450
47- default: outline
48- ```
49- ````
35+ - 任务复选框切换
36+ - 节点详情面板:编辑备注,查看附属内容
5037
5138** 导入导出**
5239- 导入:OPML(幕布/WorkFlowy)、FreeMind(.mm)
5340- 导出:OPML、JSON、PNG(脑图视图下)
5441- 复制为 AI 上下文(结构化提示词,适合粘贴给 ChatGPT/Claude)
5542
56- ** 主题适配**
57- - 自动跟随 Obsidian 亮色/暗色主题
58- - 脑图配色从 Obsidian CSS 变量派生
59-
60- ## 安装
61-
62- ### 从 Obsidian 社区插件安装
63-
64- 设置 → 第三方插件 → 浏览 → 搜索 "MindDoc"。
65-
66- ### 手动安装
67-
68- 1 . 从 Release 页面下载 ` main.js ` 、` manifest.json ` 、` styles.css `
69- 2 . 创建文件夹 ` <仓库>/.obsidian/plugins/minddoc/ `
70- 3 . 将三个文件复制进去
71- 4 . 在设置 → 第三方插件中启用 "MindDoc"
72-
73- ## 使用方法
43+ ## 平台支持
7444
75- ### 创建 MindDoc 文件
45+ | 平台 | 包名 | 说明 |
46+ | ------| ------| ------|
47+ | [ Obsidian] ( packages/obsidian/ ) | ` @minddoc/obsidian ` | 社区插件,支持嵌入块、移动端 |
48+ | [ VS Code] ( packages/vscode/ ) | ` vscode-minddoc ` | Custom Editor 扩展,原生撤销/重做集成 |
7649
77- 以下任一方式:
78- - 命令面板:「MindDoc: 创建 MindDoc 文件」
79- - 直接创建 ` .mind.md ` 后缀的文件
80- - 在任意 Markdown 文件的 frontmatter 中添加 ` minddoc: true `
50+ 两个平台共享同一个核心引擎 [ ` @minddoc/core ` ] ( packages/core/ ) 。
8151
82- ### 文件格式
52+ ## 文件格式
8353
84- MindDoc 使用标准 Markdown,详细格式规范见 [ mind.md 格式规范] ( docs/format-spec.md ) 。
85-
86- 简要示例:
54+ MindDoc 使用标准 Markdown。标题成为树的分支,列表成为叶节点:
8755
8856``` markdown
8957---
@@ -101,13 +69,13 @@ heading-depth: 3
10169
10270## 第二阶段
10371
104- - [ ] 开发实现
105- - [x] 测试验证
72+ - 开发实现
73+ - 测试验证
10674```
10775
108- ` heading-depth ` (默认 3)控制标题转列表的分界线。深度 1–N 输出为标题,更深的节点输出为列表项 。
76+ ` heading-depth ` (默认 3)控制标题转列表的分界线。详见 [ 格式规范 ] ( docs/format-spec.md ) 。
10977
110- ### 快捷键
78+ ## 快捷键
11179
11280| 按键 | 功能 |
11381| ------| ------|
@@ -121,74 +89,61 @@ heading-depth: 3
12189| Ctrl+Z | 撤销 |
12290| Ctrl+Shift+Z | 重做 |
12391| Ctrl+F | 搜索 |
124- | Ctrl+滚轮 | 缩放脑图 |
125-
126- ### 命令列表
127-
128- | 命令 | 说明 |
129- | ------| ------|
130- | 创建 MindDoc 文件 | 新建 .mind.md 文件 |
131- | 以 MindDoc 打开当前文件 | 将当前文件以 MindDoc 视图打开 |
132- | 切换视图(大纲 ↔ 脑图) | 在大纲和思维导图间切换 |
133- | 展开全部节点 | 展开所有折叠的节点 |
134- | 折叠全部节点 | 折叠所有节点 |
135- | 导入 OPML 文件 | 从 OPML 导入(支持幕布) |
136- | 导入 FreeMind 文件 | 从 .mm 文件导入 |
137- | 导出为 OPML | 导出为 OPML 格式 |
138- | 导出为 JSON | 导出树结构为 JSON |
139- | 导出为 PNG | 导出脑图为 PNG 图片 |
140- | 复制为 AI 上下文 | 复制结构化内容用于 AI 对话 |
141-
142- ## 设置项
143-
144- | 设置 | 默认值 | 说明 |
145- | ------| --------| ------|
146- | 默认视图 | 大纲 | 打开文件时的默认视图 |
147- | 默认标题深度 | 3 | 标题最大层级,超过后转为列表项 |
148- | 自动保存延迟 | 300ms | 编辑后写入文件的防抖延迟 |
149- | 大纲字体大小 | 14px | 大纲视图字体大小 |
150- | 显示备注预览 | 开启 | 在节点标题旁显示 note 首行 |
151- | 脑图方向 | 左右展开 | 思维导图展开方向 |
152- | 虚拟滚动 | 开启 | 大文件自动启用虚拟滚动 |
153- | 虚拟滚动阈值 | 200 | 节点数超过此值时启用 |
154- | 嵌入块默认高度 | 400px | 嵌入块默认显示高度 |
15592
15693## 开发
15794
15895``` bash
159- npm install
160- npm run dev # 监听模式
161- npm run build # 生产构建
162- npm test # 运行测试(125 个)
163- npm run typecheck # TypeScript 类型检查
96+ pnpm install # 安装依赖
97+ pnpm build # 构建所有包
98+ pnpm test # 运行核心引擎测试(125 个测试)
99+ pnpm typecheck # 全包类型检查
164100```
165101
166102### 项目结构
167103
168104```
169- src/
170- core/ # 纯逻辑层(解析器、序列化器、操作、撤销、哈希)
171- views/ # Preact 组件(大纲、脑图、嵌入块)
172- components/ # 子组件(OutlineNode、DetailPanel、SearchBar 等)
173- bridge/ # Mind Elixir 集成(数据转换 + 主题适配)
174- importers/ # OPML、FreeMind 导入器
175- exporters/ # OPML、JSON、图片导出器
176- commands/ # AI 命令(复制为 AI 上下文)
177- settings/ # 插件设置
178- utils/ # 工具函数
179- tests/ # Vitest 测试套件(9 个文件,125 个测试)
180- examples/ # 示例 .mind.md 文件
181- docs/ # 文档(格式规范等)
105+ packages/
106+ core/ # 共享核心引擎(解析器、序列化器、操作、撤销、导入导出)
107+ obsidian/ # Obsidian 插件
108+ vscode/ # VS Code 扩展
109+ docs/
110+ format-spec.md # .mind.md 格式规范
111+ 快速上手.md # 用户快速入门
112+ 功能指南.md # 完整功能文档
113+ 进阶技巧.md # 进阶使用技巧
114+ examples/ # 示例 .mind.md 文件
182115```
183116
184117### 技术栈
185118
186- - TypeScript 5.4(严格模式,ES2022)
187- - Preact + @preact/signals (UI 渲染)
188- - unified/remark(Markdown 解析,含 GFM 和数学公式支持)
189- - Mind Elixir v4(思维导图渲染)
190- - esbuild(打包构建)
191- - Vitest(单元测试)
119+ - ** 工程** :pnpm workspaces monorepo、TypeScript 5(严格模式)
120+ - ** 核心** :unified/remark(Markdown 解析)、tsup(库打包)
121+ - ** UI** :Preact + @preact/signals 、Mind Elixir v4(思维导图)
122+ - ** 构建** :esbuild(Obsidian 插件 + VSCode 扩展双目标)
123+ - ** 测试** :Vitest
124+
125+ ### 包开发
126+
127+ ``` bash
128+ # 开发 Obsidian 插件(监听模式)
129+ pnpm --filter @minddoc/obsidian dev
130+
131+ # 开发 VS Code 扩展(监听模式)
132+ pnpm --filter vscode-minddoc dev
133+
134+ # 只构建核心包
135+ pnpm --filter @minddoc/core build
136+
137+ # 运行测试
138+ pnpm --filter @minddoc/core test
139+ ```
140+
141+ ## 文档
142+
143+ - [ 快速上手] ( docs/快速上手.md ) — 5 分钟入门
144+ - [ 功能指南] ( docs/功能指南.md ) — 完整功能文档
145+ - [ 进阶技巧] ( docs/进阶技巧.md ) — 高效使用方法
146+ - [ 格式规范] ( docs/format-spec.md ) — .mind.md 文件格式详解
192147
193148## 许可证
194149
0 commit comments