← 返回 SkillHub

makecoder-wiki

作者 ydong global

通过 `coder wiki` 命令操作 MakeCoder 知识库。覆盖全部 wiki 操作: 浏览集合/文档树、全文搜索、创建/更新/删除/归档/恢复文档、从本地 Markdown 文件发布、 管理集合(创建/更新/归档/导出)、成员与群组权限、历史版本、分享、收藏、置顶、评论、 订阅、事件日志、模板、用户与群组管理、文件操作记录、附件上传(图片/PDF/PPT 等)。 触发词:wiki、coder wiki、知识库、集合、文档、文档管理、发布文档、搜索知识库、上传图片、上传附件。

来源:SKILL.md
# MakeCoder 知识库

通过 `coder wiki` CLI 管理 MakeCoder 知识库,地址为 `https://makecoder.com/wiki`。

## 前置检查:应用团队

在操作知识库前,先确认当前激活的团队是否正确:

```bash
coder team current
```

- 如果输出了团队信息,说明已激活,可以直接进行 wiki 操作。
- 如果没有激活团队(输出为空或提示未设置),则列出可用团队并引导用户选择:

```bash
coder team list
coder team use <teamId>   # 切换到目标团队
```

> **说明**:未激活团队时,wiki 操作会指向公开默认团队。如果用户期望操作的是某个特定团队的知识库,需要先 `use` 切换。也可以在任意命令中加 `--team <teamId>` 临时指定团队。

## 核心概念

- **集合(Collection)**:文档的容器,类似文件夹。每个文档必须属于一个集合。
- **文档(Document)**:Markdown 格式的内容,支持嵌套(父子文档)。
- **UUID**:完整 ID,格式如 `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`,即 `list` 输出表格中 `collectionId` / `docId` 列的值。
- **urlId(短 ID / slug)**:出现在浏览器 URL 中(如 `https://makecoder.com/wiki/doc/<urlId>`),也是一种较短的字符串 ID。

> **⚠️ ID 使用规则(必读)**:
>
> - **UUID**:格式 `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`,是所有命令的标准 ID 参数。`list` 输出表格中 `docId` / `collectionId` 列的值即为 UUID。
> - **urlId(短 ID)**:出现在浏览器 URL 中,如 `https://makecoder.com/wiki/doc/lqK1XcKfIz` 中的 `lqK1XcKfIz`。**仅 `get` 和 `collection-info` 支持 urlId**,其他所有命令(`update`、`delete`、`move`、`publish`、`revisions` 等)传入 urlId 会报接口错误。
> - **从 URL 获取 UUID 的标准流程**:用户粘贴 URL 后,先执行 `coder wiki get <urlId>` 拿到 `ID` 字段(UUID),再用该 UUID 执行后续操作。不要直接把 URL 中的短 ID 传给其他命令。

## 常用工作流

### 从 URL 获取 UUID(必须先做这步)

用户通常会粘贴浏览器 URL,如 `https://makecoder.com/wiki/doc/lqK1XcKfIz`。
短 ID(urlId)只能用于 `get` 和 `collection-info`,其他命令必须用 UUID。

```bash
# 从文档 URL 中提取 urlId,查出 UUID
coder wiki get lqK1XcKfIz
# 输出中的 ID 字段即为 UUID,用于后续所有操作
```

### 浏览知识库

```bash
# 列出所有集合
coder wiki list

# 列出某集合下的根文档
coder wiki list <collectionId>

# 树形展开文档结构,depth=-1 全部展开
coder wiki list <collectionId> -d -1

# 查看文档内容
coder wiki get <docId>

# 子文档列表
coder wiki sub-docs <docId>
```

### 创建和发布文档

```bash
# 直接创建(内联内容)
coder wiki publish <collectionId> "文档标题" "文档正文内容"

# 从 Markdown 文件发布(文件必须包含 H1 标题作为文档标题)
coder wiki publish <collectionId> --file ./doc.md

# 发布为子文档
coder wiki publish <collectionId> --file ./doc.md --parent <parentDocId>

# 发布到指定位置(--index 0 为最前,整数)
coder wiki publish <collectionId> --file ./doc.md --index 0

# 发布到某篇文章之后(推荐)
# --after <docId> 会自动查集合结构,插入到目标文档的下一个位置
# 如果目标文档在子层级,新文档自动成为同级子文档
coder wiki publish <collectionId> --file ./doc.md --after <docId>
```

### 更新文档

```bash
# 内联更新
coder wiki update <docId> "新标题" "新内容"

# 从文件更新(文件需含 H1 标题)
coder wiki update <docId> --file ./doc.md
```

