@fgbg/mdocs 0.8.10 → 0.8.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-skills/changelog/SKILL.md +17 -1
- package/agent-skills/core-concepts-no-account/SKILL.md +25 -26
- package/agent-skills/index/SKILL.md +6 -1
- package/agent-skills/index.json +12 -5
- package/agent-skills/usage-agent-dev-loop/SKILL.md +179 -0
- package/agent-skills/usage-bookmarks/SKILL.md +8 -4
- package/agent-skills/usage-cli-token/SKILL.md +7 -3
- package/agent-skills/usage-domain-members/SKILL.md +14 -16
- package/agent-skills/usage-drafts/SKILL.md +13 -1
- package/agent-skills/usage-flowchart/SKILL.md +25 -5
- package/agent-skills/usage-markdown/SKILL.md +34 -9
- package/agent-skills/usage-my-documents/SKILL.md +5 -3
- package/agent-skills/usage-onboarding-ai/SKILL.md +20 -4
- package/agent-skills/usage-recovery-code/SKILL.md +54 -39
- package/agent-skills/usage-settings/SKILL.md +41 -64
- package/package.json +1 -1
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: changelog
|
|
3
3
|
name: "更新日志"
|
|
4
|
-
description: "-
|
|
4
|
+
description: "- **修复空文档白屏**:空 markdown / Lexical `children: []` 打开时补空段落,避免 editor 全局崩溃"
|
|
5
5
|
keywords: []
|
|
6
6
|
source: changelog.md
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# 更新日志
|
|
10
10
|
|
|
11
|
+
## v0.8.13
|
|
12
|
+
|
|
13
|
+
- **修复空文档白屏**:空 markdown / Lexical `children: []` 打开时补空段落,避免 editor 全局崩溃
|
|
14
|
+
|
|
15
|
+
## v0.8.12
|
|
16
|
+
|
|
17
|
+
- **文档移动**:侧栏可拖拽 Markdown 文档到文件夹 / 同目录文章旁 / 域根;仅创建者后端成功;`POST /api/documents/:id/move`
|
|
18
|
+
- **上手助手入口**:悬浮按钮可按住拖动定位,位置写入本地;支持重置;面板随入口侧移
|
|
19
|
+
- **空文档白屏**:AI/空 markdown 创建的 Lexical `children: []` 会在打开时补空段落,避免编辑器整页崩溃
|
|
20
|
+
- **Agent**:建文/建文件夹/移动后刷新侧栏树;新增 `move_document` 工具
|
|
21
|
+
|
|
22
|
+
## v0.8.11
|
|
23
|
+
|
|
24
|
+
- **上手助手会话**:浮层支持「+」新建会话、历史列表切换并回放;标题取自首条用户消息
|
|
25
|
+
- **手册**:[上手助手(AI)](./usage/onboarding-ai.md) 同步会话管理说明
|
|
26
|
+
|
|
11
27
|
## v0.8.10
|
|
12
28
|
|
|
13
29
|
- **上手助手(AI)**:左下角浮动入口;设置页「AI」配置个人 DeepSeek Key;按访客落盘会话(`tenant/<id>/agent/session`),多轮续聊;回答引用手册页面链接;思考中三点动画;跟随滚动仅在贴底时生效
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: core-concepts-no-account
|
|
3
3
|
name: "无账户身份识别"
|
|
4
|
-
description: "
|
|
4
|
+
description: "早期不做传统用户系统(邮箱注册 / 账号密码那一套),每个访问者通过浏览器获得身份令牌即可开写。目标是零上手成本——打开就能用。"
|
|
5
5
|
keywords: []
|
|
6
6
|
source: core-concepts/no-account.md
|
|
7
7
|
---
|
|
@@ -10,16 +10,18 @@ source: core-concepts/no-account.md
|
|
|
10
10
|
|
|
11
11
|
## 设计意图
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
早期不做传统用户系统(邮箱注册 / 账号密码那一套),每个访问者通过浏览器获得身份令牌即可开写。目标是零上手成本——打开就能用。
|
|
14
|
+
|
|
15
|
+
后来为解决「换设备 / 清 Cookie 认不出人」,在**仍是访客模型**的前提下,增加了可选的登录密码;恢复码则是更早的自助找回手段,现已边缘化。详见 [恢复码与身份找回](../usage/recovery-code.md)。
|
|
14
16
|
|
|
15
17
|
## 身份模型
|
|
16
18
|
|
|
17
19
|
```
|
|
18
|
-
|
|
20
|
+
访客注册(输入昵称,可选设密码)
|
|
19
21
|
│
|
|
20
22
|
├─ 服务器生成 UUID(visitor_id)
|
|
21
23
|
├─ 生成高熵令牌(visitor_token,32 字节随机数 → base64url)
|
|
22
|
-
├─ 服务器只存储 SHA-256(令牌)
|
|
24
|
+
├─ 服务器只存储 SHA-256(令牌)(以及可选的密码哈希)
|
|
23
25
|
└─ 通过 HttpOnly Cookie 将原始令牌下发给浏览器
|
|
24
26
|
|
|
25
27
|
后续请求
|
|
@@ -27,23 +29,31 @@ source: core-concepts/no-account.md
|
|
|
27
29
|
└─ 服务器从 Cookie 读取令牌,验证 SHA-256 匹配 → 识别访客
|
|
28
30
|
```
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
前端**不存储任何认证令牌**,日常鉴权凭据由 HttpOnly Cookie 管理,XSS 无法直接读到令牌。
|
|
31
33
|
|
|
32
34
|
### Cookie 有效期
|
|
33
35
|
|
|
34
|
-
身份 Cookie 默认有效期为 **10
|
|
36
|
+
身份 Cookie 默认有效期为 **10 年**,实践中等同于「长期保持登录」。只要不主动清除浏览器站点数据,同一浏览器上会一直认得你。
|
|
35
37
|
|
|
36
|
-
> 💡
|
|
38
|
+
> 💡 即使服务端重启或重新部署,已有 Cookie 在未过期前依然有效。
|
|
37
39
|
|
|
38
40
|
## 为什么这样做
|
|
39
41
|
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
42
|
+
- **低门槛**:不必先走邮箱验证;起个昵称就能写
|
|
43
|
+
- **令牌不落前端脚本可读存储**:日常身份靠 HttpOnly Cookie
|
|
44
|
+
- **跨端续身份(后来补上)**:设密码后可用「用户名 + 密码」在其他设备登录;未设密码则基本绑在当前浏览器
|
|
45
|
+
|
|
46
|
+
## 跨设备 / Cookie 丢失时
|
|
47
|
+
|
|
48
|
+
推荐顺序:
|
|
43
49
|
|
|
44
|
-
|
|
50
|
+
1. **用户名 + 密码登录**(设置页可管理登录密码)
|
|
51
|
+
2. **恢复码**(早期方案,登录弹窗次要入口;见 [恢复码](../usage/recovery-code.md))
|
|
52
|
+
3. 管理员 **访客迁移**(运维兜底)
|
|
45
53
|
|
|
46
|
-
|
|
54
|
+
### 访客迁移(管理员)
|
|
55
|
+
|
|
56
|
+
若用户既无密码又无可用恢复码,部署方可在服务器上将旧身份合并到新身份:
|
|
47
57
|
|
|
48
58
|
```
|
|
49
59
|
# 推荐:按访客名称迁移(更简单,名称可在侧边栏看到)
|
|
@@ -65,21 +75,10 @@ pnpm mdocs visitor list # 默认只看启用的访客
|
|
|
65
75
|
pnpm mdocs visitor list --all # 看全部(含已禁用的)
|
|
66
76
|
```
|
|
67
77
|
|
|
68
|
-
## 自助恢复
|
|
69
|
-
|
|
70
|
-
除了管理员执行的访客迁移,用户也可以通过**恢复码**自助找回身份:
|
|
71
|
-
|
|
72
|
-
1. 注册时保存系统生成的恢复码(格式如 `ABCD-EFGH-IJKL-MNOP`)
|
|
73
|
-
2. Cookie 丢失后,在注册页点击「已有恢复码?点击找回」
|
|
74
|
-
3. 输入恢复码,系统验证后自动下发新的身份 Cookie
|
|
75
|
-
|
|
76
|
-
恢复码是一次性的,使用后立即失效。可以在设置页随时生成新的恢复码。
|
|
77
|
-
|
|
78
|
-
详见[恢复码与身份找回](../usage/recovery-code.md)。
|
|
79
|
-
|
|
80
78
|
## 设计取舍
|
|
81
79
|
|
|
82
|
-
-
|
|
83
|
-
- **HttpOnly Cookie
|
|
80
|
+
- **放弃重型「用户体系」**换低准入;跨端能力用「可选密码」补齐,而不是一上来就上完整账号平台
|
|
81
|
+
- **HttpOnly Cookie 日常鉴权**:服务端重启不轻易丢当前浏览器会话
|
|
84
82
|
- **可以匿名浏览**:不注册也能看到公开域的公开文档
|
|
83
|
+
- **恢复码**:服务早期 Cookie-only 身份的自助找回;密码普及后降为兼容能力
|
|
85
84
|
|
|
@@ -15,6 +15,12 @@ source: index.md
|
|
|
15
15
|
- [安装与启动](./getting-started/installation.md)
|
|
16
16
|
- [第一个文档](./getting-started/first-kb.md)
|
|
17
17
|
|
|
18
|
+
## AI 与 Agent
|
|
19
|
+
|
|
20
|
+
- [上手助手(AI)](./usage/onboarding-ai.md)——产品向导,答疑不代写
|
|
21
|
+
- [Agent 开发闭环](./usage/agent-dev-loop.md)——CLI + Skills 接入 Cursor / Claude
|
|
22
|
+
- [CLI Token](./usage/cli-token.md)——命令行与 Agent 身份令牌
|
|
23
|
+
|
|
18
24
|
## 核心设计
|
|
19
25
|
|
|
20
26
|
- [域隔离](./core-concepts/domain.md)——团队与个人的逻辑边界
|
|
@@ -24,7 +30,6 @@ source: index.md
|
|
|
24
30
|
## 使用指南
|
|
25
31
|
|
|
26
32
|
- [设置页面概览](./usage/settings.md)——集中配置中心
|
|
27
|
-
- [上手助手(AI)](./usage/onboarding-ai.md)——产品向导,答疑不代写
|
|
28
33
|
- [编辑体验](./usage/markdown.md)——富文本编辑,Markdown 存储
|
|
29
34
|
- [流程图生成](./usage/flowchart.md)——拖拽绘制,嵌入文档
|
|
30
35
|
- [草稿与同步](./usage/drafts.md)——本地优先,按需发布
|
package/agent-skills/index.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
{
|
|
3
3
|
"id": "changelog",
|
|
4
4
|
"name": "更新日志",
|
|
5
|
-
"description": "-
|
|
5
|
+
"description": "- **修复空文档白屏**:空 markdown / Lexical `children: []` 打开时补空段落,避免 editor 全局崩溃",
|
|
6
6
|
"keywords": [],
|
|
7
7
|
"source": "changelog.md"
|
|
8
8
|
},
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
{
|
|
31
31
|
"id": "core-concepts-no-account",
|
|
32
32
|
"name": "无账户身份识别",
|
|
33
|
-
"description": "
|
|
33
|
+
"description": "早期不做传统用户系统(邮箱注册 / 账号密码那一套),每个访问者通过浏览器获得身份令牌即可开写。目标是零上手成本——打开就能用。",
|
|
34
34
|
"keywords": [],
|
|
35
35
|
"source": "core-concepts/no-account.md"
|
|
36
36
|
},
|
|
@@ -83,6 +83,13 @@
|
|
|
83
83
|
"keywords": [],
|
|
84
84
|
"source": "index.md"
|
|
85
85
|
},
|
|
86
|
+
{
|
|
87
|
+
"id": "usage-agent-dev-loop",
|
|
88
|
+
"name": "Agent 开发闭环",
|
|
89
|
+
"description": "mdocs 不只给人在浏览器里写文档,也让 **外部 AI Agent**(Cursor、Claude Code、Codex 等)把知识库嵌进日常工作。",
|
|
90
|
+
"keywords": [],
|
|
91
|
+
"source": "usage/agent-dev-loop.md"
|
|
92
|
+
},
|
|
86
93
|
{
|
|
87
94
|
"id": "usage-bookmarks",
|
|
88
95
|
"name": "收藏功能",
|
|
@@ -93,7 +100,7 @@
|
|
|
93
100
|
{
|
|
94
101
|
"id": "usage-cli-token",
|
|
95
102
|
"name": "CLI Token",
|
|
96
|
-
"description": "CLI Token 是给命令行工具和 AI Agent(如 Claude Code)使用的身份令牌,继承你在 mdocs 中的所有权限。Token 与你的访客身份绑定,创建后可以通过 HTTP API 读写文档。",
|
|
103
|
+
"description": "CLI Token 是给命令行工具和 AI Agent(如 Claude Code、Cursor)使用的身份令牌,继承你在 mdocs 中的所有权限。Token 与你的访客身份绑定,创建后可以通过 HTTP API 读写文档。",
|
|
97
104
|
"keywords": [],
|
|
98
105
|
"source": "usage/cli-token.md"
|
|
99
106
|
},
|
|
@@ -156,7 +163,7 @@
|
|
|
156
163
|
{
|
|
157
164
|
"id": "usage-recovery-code",
|
|
158
165
|
"name": "恢复码与身份找回",
|
|
159
|
-
"description": "
|
|
166
|
+
"description": "> **现状**:跨设备找回身份,优先用 **用户名 + 密码**。恢复码是早期「纯 Cookie 身份」时代的自助方案,现仍可用,但属于兼容能力,新用户不必依赖它。",
|
|
160
167
|
"keywords": [],
|
|
161
168
|
"source": "usage/recovery-code.md"
|
|
162
169
|
},
|
|
@@ -170,7 +177,7 @@
|
|
|
170
177
|
{
|
|
171
178
|
"id": "usage-settings",
|
|
172
179
|
"name": "设置页面",
|
|
173
|
-
"description": "设置页面是 mdocs
|
|
180
|
+
"description": "设置页面是 mdocs 的集中配置中心:身份与密码、收藏与文章、域与成员模板、上手助手、草稿同步等都在这里。",
|
|
174
181
|
"keywords": [],
|
|
175
182
|
"source": "usage/settings.md"
|
|
176
183
|
},
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: usage-agent-dev-loop
|
|
3
|
+
name: "Agent 开发闭环"
|
|
4
|
+
description: "mdocs 不只给人在浏览器里写文档,也让 **外部 AI Agent**(Cursor、Claude Code、Codex 等)把知识库嵌进日常工作。"
|
|
5
|
+
keywords: []
|
|
6
|
+
source: usage/agent-dev-loop.md
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Agent 开发闭环
|
|
10
|
+
|
|
11
|
+
mdocs 不只给人在浏览器里写文档,也让 **外部 AI Agent**(Cursor、Claude Code、Codex 等)把知识库嵌进日常工作。
|
|
12
|
+
|
|
13
|
+
这和产品内的 [上手助手(AI)](./onboarding-ai.md) 是两条路:
|
|
14
|
+
|
|
15
|
+
| | 上手助手 | Agent 开发闭环 |
|
|
16
|
+
|--|----------|----------------|
|
|
17
|
+
| 在哪 | mdocs Web 浮层 | 你的 IDE / Agent 终端 |
|
|
18
|
+
| 干什么 | 答「怎么用 mdocs」 | 读知识库、按契约开发、按需写回文档 |
|
|
19
|
+
| 会不会改正文 | **不会**(不代写) | 会按你的指令经 CLI 读写文档 |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 一次性准备
|
|
24
|
+
|
|
25
|
+
1. 在 mdocs **设置 → 通用** 创建 [CLI Token](./cli-token.md),并:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
export MDOCS_TOKEN="你的 token"
|
|
29
|
+
# 非本机时再设,例如:
|
|
30
|
+
# export MDOCS_SERVER="http://127.0.0.1:4000"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
2. 克隆 CLI + Skills,并分发到你用的 Agent:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git clone https://github.com/xuhuafeifei/mdocs-cli.git ~/.mdocs-cli
|
|
37
|
+
cd ~/.mdocs-cli && ./distribute-skill.sh cursor # 或 claude / 多个 agent
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
会把 **`mdocs-cli`**、**`mdocs-dev`**、**`diagram`** 装到对应 Agent 的 skills 目录。之后在对话里用 `/mdocs-cli`、`/mdocs-dev` 等即可唤起。
|
|
41
|
+
|
|
42
|
+
更细的命令与环境变量见 [CLI Token · CLI 客户端](./cli-token.md#cli-客户端)。
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 最基础:`/mdocs-cli` + 文章 URL
|
|
47
|
+
|
|
48
|
+
**你不必先背命令。** 只要:
|
|
49
|
+
|
|
50
|
+
1. Agent 已加载 **mdocs-cli** skill(例如输入 `/mdocs-cli`,或确保 skill 已分发且会话会加载它)
|
|
51
|
+
2. 环境里有可用的 `MDOCS_TOKEN`(以及必要时的 `MDOCS_SERVER`)
|
|
52
|
+
3. 把 **mdocs 文章的浏览器地址**丢给 Agent,用自然语言说要做什么
|
|
53
|
+
|
|
54
|
+
示例(与真实使用一致):
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
/mdocs-cli
|
|
58
|
+
http://localhost:5173/#/doc/7d78023e-9155-4551-84dc-2dd4e2e44841
|
|
59
|
+
看下这个文章对应目录的所有文章内容
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Agent 会自行:
|
|
63
|
+
|
|
64
|
+
1. 从 URL 里解析 **文档 ID**(`#/doc/<uuid>`)
|
|
65
|
+
2. 按需准备 `~/.mdocs-cli`(clone / 更新;失败时可用本地已有副本继续)
|
|
66
|
+
3. 调用对应子命令(如上例是 `ls <documentId>` 列同级目录)
|
|
67
|
+
4. 用返回的 JSON 回答你
|
|
68
|
+
|
|
69
|
+

|
|
70
|
+
|
|
71
|
+
### 你还可以怎么说
|
|
72
|
+
|
|
73
|
+
| 你想做的事 | 示例说法 |
|
|
74
|
+
|------------|----------|
|
|
75
|
+
| 读这篇 | 「打开这篇 URL,总结要点」 |
|
|
76
|
+
| 看同级目录 | 「这个文章对应目录下有哪些文件」(上图) |
|
|
77
|
+
| 搜知识库 | 「在 mdocs 里搜『草稿』相关」 |
|
|
78
|
+
| 改 / 新建 | 「根据刚才结论,更新这篇」或「在同级建一篇笔记」(需你明确授权写回) |
|
|
79
|
+
|
|
80
|
+
底层命令仍是 `search` / `get` / `ls` / `list` / `create` / `update` 等;对日常使用,**URL + 自然语言** 就够了。
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## `/mdocs-dev`:开发流程(详细)
|
|
85
|
+
|
|
86
|
+
知识库读写用 **mdocs-cli**;**在业务仓库里把需求想清楚、再写代码**,用 **`/mdocs-dev`**。
|
|
87
|
+
|
|
88
|
+
### 什么时候输入 `/mdocs-dev`
|
|
89
|
+
|
|
90
|
+
在 Cursor / Claude 等对话里输入:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
/mdocs-dev
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
或附带一句话说明意图,例如:
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
/mdocs-dev
|
|
100
|
+
我想给设置页加「导出 Markdown」,你先按契约走
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Agent 会按 **mdocs-dev** skill 工作:在项目根维护 **`.mdocs-docs/` 开发契约**,**先对齐设计、经你同意后再改业务代码**。
|
|
104
|
+
|
|
105
|
+
### 契约落在哪
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
<项目根>/.mdocs-docs/
|
|
109
|
+
├── README.md # 总索引
|
|
110
|
+
├── map/ # 机器坐标:关键词 → 文件/符号(不贴大段代码)
|
|
111
|
+
├── diagrams/ # Mermaid 图(用 diagram skill)
|
|
112
|
+
├── decisions/ # ADR:为什么这样设计
|
|
113
|
+
├── bug-fixes/ # 事后修复记录
|
|
114
|
+
└── requirements/<需求名>/
|
|
115
|
+
├── 需求分析.md # 给人:范围、验收
|
|
116
|
+
├── 设计契约.md # 给人审;须「已同意」才能写代码
|
|
117
|
+
└── 代码索引.md # 给机器:本需求入口定位
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 标准步骤(Agent 应遵守)
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
1. 判场景:新需求 / 改老需求 / 整理老业务 / 记 bug 修复
|
|
124
|
+
2. 读 .mdocs-docs/README.md、map/、已有需求夹(防重复建 xxx-v2)
|
|
125
|
+
3. 写或更新「需求分析」「设计契约」
|
|
126
|
+
4. 把设计契约给你看 → 等你明确说「同意」
|
|
127
|
+
5. 未同意:只改契约文档,禁止动业务代码
|
|
128
|
+
6. 同意后:写代码,并更新「代码索引」/ map(入口变了才改)
|
|
129
|
+
7. 你要求「推 mdocs / 落库」时,再用 mdocs-cli 把定稿推到知识库
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 四种场景怎么走
|
|
133
|
+
|
|
134
|
+
| 场景 | Agent 默认做什么 |
|
|
135
|
+
|------|------------------|
|
|
136
|
+
| **新需求** | 新建 `requirements/<短名>/`,先分析再设计 |
|
|
137
|
+
| **改老需求** | **更新原文件夹**,禁止另开 `xxx-v2` |
|
|
138
|
+
| **整理老业务** | 只增厚 `map/`,不写长篇用户故事 |
|
|
139
|
+
| **记 bug 修复** | 写 `bug-fixes/<短标题>-日期.md`(事后记录,不走设计门控) |
|
|
140
|
+
|
|
141
|
+
意图不清时,Agent **只应问一句**:新需求、改老需求、整理老业务,还是记 bug?
|
|
142
|
+
|
|
143
|
+
### 和 `/mdocs-cli` 怎么配合
|
|
144
|
+
|
|
145
|
+
| 阶段 | 用哪个 |
|
|
146
|
+
|------|--------|
|
|
147
|
+
| 查团队知识库里已有设计 / 笔记 | `/mdocs-cli` + URL 或搜索 |
|
|
148
|
+
| 在本仓库落需求与设计、等人审 | `/mdocs-dev` |
|
|
149
|
+
| 画架构 / 时序给人看 | `diagram` skill(图进 `.mdocs-docs/diagrams/`) |
|
|
150
|
+
| 定稿后写进 mdocs | 你明确要求后,再用 **mdocs-cli** `create` / `update` |
|
|
151
|
+
|
|
152
|
+
**默认不推库**:契约先只存在 Git 仓库里;避免 Agent 未经允许改线上文档。
|
|
153
|
+
|
|
154
|
+
### 你这边的检查点
|
|
155
|
+
|
|
156
|
+
- 设计契约状态是否写成 **已同意**(含日期)再让 Agent 动代码
|
|
157
|
+
- 结论是否能指到 `map` / 路径 / decisions,而不是空口承诺
|
|
158
|
+
- 改老需求是否仍在**同一个** `requirements/...` 目录
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Skills 一览
|
|
163
|
+
|
|
164
|
+
| Skill | 作用 |
|
|
165
|
+
|-------|------|
|
|
166
|
+
| **mdocs-cli** | HTTP CLI:搜 / 读 / 列 / 建 / 改文档与目录 |
|
|
167
|
+
| **mdocs-dev** | `.mdocs-docs` 契约 + 设计门控 |
|
|
168
|
+
| **diagram** | Mermaid 图落盘并索引 |
|
|
169
|
+
|
|
170
|
+
仓库:[github.com/xuhuafeifei/mdocs-cli](https://github.com/xuhuafeifei/mdocs-cli)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 和上手助手的知识关系
|
|
175
|
+
|
|
176
|
+
- **本站文档**是给人读的手册真源。
|
|
177
|
+
- mdocs 上手 Agent 构建时会把本站手册打成包内 Skills。
|
|
178
|
+
- 因此:改好本站使用说明,既服务人类读者,也服务产品内 AI。
|
|
179
|
+
|
|
@@ -30,18 +30,22 @@ source: usage/bookmarks.md
|
|
|
30
30
|
有两种方式查看收藏列表:
|
|
31
31
|
|
|
32
32
|
1. **左侧边栏快捷入口**:点击左侧边栏底部访客信息右侧的星标按钮(在退出按钮左侧),弹出「我的收藏」列表
|
|
33
|
-
2. **[设置页面](./settings.md)
|
|
33
|
+
2. **[设置页面](./settings.md)**:侧栏底部访客信息进入设置 → **我的收藏**,可看完整表格并搜索
|
|
34
|
+
|
|
35
|
+

|
|
36
|
+
|
|
37
|
+
表格列包括:标题、域、作者、收藏时间;行内可 **取消收藏**。
|
|
34
38
|
|
|
35
39
|
收藏列表的显示规则:
|
|
36
|
-
-
|
|
37
|
-
- 已删除文档:灰色文字 +
|
|
40
|
+
- 正常文档:可点击打开
|
|
41
|
+
- 已删除文档:灰色文字 + 「已删除」标签,不可打开
|
|
38
42
|
|
|
39
43
|
### 取消收藏
|
|
40
44
|
|
|
41
45
|
有两种方式取消收藏:
|
|
42
46
|
|
|
43
47
|
1. **在文档内**:打开文档,通过右上角 ⋮ 菜单点击「取消收藏」
|
|
44
|
-
2.
|
|
48
|
+
2. **在收藏列表 / 设置页**:点击该项右侧的 **取消收藏**
|
|
45
49
|
|
|
46
50
|
---
|
|
47
51
|
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: usage-cli-token
|
|
3
3
|
name: "CLI Token"
|
|
4
|
-
description: "CLI Token 是给命令行工具和 AI Agent(如 Claude Code)使用的身份令牌,继承你在 mdocs 中的所有权限。Token 与你的访客身份绑定,创建后可以通过 HTTP API 读写文档。"
|
|
4
|
+
description: "CLI Token 是给命令行工具和 AI Agent(如 Claude Code、Cursor)使用的身份令牌,继承你在 mdocs 中的所有权限。Token 与你的访客身份绑定,创建后可以通过 HTTP API 读写文档。"
|
|
5
5
|
keywords: []
|
|
6
6
|
source: usage/cli-token.md
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# CLI Token
|
|
10
10
|
|
|
11
|
-
CLI Token 是给命令行工具和 AI Agent(如 Claude Code)使用的身份令牌,继承你在 mdocs 中的所有权限。Token 与你的访客身份绑定,创建后可以通过 HTTP API 读写文档。
|
|
11
|
+
CLI Token 是给命令行工具和 AI Agent(如 Claude Code、Cursor)使用的身份令牌,继承你在 mdocs 中的所有权限。Token 与你的访客身份绑定,创建后可以通过 HTTP API 读写文档。
|
|
12
|
+
|
|
13
|
+
整体怎么把 CLI / Skills 嵌进开发流程(含 **丢文章 URL**、**`/mdocs-dev`**),见 [Agent 开发闭环](./agent-dev-loop.md)。
|
|
14
|
+
|
|
15
|
+
最基础的 Agent 用法:加载 **mdocs-cli** skill 后,直接把 mdocs 文章链接发给 Agent,用自然语言说明要读目录、读正文或搜索即可,不必先手写 CLI。
|
|
12
16
|
|
|
13
17
|
## 适用场景
|
|
14
18
|
|
|
@@ -18,7 +22,7 @@ CLI Token 是给命令行工具和 AI Agent(如 Claude Code)使用的身份
|
|
|
18
22
|
|
|
19
23
|
## 创建 Token
|
|
20
24
|
|
|
21
|
-
1. 打开 mdocs
|
|
25
|
+
1. 打开 mdocs 的设置页(侧栏底部访客信息),切换到「通用」。
|
|
22
26
|
2. 找到 **CLI Token** 卡片,点击「创建」。
|
|
23
27
|
3. 系统会生成一个新的 Token,**仅在此时展示一次**,请立即复制保存。
|
|
24
28
|
|
|
@@ -17,24 +17,20 @@ source: usage/domain-members.md
|
|
|
17
17
|
|
|
18
18
|
公开域、个人域 **没有**「成员」名单能力:前者对所有人开放入口,后者只有域主一人。
|
|
19
19
|
|
|
20
|
-
## UI 界面
|
|
21
|
-
|
|
22
|
-

|
|
23
|
-
|
|
24
|
-
> 域管理界面显示的域,都是用户可见的域. 公开域,团队成员的受限域,私域 (如果域中存在一篇文章邀请了别的用户,那么该域对那名用户也是可见的,哪怕是私域)
|
|
25
|
-
|
|
26
20
|
## 入口在哪里
|
|
27
21
|
|
|
28
|
-
|
|
22
|
+
点击应用左侧边栏**底部访客信息区**进入 [设置](./settings.md),再选:
|
|
29
23
|
|
|
30
|
-
|
|
24
|
+
| 侧栏项 | 作用 |
|
|
25
|
+
|--------|------|
|
|
26
|
+
| **域管理** | 新建域、按类型筛选、重命名 / 改类型 / 删除;对 **受限域** 维护成员 |
|
|
27
|
+
| **域成员模板** | 维护可复用的访客名单,供成员弹窗套用 |
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
| ---------------------- | ------------------------------------------------------ |
|
|
34
|
-
| **域管理** | 新建域、筛选域类型、对 **受限域** 打开「成员」维护弹窗 |
|
|
35
|
-
| **域成员模板** | 维护可复用的访客 ID 名单(名称 + 一套勾选结果) |
|
|
29
|
+

|
|
36
30
|
|
|
37
|
-
|
|
31
|
+
「活跃访客目录」来自服务端访客列表:一般包含当前未停用的访客,用于成员勾选。
|
|
32
|
+
|
|
33
|
+
域管理列表里能看到的域,都是当前访客可见的域:公开域、你作为成员的受限域、自己的私有域;若某私有域里有文档邀请了你,该域也可能出现在列表中。
|
|
38
34
|
|
|
39
35
|
## 创建受限域与首批成员
|
|
40
36
|
|
|
@@ -82,11 +78,13 @@ source: usage/domain-members.md
|
|
|
82
78
|
|
|
83
79
|
在 **设置 → 域成员模板**:
|
|
84
80
|
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+

|
|
82
|
+
|
|
83
|
+
1. **新建**:按步骤填写名称 → 选择成员 → 保存(例如「核心开发组」)。
|
|
84
|
+
2. **编辑**:在「已保存的模板」中选一条,改名称或人员后保存。
|
|
87
85
|
3. **删除**:删除前会有确认提示。
|
|
88
86
|
|
|
89
|
-
|
|
87
|
+
若尚无模板,页面会提示先创建,再回到「域管理」里对受限域维护成员。
|
|
90
88
|
|
|
91
89
|
模板 **不会** 自动同步到任何域;只是在 **域管理 → 成员** 弹窗里作为「一键追加勾选」的快捷方式。真正生效仍以你在成员弹窗里 **确认保存** 后的结果为准。
|
|
92
90
|
|
|
@@ -63,9 +63,21 @@ Lexical 编辑器(富文本)
|
|
|
63
63
|
|
|
64
64
|
## 发布流程
|
|
65
65
|
|
|
66
|
+
### 设置里的开关
|
|
67
|
+
|
|
68
|
+
打开 **设置 → 保存与发布**:
|
|
69
|
+
|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
| 项 | 说明 |
|
|
73
|
+
|----|------|
|
|
74
|
+
| **自动保存(本地快照)** | 内容持续写入浏览器本地快照,避免编辑丢失(界面展示为始终可用) |
|
|
75
|
+
| **自动同步至云端** | 空闲后把草稿推到服务器;网络不稳或多端冲突时可能暂停同步以保护数据 |
|
|
76
|
+
| **查看未发布草稿** | 列出尚未成功发布到服务端的本地草稿,可点进对应文档继续编辑或手动发布 |
|
|
77
|
+
|
|
66
78
|
### 自动发布(可选)
|
|
67
79
|
|
|
68
|
-
|
|
80
|
+
在设置中开启「自动同步至云端」后:
|
|
69
81
|
|
|
70
82
|
- **每 10 秒**扫描 IndexedDB;
|
|
71
83
|
- 某篇草稿 **超过 30 秒** 没有新的自动保存 → 尝试发布。
|
|
@@ -14,17 +14,31 @@ mdocs 的流程图基于 **Meta2d** 绘图引擎,设计目标是让用户像
|
|
|
14
14
|
|
|
15
15
|
## 插入方式
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### 斜杠菜单(推荐)
|
|
18
|
+
|
|
19
|
+
不必手写 Markdown / 围栏语法。在编辑器中:
|
|
20
|
+
|
|
21
|
+
1. 新起一行(或光标在段落里)输入 `/`
|
|
22
|
+
2. 选择 **Meta2d**,或继续输入 `meta2d` 过滤后回车
|
|
23
|
+
3. 插入后会打开 Meta2d 画布,拖拽绘制即可
|
|
24
|
+
|
|
25
|
+

|
|
26
|
+
|
|
27
|
+
完整菜单项说明见 [编辑体验 · 斜杠菜单](./markdown.md#斜杠菜单推荐快捷入口)。
|
|
28
|
+
|
|
29
|
+
### 其他方式(可选)
|
|
30
|
+
|
|
31
|
+
仍支持在新行输入围栏后回车打开画布(适合熟悉旧习惯的用户):
|
|
18
32
|
|
|
19
33
|
```
|
|
20
34
|
---meta2d---
|
|
21
35
|
```
|
|
22
36
|
|
|
23
|
-
|
|
37
|
+
日常插入请优先用 `/`。
|
|
24
38
|
|
|
25
39
|
## 数据格式
|
|
26
40
|
|
|
27
|
-
|
|
41
|
+
图表在文档中以内嵌块保存(存储形态,**插入时不必手写**):
|
|
28
42
|
|
|
29
43
|
```
|
|
30
44
|
---meta2d---
|
|
@@ -33,7 +47,7 @@ mdocs 的流程图基于 **Meta2d** 绘图引擎,设计目标是让用户像
|
|
|
33
47
|
```
|
|
34
48
|
|
|
35
49
|
编辑器渲染时:
|
|
36
|
-
-
|
|
50
|
+
- 识别到该块 → 调用 canvas2svg 渲染为 SVG 预览
|
|
37
51
|
- 双击块 → 打开 Meta2d 画布编辑器,可拖拽编辑
|
|
38
52
|
- 保存 → 将 JSON 写回文档内容
|
|
39
53
|
|
|
@@ -54,7 +68,13 @@ mdocs 的流程图基于 **Meta2d** 绘图引擎,设计目标是让用户像
|
|
|
54
68
|
|
|
55
69
|
### 使用方式
|
|
56
70
|
|
|
57
|
-
|
|
71
|
+
#### 斜杠菜单(推荐)
|
|
72
|
+
|
|
73
|
+
输入 `/` → 选 **Markmap**(或过滤 `markmap`)插入,无需先背代码块语法。
|
|
74
|
+
|
|
75
|
+
#### 代码块(可选)
|
|
76
|
+
|
|
77
|
+
也可手写 `markmap` 围栏,用 Markdown 标题层级描述树:
|
|
58
78
|
|
|
59
79
|
````markdown
|
|
60
80
|
```markmap
|
|
@@ -56,19 +56,44 @@ node ~/.mdocs-cli/mdocs.mjs create \
|
|
|
56
56
|
|
|
57
57
|
## 编辑器功能
|
|
58
58
|
|
|
59
|
+
编辑时有两条常用入口:**顶部工具栏**(点选)和 **斜杠菜单**(键盘快速插入)。多数插入项两边都能找到。
|
|
60
|
+
|
|
61
|
+
### 斜杠菜单(推荐快捷入口)
|
|
62
|
+
|
|
63
|
+
在编辑器**空行或段落中**输入 `/`,弹出可搜索的插入菜单;继续打关键字(如 `table`、`meta2d`)可过滤,回车或点击插入。
|
|
64
|
+
|
|
65
|
+

|
|
66
|
+
|
|
67
|
+
常见项(右侧为过滤关键字,以当前版本界面为准):
|
|
68
|
+
|
|
69
|
+
| 菜单项 | 关键字示例 | 作用 |
|
|
70
|
+
|--------|------------|------|
|
|
71
|
+
| Heading 3 | `h3` | 三级标题 |
|
|
72
|
+
| Hr | `hr` | 水平分割线 |
|
|
73
|
+
| Table | `table` | 表格 |
|
|
74
|
+
| TeX | `tex` | 数学公式 |
|
|
75
|
+
| File | `file` | 上传并插入附件 |
|
|
76
|
+
| Insert Link | `insert-link` | 超链接 |
|
|
77
|
+
| Inline Code | `insert-codeInline` | 行内代码 |
|
|
78
|
+
| Code Block | `insert-codeBlock` | 代码块(语法高亮) |
|
|
79
|
+
| Meta2d | `meta2d` | 流程图画布,详见 [流程图生成](./flowchart.md) |
|
|
80
|
+
| Markmap | `markmap` | 思维导图,详见 [流程图生成 · Markmap](./flowchart.md#markmap-思维导图) |
|
|
81
|
+
|
|
82
|
+
插入 Meta2d 后一般会自动打开画布。日常请用 `/` 插入;围栏写法仅作可选兼容,见 [流程图生成](./flowchart.md)。
|
|
83
|
+
|
|
59
84
|
### 富文本工具栏
|
|
60
85
|
|
|
61
|
-
|
|
86
|
+
编辑器顶部工具栏覆盖格式与插入(与斜杠菜单互补):
|
|
62
87
|
|
|
63
88
|
- **撤销 / 重做**
|
|
64
|
-
-
|
|
89
|
+
- **文档首尾插行**:在全文最上方或最后一行之后插入空段落
|
|
65
90
|
- **标题**:H1 ~ H3
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
91
|
+
- **文本格式**:加粗、斜体、下划线、删除线、字色 / 高亮
|
|
92
|
+
- **列表与引用**:无序 / 有序 / 待办、引用
|
|
93
|
+
- **插入**:链接、图片、表格、代码、TeX、附件等
|
|
94
|
+
- **大纲**:可一键展开 / 折叠右侧大纲面板
|
|
70
95
|
|
|
71
|
-
|
|
96
|
+
适合鼠标点选改格式;批量插入块级内容时优先用 `/`。
|
|
72
97
|
|
|
73
98
|
### 大纲面板
|
|
74
99
|
|
|
@@ -94,9 +119,9 @@ node ~/.mdocs-cli/mdocs.mjs create \
|
|
|
94
119
|
|
|
95
120
|
### 流程图
|
|
96
121
|
|
|
97
|
-
支持 **Meta2d**
|
|
122
|
+
支持 **Meta2d** 流程图。优先在编辑器输入 `/`,选 **Meta2d** 插入并打开画布;不必手写围栏语法。
|
|
98
123
|
|
|
99
|
-
详见[流程图生成](./flowchart.md)。
|
|
124
|
+
详见 [流程图生成](./flowchart.md)。
|
|
100
125
|
|
|
101
126
|
## 设计取舍
|
|
102
127
|
|
|
@@ -16,19 +16,21 @@ source: usage/my-documents.md
|
|
|
16
16
|
|
|
17
17
|
### 入口:设置页面
|
|
18
18
|
|
|
19
|
-
1.
|
|
19
|
+
1. 点击左侧边栏**底部的访客信息区**(头像 + 昵称)进入 [设置页面](./settings.md)
|
|
20
20
|
2. 在左侧导航中点击 **我的文章**
|
|
21
21
|
|
|
22
|
+

|
|
23
|
+
|
|
22
24
|
列表以表格形式展示:
|
|
23
25
|
|
|
24
26
|
| 列名 | 说明 |
|
|
25
27
|
|-----|------|
|
|
26
|
-
| 标题 |
|
|
28
|
+
| 标题 | 文档显示名称 |
|
|
27
29
|
| 域 | 文档所在的域 |
|
|
28
30
|
| 更新时间 | 文档最后编辑日期 |
|
|
29
31
|
| 创建时间 | 文档创建日期 |
|
|
30
32
|
| 邀请成员 | 快捷管理文档邀请(仅自己创建的文档可见) |
|
|
31
|
-
| 打开 |
|
|
33
|
+
| 打开 | 跳转打开文档 |
|
|
32
34
|
|
|
33
35
|
### 搜索筛选
|
|
34
36
|
|
|
@@ -10,19 +10,32 @@ source: usage/onboarding-ai.md
|
|
|
10
10
|
|
|
11
11
|
mdocs 内置了一个**产品上手向导**,只解答「怎么用 mdocs」(域、草稿、发布、权限等),**不会**帮你写正文或改文档。
|
|
12
12
|
|
|
13
|
+
若你要用 Cursor / Claude 等**外部 Agent** 读写知识库、落开发契约,见 [Agent 开发闭环](./agent-dev-loop.md)。
|
|
14
|
+
|
|
13
15
|
## 入口
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
左下角有圆形 **上手助手** 悬浮按钮(不占用正文区)。点击后打开浮层 **「mdocs 智能助手」**,主编辑区仍保持打开,可边问边写。可**按住拖动**入口到任意位置(本地记住);挪过之后会出现「重置位置」。
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
浮层内:
|
|
22
|
+
|
|
23
|
+
- 顶部:**+** 新建会话、历史列表、关闭
|
|
24
|
+
- 中间:对话与指引内容(可含步骤、表格等)
|
|
25
|
+
- 底部输入框:占位「把你的问题告诉我…」
|
|
26
|
+
- 页脚提示:内容由 AI 生成,仅供参考
|
|
16
27
|
|
|
17
28
|
## 开始使用前:配置模型
|
|
18
29
|
|
|
19
|
-
1. 打开 **设置 → AI
|
|
30
|
+
1. 打开 **设置 → AI**(侧栏底部访客信息进入设置)
|
|
20
31
|
2. 选择模型:`deepseek-v4-flash` 或 `deepseek-v4-pro`
|
|
21
32
|
3. 填写你的 DeepSeek API Key 并保存
|
|
22
33
|
|
|
34
|
+

|
|
35
|
+
|
|
23
36
|
未配置 Key 时,入口可用但无法发送消息,浮层会提示去设置页配置。
|
|
24
37
|
|
|
25
|
-
每人一份配置,仅本人可用;Key
|
|
38
|
+
每人一份配置,仅本人可用;Key 在服务端按访客隔离存储,不会出现在别的访客界面上。配置页可查看配置名称、模型、脱敏后的 Key 与配置 ID;需要改时可点 **编辑**。
|
|
26
39
|
|
|
27
40
|
## 怎么问
|
|
28
41
|
|
|
@@ -38,7 +51,10 @@ mdocs 内置了一个**产品上手向导**,只解答「怎么用 mdocs」(
|
|
|
38
51
|
## 会话
|
|
39
52
|
|
|
40
53
|
- 同一访客的对话会保存在数据目录 `tenant/<访客ID>/agent/session/` 下,刷新或重开浮层仍可续聊。
|
|
41
|
-
-
|
|
54
|
+
- 浮层标题栏 **「+」**:新建空会话并切换过去。
|
|
55
|
+
- **历史图标**:按最近更新列出会话;点击即可切换并回放该会话。
|
|
56
|
+
- 会话标题取自**第一条用户消息**(过长会截断),不是模型摘要。
|
|
57
|
+
- 删除、重命名、按天数自动清理尚未提供。
|
|
42
58
|
|
|
43
59
|
## 明确不会做
|
|
44
60
|
|
|
@@ -1,72 +1,87 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: usage-recovery-code
|
|
3
3
|
name: "恢复码与身份找回"
|
|
4
|
-
description: "
|
|
4
|
+
description: "> **现状**:跨设备找回身份,优先用 **用户名 + 密码**。恢复码是早期「纯 Cookie 身份」时代的自助方案,现仍可用,但属于兼容能力,新用户不必依赖它。"
|
|
5
5
|
keywords: []
|
|
6
6
|
source: usage/recovery-code.md
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# 恢复码与身份找回
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
> **现状**:跨设备找回身份,优先用 **用户名 + 密码**。恢复码是早期「纯 Cookie 身份」时代的自助方案,现仍可用,但属于兼容能力,新用户不必依赖它。
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
## 为什么会有恢复码
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
mdocs 初期刻意不做传统登录系统:不想要注册邮箱、账号密码那一套,希望打开就能写。
|
|
16
|
+
|
|
17
|
+
底层做法是:浏览器里通过 **HttpOnly Cookie** 下发一串随机高熵令牌,服务端只存其哈希,用这份 Cookie 标识「你是谁」。没有单独的账号表登录流程。
|
|
18
|
+
|
|
19
|
+
代价也很直接——**Cookie / 本机身份数据一旦丢了**(清站点数据、换浏览器、换设备),浏览器再也带不上原来的令牌,系统就认不出你还是以前那个人,文档所有权也接不上。
|
|
20
|
+
|
|
21
|
+
恢复码就是为这个问题准备的:**一份由用户自己保存的一次性凭证**,在 Cookie 丢失后,仍能凭码换回同一访客身份和新的 Cookie。
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
## 后来发生了什么
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
后续迭代引入了 **登录密码**(访客名 + 密码,可多设备会话):
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
- 跨浏览器 / 跨设备:用密码登录即可,不必再找恢复码
|
|
28
|
+
- 注册时可设密码;设置页可管理「登录密码」
|
|
29
|
+
- 登录弹窗默认是「用户名 + 密码」;恢复码仍作为次要入口保留
|
|
24
30
|
|
|
25
|
-
|
|
31
|
+
因此恢复码的核心场景被密码覆盖,**功能逐渐被边缘化**,保留是为了兼容早期只靠 Cookie、已发过恢复码的用户。
|
|
26
32
|
|
|
27
|
-
|
|
33
|
+
| 方式 | 适用 |
|
|
34
|
+
|------|------|
|
|
35
|
+
| **用户名 + 密码(推荐)** | 换设备、清 Cookie、日常跨端 |
|
|
36
|
+
| 恢复码 | 从未设密码、或只有早期恢复码可用的情况 |
|
|
37
|
+
| 管理员 `visitor migrate` | 以上都不可用时的运维兜底 |
|
|
28
38
|
|
|
29
|
-
|
|
39
|
+
## 机制摘要(仍可用时)
|
|
30
40
|
|
|
31
|
-
|
|
41
|
+
格式形如:
|
|
32
42
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
4. 系统会生成新的恢复码并展示在页面上
|
|
37
|
-
5. **立即复制保存**,关闭后不再可见
|
|
43
|
+
```
|
|
44
|
+
ABCD-EFGH-IJKL-MNOP
|
|
45
|
+
```
|
|
38
46
|
|
|
39
|
-
|
|
47
|
+
- 注册成功时可能弹出展示(**只此一次**);也可在设置页「通用 → 恢复码」重新生成(旧码立即失效)
|
|
48
|
+
- 服务端只存 SHA-256 哈希,不能再把明文码「查出来」给你看
|
|
49
|
+
- 在登录弹窗切到「恢复码」,输入后换发新的身份 Cookie;**验证成功后该码作废**(一次性)
|
|
40
50
|
|
|
41
|
-
##
|
|
51
|
+
## 怎么用(兼容流程)
|
|
42
52
|
|
|
43
|
-
|
|
53
|
+
### 生成 / 再生成
|
|
44
54
|
|
|
45
|
-
1.
|
|
46
|
-
2.
|
|
47
|
-
3.
|
|
48
|
-
4. 点击 **找回身份**
|
|
49
|
-
5. 系统验证通过后会自动登录,并下发新的身份 Cookie
|
|
55
|
+
1. 打开 **设置 → 通用 → 恢复码**
|
|
56
|
+
2. 点击生成,**立刻复制保存**
|
|
57
|
+
3. 再生成会使旧码失效
|
|
50
58
|
|
|
51
|
-
|
|
59
|
+
### 用恢复码找回
|
|
60
|
+
|
|
61
|
+
1. 无有效 Cookie 时打开站点,进入注册 / 登录弹窗
|
|
62
|
+
2. 切到登录 → **恢复码**
|
|
63
|
+
3. 输入保存的码 → 找回身份
|
|
52
64
|
|
|
53
65
|
## 常见问题
|
|
54
66
|
|
|
55
|
-
###
|
|
67
|
+
### 还需要保存恢复码吗?
|
|
68
|
+
|
|
69
|
+
若已设置登录密码,**日常以密码为准**即可。恢复码可选:仅当你希望多一条不依赖密码的兜底时再保存。
|
|
70
|
+
|
|
71
|
+
### 恢复码丢了怎么办?
|
|
56
72
|
|
|
57
|
-
|
|
73
|
+
- 仍能进当前浏览器会话:去设置页改/设密码,或再生成恢复码
|
|
74
|
+
- 已进不去:有密码就用密码登录;都没有则联系管理员做 `visitor migrate`
|
|
58
75
|
|
|
59
|
-
###
|
|
76
|
+
### 恢复码和 Cookie 令牌有什么区别?
|
|
60
77
|
|
|
61
|
-
|
|
62
|
-
|
|
78
|
+
| | Cookie 身份令牌 | 恢复码 |
|
|
79
|
+
|--|-----------------|--------|
|
|
80
|
+
| 角色 | 日常请求鉴权(浏览器自动带) | Cookie 丢了之后的自助换发 |
|
|
81
|
+
| 存放 | HttpOnly Cookie | 用户自己抄走 |
|
|
82
|
+
| 推荐替代 | — | **登录密码**(跨设备主路径) |
|
|
63
83
|
|
|
64
|
-
###
|
|
84
|
+
### 和「无账户」设计还一致吗?
|
|
65
85
|
|
|
66
|
-
|
|
67
|
-
|--|-------|--------|
|
|
68
|
-
| 用途 | 日常 API 请求鉴权 | 找回身份 |
|
|
69
|
-
| 存储 | HttpOnly Cookie(浏览器自动管理) | 用户自行保存 |
|
|
70
|
-
| 更换 | 可通过恢复码重新获取 | 可在设置页重新生成 |
|
|
71
|
-
| 有效期 | 无限期(直到被覆盖) | 一次性,使用后失效 |
|
|
86
|
+
早期「无账户」指的是不做邮箱注册那套,用 Cookie 访客身份。现在的「访客名 + 可选密码」仍是轻量访客模型,不是完整的企业账号体系;密码解决的是 **同一访客跨端续上身份**,并不否定当初降低门槛的目标。身份模型细节见 [无账户身份识别](../core-concepts/no-account.md)。
|
|
72
87
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: usage-settings
|
|
3
3
|
name: "设置页面"
|
|
4
|
-
description: "设置页面是 mdocs
|
|
4
|
+
description: "设置页面是 mdocs 的集中配置中心:身份与密码、收藏与文章、域与成员模板、上手助手、草稿同步等都在这里。"
|
|
5
5
|
keywords: []
|
|
6
6
|
source: usage/settings.md
|
|
7
7
|
---
|
|
@@ -10,85 +10,74 @@ source: usage/settings.md
|
|
|
10
10
|
|
|
11
11
|
## 功能概述
|
|
12
12
|
|
|
13
|
-
设置页面是 mdocs
|
|
13
|
+
设置页面是 mdocs 的集中配置中心:身份与密码、收藏与文章、域与成员模板、上手助手、草稿同步等都在这里。
|
|
14
14
|
|
|
15
15
|
## 入口
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
点击左侧边栏**底部的访客信息区**(头像 + 昵称那一行),进入设置页面。
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
侧栏底部另有 **返回文档**,可随时回到编辑主界面。
|
|
18
22
|
|
|
19
23
|
---
|
|
20
24
|
|
|
21
25
|
## 左侧导航概览
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
顺序与界面一致:
|
|
24
28
|
|
|
25
29
|
| 导航项 | 功能 |
|
|
26
30
|
|-------|------|
|
|
27
|
-
| [通用](#通用设置) |
|
|
28
|
-
| [
|
|
29
|
-
| [
|
|
30
|
-
| [
|
|
31
|
-
| [
|
|
32
|
-
|
|
|
33
|
-
| [保存与发布](./drafts.md) |
|
|
31
|
+
| [通用](#通用设置) | 语言、自动编辑、CLI Token、恢复码(兼容)、登录密码 |
|
|
32
|
+
| [我的收藏](./bookmarks.md) | 收藏列表、搜索、取消收藏 |
|
|
33
|
+
| [我的文章](./my-documents.md) | 自己创建的文档、邀请成员、打开 |
|
|
34
|
+
| [域管理](./domain-members.md) | 创建 / 筛选 / 重命名 / 改类型 / 删除域;受限域成员 |
|
|
35
|
+
| [域成员模板](./domain-members.md) | 可复用的访客名单 |
|
|
36
|
+
| [AI](./onboarding-ai.md) | 上手助手的 DeepSeek 配置 |
|
|
37
|
+
| [保存与发布](./drafts.md) | 本地快照、自动同步、未发布草稿 |
|
|
34
38
|
|
|
35
39
|
---
|
|
36
40
|
|
|
37
41
|
## 通用设置
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+

|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
### 语言
|
|
42
46
|
|
|
43
|
-
|
|
44
|
-
- **English**:英文界面适配国际团队
|
|
47
|
+
「中」/「EN」即时切换界面语言,无需刷新。
|
|
45
48
|
|
|
46
|
-
|
|
49
|
+
### 自动编辑
|
|
47
50
|
|
|
48
|
-
|
|
51
|
+
开启后,打开文档时自动进入编辑模式;关闭则默认只读,需手动点编辑。
|
|
49
52
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
适合不同的使用习惯:
|
|
53
|
-
- **写作为主**:建议开启,减少一次点击
|
|
54
|
-
- **阅读为主**:建议关闭,避免误触编辑
|
|
53
|
+
- **写作为主**:建议开启
|
|
54
|
+
- **阅读为主**:建议关闭
|
|
55
55
|
|
|
56
56
|
### CLI Token
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
给命令行与外部 Agent 用的身份令牌,继承你的权限。可查看活跃 Token、重置。详情见 [CLI Token](./cli-token.md)。
|
|
59
59
|
|
|
60
|
-
###
|
|
60
|
+
### 恢复码(兼容)
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
Token / Cookie 丢失时的自助找回;引入登录密码后已边缘化。详情见 [恢复码与身份找回](./recovery-code.md)。
|
|
63
63
|
|
|
64
|
-
###
|
|
64
|
+
### 登录密码(推荐跨端)
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
设置至少 4 位密码后,可在其他浏览器或设备用「用户名 + 密码」登录同一访客。
|
|
67
67
|
|
|
68
68
|
---
|
|
69
69
|
|
|
70
|
-
##
|
|
71
|
-
|
|
72
|
-
### 自动同步开关
|
|
70
|
+
## 其他模块一览
|
|
73
71
|
|
|
74
|
-
|
|
72
|
+
各页详情见对应文档;此处仅对照设置内截图入口。
|
|
75
73
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
## 通用操作
|
|
85
|
-
|
|
86
|
-
### 返回文档
|
|
87
|
-
|
|
88
|
-
设置页面的任何位置,都可以通过以下方式回到文档视图:
|
|
89
|
-
|
|
90
|
-
1. 点击左侧导航底部的 **返回文档** 按钮
|
|
91
|
-
2. 点击浏览器后退按钮
|
|
74
|
+
| 模块 | 文档 |
|
|
75
|
+
|------|------|
|
|
76
|
+
| 我的收藏 | [收藏功能](./bookmarks.md) |
|
|
77
|
+
| 我的文章 | [我的文章](./my-documents.md) |
|
|
78
|
+
| 域管理 / 域成员模板 | [受限域成员与名单模板](./domain-members.md) |
|
|
79
|
+
| AI | [上手助手(AI)](./onboarding-ai.md) |
|
|
80
|
+
| 保存与发布 | [草稿与同步](./drafts.md) |
|
|
92
81
|
|
|
93
82
|
---
|
|
94
83
|
|
|
@@ -96,23 +85,11 @@ source: usage/settings.md
|
|
|
96
85
|
|
|
97
86
|
### 设置会保存在哪里?
|
|
98
87
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
以下数据保存在服务器,与访客身份绑定:
|
|
102
|
-
- 收藏列表
|
|
103
|
-
- 域与成员配置
|
|
104
|
-
- 成员模板
|
|
105
|
-
- CLI Token
|
|
106
|
-
- 恢复码
|
|
107
|
-
|
|
108
|
-
### 为什么设置页面看不到某些功能?
|
|
109
|
-
|
|
110
|
-
部分功能有前置条件:
|
|
111
|
-
- **域管理**:需要是域的创建者才能看到重命名、删除等操作
|
|
112
|
-
- **成员模板**:至少创建过一个模板后才有内容
|
|
113
|
-
- **邀请成员**:只有自己创建的文档才显示该按钮
|
|
88
|
+
语言、自动编辑、自动同步等偏好多在浏览器本地;与身份绑定的数据(收藏、域与成员、模板、CLI Token、密码哈希、恢复码哈希、AI 配置)在服务端。
|
|
114
89
|
|
|
115
|
-
###
|
|
90
|
+
### 为什么看不到某些操作?
|
|
116
91
|
|
|
117
|
-
|
|
92
|
+
- **域管理**:重命名 / 删除等通常仅域创建者可见
|
|
93
|
+
- **受限域「成员」**:仅受限域且你是创建者时才有
|
|
94
|
+
- **邀请成员**:仅自己创建的文档显示
|
|
118
95
|
|