功能全景
全面了解 GEO Wiki Pro 的所有功能模块,从文档管理到 AI 优化,从安全机制到部署方案。
## 文档管理
### Markdown 原生编辑
GEO Wiki Pro 以 Markdown 作为一等文档格式。每个文档包含 YAML Frontmatter 元数据头,支持以下字段:
- `title`:文档标题
- `slug`:URL 别名(唯一标识符)
- `category`:所属分类
- `tags`:标签数组
- `author`:作者
- `sort`:分类内排序权重
- `description`:搜索结果摘要
### 扩展 Markdown 语法
除了标准 Markdown,还支持以下扩展语法:
| 语法 | 说明 | 示例 |
|------|------|------|
| `:::video[说明](url)` | 视频嵌入 | `:::video[B站视频](https://bilibili.com/video/BVxxx)` |
| `:::model[标题](url)` | 3D 模型下载卡片 | `:::model[电机模型](/media/model.step)` |
| `` | 图片(alt 自动显示为图注) | `` |
| `调用块` | 提示/警告/危险等 Callout | `::: tip\n提示内容\n:::` |
### 分类与标签
- **分类**:树形结构组织文档,每个分类可设置独立的排序、描述和通知横幅
- **标签**:灵活的多标签系统,支持按标签筛选文档
- **排序**:分类内文档支持拖拽排序,排序值自动同步到所有语言版本
### 全文搜索
基于 Fuse.js 的客户端模糊搜索,支持:
- 标题和内容全文匹配
- 按分类筛选
- 即时搜索结果反馈
## 多语言系统
### 内置语言支持
- **中文**(zh):默认语言
- **英文**(en)
- **日文**(jp)
### 共享字段同步
`category`、`tags`、`author`、`sort` 是**共享字段**——更新一个语言版本时,这些字段会自动同步到其他语言版本。无需手动保持一致。
### 级联合并
当请求非默认语言的文档列表时,系统执行**级联合并**:
1. 先读取默认语言(中文)的所有文档作为基础
2. 叠加目标语言的文档
3. 仅存在于一种语言中的文档也会出现在结果中
这意味着即使某个文档只有中文版本,英文和日文用户也能看到它。
## GEO 优化
### 自动 GEO 文件生成
GEO Wiki Pro 会自动生成以下文件,帮助 AI 搜索引擎更好地理解和索引你的内容:
- **llms.txt**:AI 友好的站点概览,包含所有文档的标题、摘要和链接
- **sitemap.xml**:标准 XML 站点地图,帮助搜索引擎发现所有页面
- **结构化数据**:符合 Schema.org 标准的文档元数据
### GEO 分析仪表盘
管理后台提供 GEO 分析页面,展示:
- llms.txt 和 sitemap.xml 的当前状态
- 文档覆盖率统计
- 一键重新生成功能
## 安全机制
### 认证与授权
- **JWT 认证**:基于 httpOnly Cookie 的无状态认证,2 小时自动过期
- **角色控制**:支持 admin、editor、viewer 三种角色
- **密码安全**:bcrypt 加密存储,首次登录强制修改密码
- **CSRF 防护**:Double-Submit Cookie HMAC 机制
### 内容安全
- **CSP 策略**:基于 Nonce 的 Content Security Policy,防止 XSS 攻击
- **速率限制**:全局 300 次/分钟,认证接口 10 次/分钟
- **文件上传安全**:Magic Bytes 类型检测 + 文件名编码
- **输入过滤**:customHeadHtml 自动过滤 `<script>`、`<iframe>` 和事件属性
- **Slug 验证**:正则校验 + 长度限制 + 去重检查
## 协作功能
### 草稿审批流程
1. 编辑者创建草稿(保存到 `drafts/` 目录)
2. 管理员审核草稿内容
3. 审核通过后一键发布到正式文档
### 版本历史
- 每次文档更新自动保存历史版本
- 支持查看和对比历史版本
- 版本历史存储在 `history/` 目录
### 反馈系统
- 读者可在文档页面提交反馈
- 管理员在后台查看和处理反馈
- 支持反馈状态跟踪
## 部署方案
### Docker 部署
```bash
cp .env.example .env # 设置 JWT_SECRET
docker-compose up -d
curl http://localhost:3002/api/v1/health
```
### NAS 部署
支持 UGREEN DXP4800 等 NAS 设备,通过 Docker Compose 部署。
### 宝塔面板部署
支持通过宝塔面板的 PM2 管理器部署,适合国内服务器环境。
## CLI 工具
GEO Wiki Pro 提供功能完整的命令行工具 `geo`,支持:
- 文档 CRUD 操作
- 分类和标签管理
- 配置管理
- 媒体文件上传
- GEO 文件重建
- 全文搜索
```bash
geo doc list --category getting-started
geo doc create --file article.md --category getting-started --sort 3
geo config update --hero-title "Welcome"
```