jianfei-blog / v3.1.0 release

jianfei-blog
v3.1.0 升级说明

本地图片自动处理 · base64 提取 · 统一图片逻辑 · HTML 页面部署

← 回到原文

剑飞思考啊 · sikaoa.com

agenda

今天讲 5 件事

01背景:图片处理的三个老坑~2min
02修复:本地图片自动解析 & 替换~2min
03修复:base64 图片提取成独立文件~2min
04重构:统一提取逻辑 + 守护进程升级~2min
05新功能:直接部署 HTML 原始网页~2min

// part 01 · 老坑

图片处理的三个痛点

❌ 本地图片上传后看不见

Markdown 里写了 ![](./imgs/xxx.png),上传后路径失效,线上 404。

手动复制 + 改路径 + 再部署

❌ base64 塞爆 JSON

含 base64 图片的文章直接塞进 posts.json,JSON 体积暴涨,构建慢到怀疑人生。

单篇文章可达数 MB

❌ 提取逻辑各写各的

extract-images、publish-go、watcher 三个地方各有一套图片处理代码,维护成本高。

重复逻辑 · 容易遗漏

// part 02 · 本地图片

upload-md 现在会自动处理本地图片

以前三步走,现在一步搞定。upload-md 会自动扫描 Markdown 中的本地图片引用,按相对路径找到原文件,复制到 public/images/,并把链接替换为线上可用路径。

![](imgs/chapter_01.png) ![](/images/{postId}-{hash}.png)
# 以前 jianfei-blog upload-md article.md # 然后手动复制图片、改路径、deploy... # 现在 jianfei-blog upload-md article.md jianfei-blog deploy # 图片自动处理,直接完成

// part 03 · base64 + 统一逻辑

base64 提取 + 统一模块

base64 图片自动提取

publish-go 部署前自动扫描所有文章,不管是 HTML 的 <img> 还是 Markdown 的 ![alt](data:...),统统提取成独立文件。

# 部署前自动处理 jianfei-blog publish-go article.html # base64 → 独立文件,JSON 不再膨胀

extract-images-core.js

新增核心模块,同时支持 HTML <img src="data:..."> 和 Markdown ![alt](data:...) 两种格式。

# 三处共用同一套逻辑 extract-images # 手动提取 publish-go # 发布前提取 auto-deploy-watcher # 自动部署时提取

// part 04-05 · 守护进程 + 新功能

守护进程升级 + HTML 页面部署

watcher 部署前先提取图片

自动部署守护进程每 5 分钟扫描新文章,现在发现新文章后,部署前自动调用图片提取逻辑,确保内容完整。

新增启动脚本

./scripts/start-watcher.sh 支持前台/后台运行,自动加载 .env 环境变量。

🌐 新增:deploy-html

现在可以直接部署纯 HTML 页面,甚至一个完整的小站点。

# 单个 HTML 文件 jianfei-blog deploy-html ~/page.html --title "我的网页" # 整个目录(多页站点) jianfei-blog deploy-html ~/my-site/ --title "我的站点"

自动创建 Sanity 文章记录,博客列表显示 🌐 标识,可独立访问。

// summary · takeaways

v3.1.0 的核心改进

upload-md 自动处理本地图片引用,一步上传 修复
publish-go 自动提取 base64 图片,JSON 不再膨胀 修复
extract-images-core.js 统一 HTML + Markdown 两种格式 重构
watcher 部署前自动提取图片 + start-watcher.sh 启动脚本 重构
deploy-html 支持单文件 / 目录部署,可部署完整站点 新功能

更新方式:npm update -g jianfei-blog 或拉取最新代码

← 回到原文

S 演讲者视图 · T 切换主题 · ← → 翻页 · F 全屏 · O 总览 · ☀️ 明暗切换