Image Publish
Documentsimage-publishImage Publish is an Agent Skill for documents published in the freestylefly/CodexGuide repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
当 CodexGuide 项目图片需要规范命名、右下角文字水印、阿里 OSS 上传、CDN 验证,或替换 Markdown 图片链接时使用。
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/freestylefly/CodexGuide/blob/HEAD/.agents/skills/image-publish/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/image-publish, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
图片发布
本 Skill 仅供 CodexGuide 仓库使用。目标是把插入文档的图片处理成可发布状态:本地规范命名,按需加水印,上传到阿里 OSS,通过 CDN 验证,最后在 Markdown 中引用公开 URL。
步骤
-
首次在本会话使用本 Skill 时,询问用户是否把新图片默认处理为“加水印 + 图床化 + 替换到实际文档/网页”。
- 如果用户同意,本会话后续新图片默认自动执行:规范命名、添加
苍何水印、上传 OSS、验证 CDN、把文档或网页中的引用替换为水印版 CDN URL。 - 如果用户不同意,仅按用户每次明确要求处理。
- 如果用户已经在本会话明确同意过,不要重复询问。 完成标准:本会话的新图片默认处理偏好已明确。
- 如果用户同意,本会话后续新图片默认自动执行:规范命名、添加
-
确认源图片和目标 Markdown。 完成标准:明确源文件、插入位置和图片 alt 文本。
-
规范本地图片文件。
- 指南正文图片默认放在
docs/images/。 - 文件名使用小写 kebab-case,描述图片内容,不使用截图编号。
- 除非用户明确要求转换格式,否则保留原扩展名。 完成标准:最终本地路径稳定,且没有覆盖无关文件。
- 指南正文图片默认放在
-
按偏好或用户要求添加水印。
- Windows 使用
scripts/add-watermark.ps1。 - Linux/macOS 使用
scripts/add-watermark.sh。 - 默认水印文字是
苍何。 - 先生成预览图;用户确认效果前,不替换原图。
- 如果用户已同意默认水印,后续新图片不需要每次重新确认水印。 完成标准:预览图已生成,并完成视觉检查。
- Windows 使用
-
上传到阿里 OSS。
- Windows 使用
scripts/upload-oss-image.ps1。 - Linux/macOS 使用
scripts/upload-oss-image.sh。 - 从
.env.oss.local读取凭据。 - 如果
.env.oss.local缺失,先新建带占位符的.env.oss.local模板,让用户补充后停止本次上传。 - 不打印密钥。
- 优先使用文档中已有的 CDN 形态:
https://cdn.canghecode.com/codexguide/docs/images/<name>。 完成标准:脚本输出对象路径和公开 URL。
- Windows 使用
-
验证 CDN URL。 完成标准:
curl -I返回HTTP/1.1 200 OK,并且Content-Type是图片类型。 -
仅在图片 URL 验证通过后更新 Markdown 或网页。
- 如果用户已同意默认图床化和水印,文档和网页里应引用水印版 CDN URL,而不是本地图片或无水印 URL。 完成标准:目标文件在指定位置包含最终 CDN URL,本地行号检查能看到插入或替换后的内容。
命令
Windows 水印预览:
.\.agents\skills\image-publish\scripts\add-watermark.ps1 `
-InputPath .\docs\images\example.png `
-OutputPath .\docs\images\example-watermarked.png `
-Text "苍何"
Windows OSS 上传:
.\.agents\skills\image-publish\scripts\upload-oss-image.ps1 `
-InputPath .\docs\images\example-watermarked.png `
-PublicName example-watermarked.png
Linux/macOS 水印预览:
.agents/skills/image-publish/scripts/add-watermark.sh \
docs/images/example.png \
docs/images/example-watermarked.png \
"苍何"
Linux/macOS OSS 上传:
.agents/skills/image-publish/scripts/upload-oss-image.sh \
docs/images/example-watermarked.png \
example-watermarked.png
CDN 检查:
curl.exe -I -sS "https://cdn.canghecode.com/codexguide/docs/images/example-watermarked.png"
.env.oss.local 缺失时创建模板:
@"
# Aliyun OSS image hosting config for CodexGuide.
# This file is local-only: `.env.*` is ignored by Git.
ALIYUN_OSS_ACCESS_KEY_ID=
ALIYUN_OSS_ACCESS_KEY_SECRET=
ALIYUN_OSS_BUCKET=
ALIYUN_OSS_ENDPOINT=
ALIYUN_OSS_PUBLIC_BASE_URL=https://cdn.canghecode.com/codexguide
ALIYUN_OSS_OBJECT_PREFIX=codexguide
ALIYUN_OSS_LOCAL_PATHS=docs/images
"@ | Set-Content -Encoding UTF8 .env.oss.local
规则
- 不删除源图片。
- 不在聊天或日志中暴露
.env.oss.local的值。 .env.oss.local缺失时,应创建模板文件让用户补充,不要让用户从零猜配置项。- 如果 OSS 上传失败,只报告明确的 OSS 错误类型,例如
NoSuchBucket,不要输出请求头。 - 如果
.env.oss.local的 public base 已经包含/codexguide,最终 Markdown URL 不要重复拼接。 - 项目默认本地和远端目录都是
docs/images。只有目标文档已有其他 CodexGuide 图片约定时,才覆盖该目录。 - Linux/macOS 上传依赖
curl、openssl、awk和date;水印依赖 ImageMagick 的magick命令。缺少依赖时停止并说明。 - Linux/macOS 中文水印字体渲染不理想时,使用
WATERMARK_FONT指定字体。