Skip to content

upload-images 默认行为

本文说明 scripts/upload-images.js 的新默认检测策略,旨在减少误处理大量历史内容的风险。

默认行为

  • 当不传入目录参数时(直接运行 npm run upload-imagesnode scripts/upload-images.js),脚本只会处理位于本地 Git 更改集合中的 Markdown 所在目录:
  • 未暂存的更改(unstaged)
  • 已暂存的更改(staged)
  • 已提交但尚未推送到上游的更改(committed but not pushed,需存在上游分支)
  • 仅匹配 content/zhcontent/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