makecoder-wiki
通过 `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)` **完整工作流:发布含图片的文档** ```bash # 1. 先上传图片,拿到 URL coder wiki upload <docId> ./diagram.png # 输出:  # 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` 设置