---
name: gitlink-wiki
version: 1.1.0
description: "Wiki 管理：查看、创建、更新、删除 Wiki 页面、质量检查（lint）。当用户需要操作 GitLink Wiki 时触发。"
metadata:
  requires:
    bins: ["gitlink-cli"]
  cliHelp: "gitlink-cli wiki --help"
---

# gitlink-wiki（Wiki 操作）

**CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md)，其中包含认证、权限处理和 API 注意事项。**
**CRITICAL — 所有 Shortcuts 在执行写入/删除操作前，务必先确认用户意图。**
**CRITICAL — GitLink 操作只能用 `gitlink-cli`。禁止用 `gh`（GitHub CLI）操作 GitLink 资源。`gh` 仅适用于 GitHub 平台。**
**注意：`wiki +lint` 当前仅在本地编译版本中可用，需 `go build -o gitlink-cli.exe .` 后使用 `./gitlink-cli.exe`。**

> **前置条件：** 先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md)

## Shortcuts

| Shortcut | 说明 | 需要认证 |
|----------|------|----------|
| `wiki +list` | 列出所有 Wiki 页面 | 否（公开项目） |
| `wiki +view` | 查看 Wiki 页面内容 | 否（公开项目） |
| `wiki +create` | 创建 Wiki 页面，支持 `--dry-run` 预览 | 是 |
| `wiki +update` | 更新 Wiki 页面，支持 `--dry-run` 预览 | 是 |
| `wiki +delete` | 删除 Wiki 页面，支持 `--dry-run` 预览 | 是 |
| `wiki +lint` | 检查 Wiki 页面质量问题（链接、标题、图片、空白页） | 否 |

## 使用示例

```bash
# 列出所有 Wiki 页面
gitlink-cli wiki +list --owner Gitlink --repo forgeplus

# 查看 Wiki 页面内容（自动解码 base64 并输出 content_decoded 字段）
gitlink-cli wiki +view --owner Gitlink --repo forgeplus --title "Home"

# 创建 Wiki 页面（从命令行内容）
gitlink-cli wiki +create --owner myuser --repo myrepo --title "设计文档" --content "# 架构设计\n\n## 概述\n..."

# 创建 Wiki 页面（从文件）
gitlink-cli wiki +create --owner myuser --repo myrepo --title "API 文档" --file ./api-docs.md

# 预览创建操作（不实际执行）
gitlink-cli wiki +create --owner myuser --repo myrepo --title "测试页面" --content "test" --dry-run

# 更新 Wiki 页面（覆盖整个内容）
gitlink-cli wiki +update --owner myuser --repo myrepo --title "设计文档" --cover "# 新内容\n..."

# 更新 Wiki 页面（追加内容）
gitlink-cli wiki +update --owner myuser --repo myrepo --title "设计文档" --add "\n\n## 新增章节\n..."

# 更新 Wiki 页面（从文件追加）
gitlink-cli wiki +update --owner myuser --repo myrepo --title "设计文档" --file ./new-section.md --add

# 重命名 Wiki 页面（--page 指定当前标题，--title 指定新标题）
gitlink-cli wiki +update --owner myuser --repo myrepo --page "旧标题" --title "新标题"

# 预览更新操作
gitlink-cli wiki +update --owner myuser --repo myrepo --title "设计文档" --cover "新内容" --dry-run

# 删除 Wiki 页面
gitlink-cli wiki +delete --owner myuser --repo myrepo --title "废弃页面"

# 预览删除操作
gitlink-cli wiki +delete --owner myuser --repo myrepo --title "废弃页面" --dry-run

# 检查 Wiki 页面质量问题（全部检查）
gitlink-cli wiki +lint --owner myuser --repo myrepo

# 只检查链接和空白页
gitlink-cli wiki +lint --owner myuser --repo myrepo --check links,empty
```

## Wiki 页面内容格式

- Wiki 内容以 **base64** 编码传输，CLI 已自动处理编码/解码
- `wiki +view` 返回结果中包含 `content_decoded` 字段（原始文本内容）
- `--content` 和 `--file` 参数接受原始文本，CLI 会自动 base64 编码后发送

## API 注意事项

- Wiki 使用**独立的 Gateway API**（`https://gateway.gitlink.org.cn/api`），不走主 API
- 所有 Wiki 操作需要先解析 `project_id`（通过主 API 的 `/{owner}/{repo}/detail` 获取）
- `project_id` 会在当前会话中缓存，避免重复请求
- `wiki +update` 的 `--page` 参数用于指定要查找的页面标题（不指定时默认等于 `--title`）
- `wiki +delete` 有容错逻辑：如果删除接口返回错误，会二次验证页面是否已不存在
