Wiki 图片自动上传系统实施计划
For agentic workers: REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 构建一个 Node.js CLI 工具,实现 Wiki 图片自动上传到 File Browser 并更新 Markdown 中的链接
Architecture: 使用 Node.js 创建独立 CLI 工具(位于 .image-upload/ 目录),通过 File Browser API 上传图片,解析 Markdown 文件提取图片引用,替换为远程 URL。采用模块化设计:API 客户端、Markdown 解析器、链接替换器、上传协调器。
Tech Stack: Node.js, Axios, Chalk, Commander, Glob, Inquirer, Ora, Crypto-js
文件结构
wiki-documents/
├── .image-upload/ # 图片上传工具独立目录(新建)
│ ├── package.json # 独立的依赖配置(新建)
│ ├── scripts/
│ │ ├── test-api.js # API 验证脚本(新建)
│ │ └── upload-images.js # 主 CLI 工具(新建)
│ ├── lib/
│ │ ├── api-client.js # File Browser API 封装(新建)
│ │ ├── markdown-parser.js # Markdown 文件解析(新建)
│ │ ├── image-uploader.js # 图片上传逻辑(新建)
│ │ └── link-replacer.js # 链接替换逻辑(新建)
│ ├── test/
│ │ └── fixtures/
│ │ ├── sample.png # 测试图片(新建)
│ │ └── test-article.md # 测试文章(新建)
│ ├── .upload-config.json # 配置文件(新建)
│ └── .upload-cache.json # 上传缓存(新建,git忽略)
└── .gitignore # 修改:添加 .image-upload/ 忽略规则
重要说明:
- 所有开发产出物都在
.image-upload/目录内 - CLI 工具通过相对路径访问父项目的
static/目录 - 不修改主项目的
package.json
Chunk 1: 项目设置和 API 验证
Task 1: 创建 .image-upload 目录和独立 package.json
Files:
-
Create:
.image-upload/package.json -
Step 1: 创建 .image-upload 目录
mkdir -p .image-upload
- Step 2: 创建独立的 package.json
创建 .image-upload/package.json:
{
"name": "wiki-image-upload",
"version": "1.0.0",
"description": "Wiki 图片自动上传工具",
"private": true,
"scripts": {
"test-api": "node scripts/test-api.js",
"upload-images": "node scripts/upload-images.js"
},
"dependencies": {
"axios": "^1.6.0",
"chalk": "^4.1.2",
"commander": "^11.0.0",
"glob": "^10.3.0",
"inquirer": "^8.2.0",
"ora": "^5.4.0",
"crypto-js": "^4.2.0",
"dotenv": "^16.0.0"
}
}
- Step 3: 安装依赖
cd .image-upload && yarn install
Expected: 在 .image-upload/node_modules/ 中安装所有依赖
- Step 4: 提交目录结构
cd .. # 回到项目根目录
git add .image-upload/package.json .image-upload/yarn.lock
git commit -m "feat: 创建独立的图片上传工具目录和配置"