### 搜索

```bash
# 全文搜索
coder wiki search "关键词"

# 按标题搜索
coder wiki search-titles "关键词"
```

### 集合管理

> **注意**:集合的创建、更新、删除操作仅限知识库管理员。普通成员无权执行这些操作,如需新建或调整集合,请告知用户联系管理员处理。

```bash
# 创建集合,描述为可选参数
# permission: read_write(默认)| read | null(仅指定成员)
# icon: 图标名(见 coder wiki icons)或 emoji(如 📚)
# color: 十六进制颜色,如 #4A90E2
# sort-field: 集合内文档的默认排序字段,title(按标题)或 index(按手动排序,默认)
# sort-direction: asc(升序,默认)或 desc(降序)
# index: 集合在侧边栏中的位置(分数索引字符串)
coder wiki create-collection "集合名" ["描述"] [--permission read_write] [--icon <icon>] [--color <color>] [--sort-field title|index] [--sort-direction asc|desc] [--index <fractional-index>]

# 查看所有支持的图标名(可按中文关键词过滤)
coder wiki icons
coder wiki icons 代码
coder wiki icons 安全

# 更新集合属性
coder wiki update-collection <collectionId> --name "新名称" --description "新描述" [--permission <p>] [--color <c>] [--sharing true|false]

# 归档 / 恢复集合
coder wiki archive-collection <collectionId>
coder wiki restore-collection <collectionId>

# 删除集合
coder wiki delete-collection <collectionId>

# 查看集合详情
coder wiki collection-info <collectionId>

# 移动集合位置
coder wiki collection-move <collectionId> <index>

# 导出集合
coder wiki collection-export <collectionId> [--format outline|markdown_zip]

# 导出所有集合
coder wiki export-all [--format outline|markdown_zip]
```

### 集合成员与权限

```bash
# 成员列表
coder wiki collection-members <collectionId> [--query <q>] [--permission <p>]

# 添加 / 移除用户
coder wiki collection-add-user <collectionId> <userId> [--permission <p>]
coder wiki collection-remove-user <collectionId> <userId>

# 添加 / 移除群组
coder wiki collection-add-group <collectionId> <groupId> [--permission <p>]
coder wiki collection-remove-group <collectionId> <groupId>

# 集合群组成员列表
coder wiki collection-group-members <collectionId>
```

### 文档生命周期

```bash
coder wiki move <docId> <collectionId> [parentDocId]   # 移动
coder wiki archive <docId>                              # 归档
coder wiki restore <docId> [--revision <revisionId>] [--collection <collectionId>]  # 恢复
coder wiki delete <docId>                               # 软删除
coder wiki delete <docId> --permanent                   # 永久删除
coder wiki unpublish <docId>                            # 取消发布
coder wiki templatize <docId>                           # 转为模板
coder wiki duplicate <docId> [--title <t>] [--recursive] [--publish] [--collection <id>] [--parent <id>]  # 复制
coder wiki empty-trash                                  # 清空回收站
```

### 文档成员与权限

```bash
coder wiki doc-members <docId>
coder wiki doc-add-user <docId> <userId> [--permission <p>]
coder wiki doc-remove-user <docId> <userId>
coder wiki doc-add-group <docId> <groupId> [--permission <p>]
coder wiki doc-remove-group <docId> <groupId>
coder wiki doc-group-members <docId>
```

### 历史版本

```bash
coder wiki revisions <docId>                  # 列出历史版本
coder wiki revision <revisionId>              # 查看指定版本内容
```

### 文档统计与导出

```bash
coder wiki insights <docId> [--start-date <d>] [--end-date <d>]   # 访问统计
coder wiki export <docId> [--include-children]                      # 导出文档
coder wiki archived [--collection <id>]                             # 已归档文档列表
coder wiki deleted                                                   # 已删除文档列表
```

### 协作功能

```bash
# 收藏
coder wiki stars                        # 查看收藏列表
coder wiki star <docId>                 # 收藏文档
coder wiki star <id> --collection       # 收藏集合
coder wiki unstar <starId>              # 取消收藏

# 置顶
coder wiki pins [collectionId]          # 查看置顶
coder wiki pin <docId> [collectionId]   # 置顶文档
coder wiki unpin <pinId>                # 取消置顶

# 评论
coder wiki comments <docId>             # 查看评论
coder wiki comment <docId> "评论内容"   # 发表评论

# 评论反应
coder wiki reactions <commentId>        # 查看评论反应列表
```

### 分享

