piclist-upload

$npx mdskill add cat-xierluo/legal-skills/piclist-upload

Upload 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. 提取和过滤图片路径

解析 `![alt](path)` 模式:

- 提取相对路径和绝对路径
- **跳过已有 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

More from cat-xierluo/legal-skills

SkillDescription
clawhub-sync将本地开发的 Skills 批量同步到 ClawHub 平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步。本技能应在用户需要将本地 skills 发布到 ClawHub、批量同步技能、检查发布状态时使用。
code2patent从已开发代码项目中提取技术实现证据,围绕候选专利方案生成技术交底书,并以“权利要求布局卡 → 发明专利初稿”两步法继续生成接近可申报版的中国发明专利起草材料。触发场景包括:读取代码仓库后撰写技术交底书、将人工总结的专利方案映射到具体实现、从代码中挖掘可专利技术方案、为专利代理师准备权利要求布局和发明专利初稿。
course-generator从多个文献内容中系统化提取并生成结构化课程。支持 1-100+ 个文献文件,智能识别内容类型(转录/文献/混合),自动进行主题识别、课程大纲生成、总览与章节内容撰写。采用可选模块架构,适应不同类型内容(理论/实践/案例/历史等)。本技能应在用户需要将多个文献整理为系统化课程、生成学习材料、处理转录内容、或从复杂文稿中提取结构化内容时使用。
court-sms本技能应在用户收到法院短信(文书送达、立案通知、开庭提醒等)时使用,自动提取案号、当事人、下载链接,下载文书并归档到对应案件目录。
de-ai-polish检测并去除文章中的AI化表述模式,用于写作润色、文本优化、去AI腔。
douyin-batch-download抖音视频批量下载工具 - 基于 F2 框架实现高效、增量的视频下载功能。支持单个/批量博主下载,自动 Cookie 管理,差量更新机制。本技能应在用户需要批量下载特定博主视频、服务器部署自动化下载、或定期更新视频库时使用。
funasr-transcribe使用本地 FunASR 服务将音频或视频文件转录为带时间戳的 Markdown 文件,支持 mp4、mov、mp3、wav、m4a 等常见格式。本技能应在用户需要语音转文字、会议记录、视频字幕、播客转录时使用。
git-batch-commit智能 Git 批量提交工具。当用户说 "git 提交"、"git commit"、"批量提交"、"拆分提交"、"整理提交" 时使用,或者当用户暂存了多个不同类型的文件需要分开提交时使用。自动将混合的文件修改按类型分类(依赖管理、文档更新、license 文件、配置、源代码等),并创建多个清晰聚焦的提交,使用标准化的提交信息格式。帮助保持清晰的 Git 历史,确保每个提交都有单一、明确的目的。使用英文前缀(docs:、feat:、fix: 等)加中文内容,支持 GitHub 彩色标签显示。
github-star-managerGitHub Star 项目管理工具,支持从内容自动发现并 Star 项目,同步追踪更新,生成可视化 Dashboard
legal-proposal-generator根据案件材料或沟通记录生成各类法律服务文档(诉讼方案、咨询报告、非诉方案、建议书、沟通报告、案件分析摘要等)。本技能应在用户需要将案件材料、咨询记录或沟通内容整理为专业法律文档时使用。