上一篇文章(阿里全员卸载 Claude)发出去后,我做了一件自己一直想做但没做的事:把文章里所有的 ASCII 字符流程图全部替换成 HTML 截图。
效果是肉眼可见的:原来的 6 个 text 代码块变成了 9 张 3200×1800 的高清流程图,公众号读者那边看起来差不多(推送还是纯文本),但我自己 Obsidian vault 里的版本一下子"专业"了一个档次。
这篇文章就把怎么用 HTML 截图给文章配图这件事,从工具链到代码到踩坑全部讲清楚。
一、为什么我放弃了 ASCII
先说为啥要从 ASCII 升级。ASCII 字符流程图有 3 个硬伤:
- 像素密度低:80×24 单色字符,再大屏也是模糊一片
- 对齐难:中文 2 字符宽度、英文 1 字符宽度,混排必崩
- 彩色编码缺失:ASCII 全是灰的,没法用颜色传递语义(比如"热"和"冷"节点)
HTML 流程图直接解决这 3 个问题:
|
|
|
|
|---|---|---|
|
|
|
3200×1800 像素
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
但 HTML 截图不是万能的。我自己的分工原则是:
|
|
|
|
|---|---|---|
| ASCII |
|
|
| 手绘 PNG |
|
|
| HTML 截图 |
|
|
二、5 步工具链
我用的工具链是:
- 写 HTML:
huashu-designskill(内联 CSS + system font,单文件) - 启浏览器:Playwright headless Chromium
- 加载 + 等待:
wait_until="networkidle"+wait_for_timeout(500) - 截图:
device_scale_factor=2(关键,输出 3200×1800) - 分发:复制到附件目录 + Obsidian vault 嵌入
每个步骤细节:
- HTML 文件位置:
E:/softlv-knowledge/公众号配图/{date}_{topic}/html/*.html - PNG 输出位置:同目录根
*.png - 附件位置:
E:/softlv-knowledge/公众号文章/附件/ - Obsidian 嵌入:
![[filename.png]](附件目录自动被 Obsidian 索引)
三、Playwright 代码(核心 30 行)
最关键的代码其实很短:
几个关键参数:
|
|
|
|
|---|---|---|
viewport |
|
|
device_scale_factor |
|
|
wait_until |
|
|
wait_for_timeout |
|
|
clip |
|
|
四、双渠道同步:一张图走两条路
我自己的文章是双渠道发布的:
- doc.softlv.top:微信公众号推送(运营人上传图片)
- Obsidian vault:本地自留阅读
这两个渠道对图片的处理完全不同:
|
|
|
|
|---|---|---|
| 用途 |
|
|
| 格式 |
|
|
| 图片 |
|
![[file.png]]
|
| 受众 |
|
|
同步的关键逻辑:
- PNG 只复制一份到
E:/公众号文章/附件/ - doc.softlv.top 正文不放图(避免重复)
- Obsidian 通过
![[filename.png]]语法引用 - 同一篇文章在两个渠道呈现不同 —— 推文简洁、阅读版完整
这是为什么我每篇文章都在两个地方各维护一份,但维护成本其实是 1.5 倍而不是 2 倍(图片只复制 1 次)。
五、6 个常见坑
踩过的坑一次性列出来:
|
|
|
|
|---|---|---|
|
|
|
"file:///" + path.replace("\\", "/") |
|
|
|
=2
|
|
|
|
networkidle + wait_for_timeout(500)
|
|
|
|
height: 1600px 锁定
|
|
|
|
font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif |
|
|
|
|
最坑的是第 1 个 —— Windows 路径是 \ 但 file:// URL 必须用 /,我第一篇 HTML 截图就栽在这上面 debug 了 10 分钟。
六、HTML 设计模式(我常用的 3 种)
写了几十个 HTML 流程图后,我沉淀出 3 种最常用的版式。每种我都做一个 placeholder 示例,直接看图:
1. 时间线横轴版
关键要素:横轴渐变色(蓝→橙→红→橙→绿)+ hot 红 / action 绿语义编码 + 底部黑色观察注释条。适合「事件发展」「项目里程碑」「产品迭代」这类有明确先后顺序的内容。
2. 左右对比版
关键要素:左右两面板对称布局(before 用灰、after 用绿)+ 中间红色圆形迁移箭头 + 底部"关键差异"一句话对比。适合「禁用前 vs 禁用后」「A 方案 vs B 方案」「旧版 vs 新版」这类双状态对比。
3. 网格矩阵版
关键要素:CSS Grid 精确对齐 + 热力色块(4-5 级密度梯度)+ 底部数据卡 + 图例。适合「多家公司 × 多个维度」「多个人 × 多项指标」这种二维交叉对比。
七、最后一点体感
HTML 截图配图不是把 ASCII 替换掉就完事,它改变的是文章信息的组织方式。
以前我用 ASCII 字符是把图"塞进"文章里;现在用 HTML 截图是把图作为独立的内容单元——每张图都是一个完整的视觉故事,文章正文只是把故事串起来的解说。
体感上的区别:以前写文章是"先写文字再补图";现在变成"先想清楚有几张图,再写文字串起来"。
这一点可能比工具链本身更重要。
互动问题:你平时用什么方式给文章配流程图?ASCII 还是画图工具?有没有试过 HTML 截图这条路?