```bash
coder wiki shares [--document <id>]                                          # 分享列表
coder wiki share-info <id>                                                   # 查看分享详情
coder wiki share <documentId> [--published] [--include-children]             # 创建分享
coder wiki share-update <id> [--published] [--no-published] [--include-children]  # 更新分享
coder wiki unshare <id>                                                      # 撤销分享
```

### 用户管理

```bash
coder wiki users [--query <q>] [--filter invited|viewers|admins|members|active|all|suspended]
coder wiki user-info <id>
coder wiki invite <email> <name> <role>
coder wiki user-update-role <id> admin|member|viewer
coder wiki user-suspend <id>
coder wiki user-activate <id>
```

### 群组管理

```bash
coder wiki groups [--query <q>]
coder wiki group-info <id>
coder wiki create-group <name>
coder wiki update-group <id> --name <name>
coder wiki delete-group <id>
coder wiki group-members <id>
coder wiki group-add-user <id> <userId>
coder wiki group-remove-user <id> <userId>
```

### 浏览记录与订阅

```bash
coder wiki views <documentId>                              # 文档浏览记录
coder wiki view <documentId>                               # 记录文档浏览
coder wiki subscriptions <documentId>                      # 订阅列表(或 --collection <id>)
coder wiki subscribe <documentId>                          # 订阅文档更新
coder wiki unsubscribe <subscriptionId>                    # 取消订阅
```

### 事件日志

```bash
coder wiki events [--actor <id>] [--document <id>] [--collection <id>] [--type <t>]
```

### 模板

```bash
coder wiki templates [--collection <id>]
coder wiki template-info <id>
coder wiki create-template <collectionId> <title> [--text <t>]
coder wiki update-template <id> [--title <t>] [--text <t>]
coder wiki delete-template <id>
coder wiki duplicate-template <id> [--title <t>]
```

### 文件操作记录

```bash
coder wiki file-ops [--type import|export]
coder wiki file-op-info <id>
coder wiki file-op-delete <id>
```

### 附件管理

上传流程:先调用 `attachments.create` 获取 S3 预签名 URL,再将文件直接 POST 到 S3。支持图片、PDF、PPT、Office 文档、视频等 30+ 格式,自动识别 MIME 类型。

```bash
# 上传本地文件到文档(图片/PDF/PPT/Word/Excel 等)
coder wiki upload <docId> <filePath>

# 从远程 URL 创建附件(服务端下载,无需本地文件)
coder wiki upload-url <docId> <url>

# 列出附件(可按文档过滤)
coder wiki attachments [docId]

# 删除附件
coder wiki delete-attachment <id>
```

上传成功后会输出附件 URL 和对应的 Markdown 语法,可直接粘贴到文档内容中:
- 图片:`![文件名](url)`
- 其他文件:`[文件名](url)`

**完整工作流:发布含图片的文档**

```bash
# 1. 先上传图片,拿到 URL
coder wiki upload <docId> ./diagram.png
# 输出: ![diagram.png](https://makecoder.com/wiki/api/attachments.redirect?id=xxx)

# 2. 在 Markdown 文件中引用该 URL
# 3. 更新文档
coder wiki update <docId> --file ./doc-with-image.md
```

> **注意**:`upload` 命令的 `<docId>` 是附件关联的文档 ID,用于权限控制,不影响上传本身。附件 URL 格式为 `attachments.redirect?id=<uuid>`,访问时服务端会做权限校验并重定向到实际 S3 地址。

### 发现

```bash
coder wiki drafts    # 草稿列表
coder wiki recent    # 最近浏览的文档
```

## 从本地 Markdown 批量发布

当需要将多个本地 `.md` 文件发布到知识库时:

1. 先用 `coder wiki list` 确定目标集合 ID
2. 确保每个 `.md` 文件包含 `# 标题` 作为第一个 H1
3. 逐个执行 `coder wiki publish <collectionId> --file <path>`

## 注意事项

- `--file` 模式要求文件中必须有 H1 标题(`# 标题`),否则会报错
- 文档内容为 Markdown 格式
- `delete` 默认为软删除(可恢复),加 `--permanent` 为永久删除
- 集合的 `--permission null` 表示仅指定成员可访问
- URL 格式:文档 `https://makecoder.com/wiki/doc/<urlId>`,集合 `https://makecoder.com/wiki/collection/<urlId>`(URL 中的 urlId 仅 `get`/`collection-info` 支持,其他命令需用 UUID)
- 任意命令可加 `--team <teamId>` 临时指定团队,优先级高于 `coder team use` 设置