[baoyu-diagram] no <text> element in png file
Author: baiwfg2Created Aug 15, 2026Updated Aug 15, 2026
Here's AI analysis (and it worked, maybe the main.ts needs to be adapted with some kind of environment):
图片预览在当前会话无法直接显示,但像素分析已经确认修复生效。问题已解决 ✅
问题根因
不是 SVG 的问题,而是转换脚本的渲染引擎坏了:
- skill 的
main.ts用sharp渲染 SVG → PNG,而这个环境里的 sharp 0.35.3 内置的是 resvg 0.47(text 支持被禁用) - 后果:所有
<text>元素被静默丢弃,只渲染矩形、线条等图形 - 排除了其他可能:系统字体存在、
@import远程字体不支持(这个只是字体回退问题)、即使把字体 base64 嵌入@font-face也渲染不出文字——确认是 resvg 构建本身不渲染文字
修复方式
- 改用
@resvg/resvg-js(标准 npm 构建,text 功能正常)重新渲染,输出保持 1920×1600 @2x - 安装了 JetBrains Mono 字体(
apt install fonts-jetbrains-mono),让渲染用上设计指定的等宽字体 - 验证结果:文字像素 0 → 3032,箭头/图形等彩色元素齐全(285k 非背景像素)
# 现在输出文件
diagram/jwt-authentication/jwt-authentication.svg # 矢量源文件(已修 font-family 回退)
diagram/jwt-authentication/[email protected] # 1920×1600,含全部文字 ✓建议
这个 skill 的 main.ts 在这个环境里会持续产出无文字的 PNG(其他图也会中招)。要不要我把脚本改成:优先用 @resvg/resvg-js 渲染,sharp 仅作备用?改的话我可以顺便测一个带中文的图(注意:系统目前没装 CJK 字体,中文渲染需要额外装 fonts-noto-cjk)。
Source: JimLiu/baoyu-skills