piclist-upload
$
npx mdskill add cat-xierluo/legal-skills/piclist-uploadUpload local images from Markdown files to a cloud storage service and update links automatically.
- Handles updating Markdown content by replacing local image paths with accessible cloud URLs.
- Requires a pre-configured PicList HTTP Server and an active cloud storage backend.
- Determines scope by accepting single files, multiple files, or entire directories for processing.
- Outputs a summary report and modifies the original files in place or provides a dry-run preview.
SKILL.md
.github/skills/piclist-uploadView on GitHub ↗
---
name: piclist-upload
homepage: https://github.com/cat-xierluo/legal-skills
author: 杨卫薪律师(微信ywxlaw)
version: "1.1.1"
description: 通过 PicList HTTP Server 将 Markdown 文件中的本地图片上传到图床,并替换为云端链接。本技能应在用户需要上传 Markdown 中的图片、处理包含本地图片引用的 Markdown、批量处理多个 Markdown 文件或目录、或替换本地路径为云端链接以实现跨设备访问时使用。
license: Complete terms in LICENSE.txt
---
# PicList 图片上传
将 Markdown 文件中的本地图片上传到配置的图床,并将本地路径替换为云端链接。
## 前置条件
- 已安装 PicList 并启用 HTTP Server
- 已在 PicList 中配置图床
**首次配置**: 请参阅 [references/setup.md](references/setup.md) 安装和配置指南。
## 工作流程
### 1. 确定处理范围
- **单个文件**: `file.md`
- **多个文件**: `file1.md file2.md`
- **目录**: 扫描目录中所有 `.md` 文件
- **多个目录**: 递归处理每个目录
### 2. 提取和过滤图片路径
解析 `` 模式:
- 提取相对路径和绝对路径
- **跳过已有 URL**: 忽略 `http://` 和 `https://` 链接
- 保留 alt 文本描述
### 3. 上传和替换
1. 将相对路径解析为绝对路径
2. 验证文件是否存在
3. 通过 PicList HTTP Server 上传
4. 将本地路径替换为云端 URL
5. **删除本地图片文件**(除非使用 `--keep-local`)
6. 直接修改原文件
## 使用方法
### 处理目录(默认删除本地图片)
```bash
scripts/process.sh --in-place docs/
```
直接修改 `docs/` 中的所有 Markdown 文件,上传成功后删除本地图片。
### 处理指定文件(保留本地图片)
```bash
scripts/process.sh --in-place --keep-local README.md docs/guide.md
```
直接修改指定的文件,但保留本地图片不删除。
### 预览模式(不修改文件)
```bash
scripts/process.sh --dry-run README.md
```
查看将要进行的替换,不实际修改文件。
## 命令选项
| 选项 | 说明 |
|------|------|
| `--in-place` | 直接修改原文件 |
| `--keep-local` | 保留本地图片文件(默认删除) |
| `--dry-run` | 预览模式,不修改文件 |
## 响应格式
解析上传返回的 JSON:
```json
{"success":true,"result":["https://example.com/image.png"]}
```
## 统计报告
处理完成后显示:
```markdown
📊 Summary:
Total uploaded: 5
Total skipped: 3
Total failed: 0
```
- **Uploaded**: 成功上传并替换(已删除本地图片)
- **Skipped**: 已是云端 URL(无需操作)
- **Failed**: 上传错误(保留原始路径)
## 错误处理
- **PicList Server 未运行**: 提示启动 PicList 应用
- **文件不存在**: 跳过并显示 ⚠️ 警告,继续处理
- **上传失败**: 保留原始路径,标记 ❌,继续
- **无效 JSON**: 视为上传失败
## 配置
PicList Server 默认地址为 `http://127.0.0.1:36677/upload`。可通过环境变量覆盖:
```bash
export PICLIST_SERVER=http://127.0.0.1:PORT
```
## 支持格式
png, jpg, jpeg, gif, webp, svg, bmp