upload-images 默认行为
本文说明 scripts/upload-images.js
的新默认检测策略,旨在减少误处理大量历史内容的风险。
默认行为
- 当不传入目录参数时(直接运行
npm run upload-images
或node scripts/upload-images.js
),脚本只会处理位于本地 Git 更改集合中的 Markdown 所在目录: - 未暂存的更改(unstaged)
- 已暂存的更改(staged)
- 已提交但尚未推送到上游的更改(committed but not pushed,需存在上游分支)
- 仅匹配
content/zh
或content/en
下,且文件名为index.md
或_index.md
的 markdown 文件。
为什么这样设计
在你批量修改或迁移大量文章时,基于时间或全仓扫描会导致脚本对大量目录执行处理,产生大量无用上传或文件变更。基于 Git 更改集合的检测能更精准地只处理你刚刚改动的文章。
覆盖默认行为
如果需要强制处理某个目录(例如在 CI 或需要全量处理的场景),显式传入目录参数:
# 强制处理单个目录(忽略 git 检测)
node scripts/upload-images.js content/zh/blog/your-article
# 或通过 npm 脚本
npm run upload-images -- content/en/blog/some-article
在 CI 的注意事项
- 在 CI(例如 GitHub Actions)中运行
npm run upload-images
会根据 CI 中 checkout 出来的工作区判断文件变更;如果你希望在 CI 上处理全量目录,请在 workflow 中显式传入目录。
例子
本地只处理 git 更改集合中的文章:
npm run upload-images
强制处理单个目录:
npm run upload-images -- content/zh/book/my-book/chapter-1