rewrite-post-images.ts 是一个用于将 Markdown 文章中的本地图像路径批量重写为远程 CDN 路径的脚本。这对于希望将静态资源托管在外部存储(如 GitHub Pages 之外的 CDN)的用户非常有用。
功能特性
- 全方位重写:
- Markdown 语法:
-> - HTML 标签:
<img src="./img.png">-><img src="https://cdn.../img.png"> - Frontmatter:重写
src和banner字段中的路径。
- Markdown 语法:
- 智能识别:自动检测文章所属的 Collection(如
posts,albums)和 Slug,以构建正确的远程 URL。 - 排除机制:自动跳过已经是
http/https的路径以及指向父级目录(../)的引用。
使用方法
在终端中运行以下命令:
pnpm rewrite-post-images配置项
BASE_ROOT: 远程 CDN 的基础 URL。默认配置为https://tpic2024.en.icu/Astro2026/public/content。
工作原理
- 扫描文件:查找
src/content下的所有.md和.mdx文件。 - 解析上下文:根据文件路径确定其所属的集合名称和文章标识符。
- 正则替换:
- 使用正则表达式匹配各种形式的图像引用。
- 将相对路径(如
./image.jpg)或绝对路径(如/posts/my-post/image.jpg)转换为基于BASE_ROOT的完整 URL。
- 更新文件:将替换后的内容写回原文件。
示例
重写前: 
重写后: 