言·旅·此

指南 入门

脚本说明:重写文章图像路径 (CDN 迁移)

rewrite-post-images.ts 是一个用于将 Markdown 文章中的本地图像路径批量重写为远程 CDN 路径的脚本。这对于希望将静态资源托管在外部存储(如 GitHub Pages 之外的 CDN)的用户非常有用。

功能特性

  • 全方位重写
    • Markdown 语法![alt](./img.png) -> ![alt](https://cdn.../img.png)
    • HTML 标签<img src="./img.png"> -> <img src="https://cdn.../img.png">
    • Frontmatter:重写 srcbanner 字段中的路径。
  • 智能识别:自动检测文章所属的 Collection(如 posts, albums)和 Slug,以构建正确的远程 URL。
  • 排除机制:自动跳过已经是 http/https 的路径以及指向父级目录(../)的引用。

使用方法

在终端中运行以下命令:

pnpm rewrite-post-images

配置项

  • BASE_ROOT: 远程 CDN 的基础 URL。默认配置为 https://tpic2024.en.icu/Astro2026/public/content

工作原理

  1. 扫描文件:查找 src/content 下的所有 .md.mdx 文件。
  2. 解析上下文:根据文件路径确定其所属的集合名称和文章标识符。
  3. 正则替换
    • 使用正则表达式匹配各种形式的图像引用。
    • 将相对路径(如 ./image.jpg)或绝对路径(如 /posts/my-post/image.jpg)转换为基于 BASE_ROOT 的完整 URL。
  4. 更新文件:将替换后的内容写回原文件。

示例

重写前: ![我的图片](./photo.jpg)

重写后: ![我的图片](https://tpic2024.en.icu/Astro2026/public/content/posts/my-article/photo.jpg)