EIGHTfs/dsh-image-preview

EIGHTfs★ 0JavaScript最后同步: 2026-08-20

在 GitHub 打开

DSH 会话内图片预览插件:静态图片服务 + 文本渲染(双字体防乱码) + SVG转PNG,让 AI 在会话里直接发图片

README 摘要

🖼️ dsh-image-preview 让 AI 在 DSH 会话里直接给你发图片 —— 静态图片服务 + 文本渲染 + SVG 转换,一条 API 全搞定 ✨ 为什么需要它? DSH 的 AI 会话回复是纯文本的,想让用户直接看到一张图片(截图、二维码、配图)时: - ❌ 让用户去翻文件目录 —— 麻烦 - ❌ 手动起 python3 -m http.server —— 每次都要开服务、记端口 - ❌ 直接在 markdown 里写本地路径 —— GUI 渲染不了 dsh-image-preview 把这一切变成插件内置能力 :AI 在回复里贴一个 markdown 图片 URL,用户直接在对话中看到图, 无需任何手动操作 。 📦 核心能力 接口 方法 说明 /api/image-preview/file?path=xxx GET 静态图片服务:暴露工作区文件,AI 回复里贴 URL 即可渲染 /api/image-preview/render POST 文本 → PNG:AI 把要展示的内容发给接口,生成图片 /api/image-preview/svg2png POST SVG → PNG:GitHub 架构图等 SVG 转成可预览的 PNG /api/image-preview/status GET 插件状态:版本 / workspace / manualButton / Pillow 与字体可用性 用法示例 AI 回复里贴图(最常用): 渲染一段文字为图片: SVG 架构图转 PNG: 🛡️ 亮点设计 亮点 事实 双字体防乱码 中文用 Droid/Noto 等 CJK 字体、符号(→·×①等)用 DejaVu,逐字符渲染——不再出现"✅变方块" emoji 兜底替换 ✅→✓、🚀→ 等,任何字体都没有的 emoji 自动转成可渲染文本 路径穿越防护 相对路径 normalize 后必须落在 workspace 内, ../ 和绝对路径一律拒绝(实测防护通过) 零运行时依赖 插件本身是纯 Node.js;渲染走系统 python3 + Pillow (可选),无 npm 依赖 client 自动重写 外部图片链接自动转 /api/image-preview/fetch 代理(GUI 可直接显示); 手动「重写图片」按钮 v1.3.0 起默认禁用 ( manualButton: true 才显示,避免遮挡 UI) 配置 manualButton (v1.3.0 新增,默认 false ):需要右下角「🖼 重写图片」浮动按钮(点击强制全量重写本页外部图片)时,在 cordis.patch.yml 的 config 里加 manualButton: true 。 📦 安装 方式一:手动安装(三要素) 环境要求 - python3 + Pillo…

在 GitHub 查看完整 README →
内容/媒体dsh-plugin

分类