将 Markdown/纯文本内容智能分析、排版并导出为高分辨率精美长图或分享海报(内置 18 种视觉风格)。 当用户说「生成长图」「做海报」「文字转图片」「高颜值排版」「做大图」「make a poster」 「export as image」「generate image from text/markdown」等意图时触发本技能。
文本给Elegant Image
功能概述
文本给Elegant Image是一项面向实际任务的技能,主要用于Version: 1.0.0.是一项面向实际任务的技能,主要用于License: MIT.;Author: Evan Song ^ github.com/ Songhonglei.;
核心要点
- Repository: https://github.com/ Songhonglei/text-to-elegant-image 马克当;
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
结果检查与注意事项
该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。结果生成后应检查内容的完整性、准确性、一致性和可用性,必要时抽样复核并根据反馈调整配置;涉及外部服务、账号凭据、个人信息或敏感数据时,还需遵守相应的权限、安全与合规要求。
Text to Elegant Image
- Version: 1.0.0
- License: MIT
- Author: Evan Song · github.com/Songhonglei
- Repository: https://github.com/Songhonglei/text-to-elegant-image
将 Markdown 或纯文本内容转化为排版精美的高清长图。通过生成 HTML 文件并用 Puppeteer 无头浏览器截图实现。
风格选择
共 18 种风格,各风格完整 CSS 在 resources/styles_reference.md,生成 HTML 前必须读取对应风格的样式代码。
| # | 风格 | 视觉关键词 | 最适合 |
|---|---|---|---|
| 1 | 赛博科技风(默认) | 深色/霓虹/SVG蜂窝网格 | AI 分析、科技报告、炫酷海报 |
| 2 | 极简优雅风 | 白底/衬线/留白/噪点宣纸 | 文学随笔、日记、人文知识 |
| 3 | Apple 质感风 | 浅灰/毛玻璃卡片/彩色窗口 | 效率工具、复盘总结、方法论 |
| 4 | Cowork 轻科技风 | 苹果灰白/小红书蓝/磨砂玻璃Hero/神经网络节点 | 内部分享、AI 工具介绍、产品手册 |
| 5 | 报纸/杂志风 | 米黄/铅字颗粒纹/黑白印刷 | 历史事件、时间轴、深度叙事 |
| 6 | Bloomberg 终端风 | 纯黑CRT纹/橙色发光字 | 数据报告、指标对比、金融科技 |
| 7 | 水墨卷轴风 | 宣纸晕染/朱砂红/毛笔横扫线 | 中国历史、文化艺术、东方美学 |
| 8 | 蒸汽朋克风 | 深棕/铜色齿轮/蜂窝铆钉/压力表 | 工业历史、科技跃迁、机械美学 |
| 9 | 小红书风 | 白底/柔和珊瑚红/圆角卡片 | 知识笔记、生活攻略、干货分享 |
| 10 | 莫兰迪高级灰风 | 暖灰米底/灰绿/柔和阴影/留白克制 | 品牌方法论、复盘、人文随笔 |
| 11 | 玻璃拟态风 | 彩色渐变底/半透磨砂卡片/细白描边 | SaaS 官网、活动页、功能介绍 |
| 12 | 故宫风 | 深棕木底/朱砂红/鎏金字/书法字韵 | 中国历史、国风节日、文博展览 |
| 13 | 清新自然绿风 | 浅薄荷底/森林绿/纯白卡片/呼吸感 | 健康环保、生活方式、科普攻略 |
| 14 | 大地原木风 | 亚麻米底/赤陶橙/橄榄棕/手作质地 | 手作咖啡、生活美学、品牌故事 |
| 15 | 优雅紫梦幻风 | 薰衣草底/品紫渐变/浪漫优雅 | 美妆时尚、情感、活动海报 |
| 16 | 马卡龙粉彩风 | 奶油粉底/珊瑚粉/大圆角/甜美 | 甜品母婴、生活分享、节日祝福 |
| 17 | 暗色极简风 | 炭灰深底/冷调蓝绿/克制/护眼 | 技术文档、开发者内容、数据报告 |
| 18 | 活力渐变风 | 紫粉橙三色渐变/纯白衬底/张力 | 活动促销、年轻品牌、音乐娱乐 |
小红书风(风格9)的两种模式
风格9内置两个子模式,由用户指定;未指定时默认模式 A:
| 模式 | 触发词 | 气质 |
|---|---|---|
| A — 简洁正式 | "简单"/"正式"/"干净"/"知识感" | 细边框小圆角,数字下划线序号,呼吸感强 |
| B — 丰富活泼 | "活泼"/"丰富"/"可爱"/"生活"/"有趣" | 浅粉大圆角,实心圆圈序号,波浪装饰线,Footer 含引导语 |
生成后告知用户当前模式,并提示可切换:
"已用简洁版生成,如需活泼风格可以说「做个活泼版」。"
风格选择指引
用户未指定风格时,根据内容类型自动推荐,并告知用户可选项:
内容偏向 → 推荐风格 ────────────────────────────────────── 科技/AI/数据分析 → 赛博科技风 或 Bloomberg 终端风 历史/时间轴/叙事 → 报纸杂志风 或 水墨卷轴风(中国历史) 工业/机械/科技跃迁 → 蒸汽朋克风 效率/方法论/总结 → Apple 质感风 或 Cowork 轻科技风 文学/日记/人文 → 极简优雅风 或 水墨卷轴风 企业内部分享 → Cowork 轻科技风 知识笔记/生活攻略/干货 → 小红书风 品牌方法论/复盘/高级感 → 莫兰迪高级灰风 SaaS/产品官网/活动页 → 玻璃拟态风 或 活力渐变风 中国历史/国风/文博 → 故宫风 或 水墨卷轴风 健康/环保/生活方式 → 清新自然绿风 手作/咖啡/生活美学 → 大地原木风 美妆/时尚/情感/浪漫 → 优雅紫梦幻风 甜品/母婴/可爱/种草 → 马卡龙粉彩风 技术文档/开发者/护眼 → 暗色极简风 活动/促销/潮流/年轻 → 活力渐变风
推荐话术示例:
"根据内容,我推荐「小红书风」(笔记感强,适合传播)或「Apple质感风」(更工具感)。共 18 种风格可选,也可以直接说想要哪种(如「故宫风」「莫兰迪」「玻璃拟态」)。"
用户描述风格偏好时的关键词匹配:
- "科技感"/"炫"/"暗色"/"霓虹" → 赛博科技风
- "简洁"/"白色"/"干净"/"文艺" → 极简优雅风
- "苹果风"/"现代"/"产品感" → Apple 质感风
- "轻科技"/"内部"/"蓝色"/"苹果风蓝色"/"小红书蓝" → Cowork 轻科技风
- "报纸"/"杂志"/"历史"/"复古印刷" → 报纸杂志风
- "数据"/"金融"/"终端"/"Bloomberg" → Bloomberg 终端风
- "水墨"/"中式"/"东方"/"卷轴"/"古风" → 水墨卷轴风
- "蒸汽"/"朋克"/"机械"/"铜色"/"齿轮"/"复古工业" → 蒸汽朋克风
- "小红书"/"笔记"/"种草"/"攻略"/"分享"/"红色" → 小红书风(官方红 #FF2442)
- "莫兰迪"/"高级灰"/"低饱和"/"安静"/"高级感" → 莫兰迪高级灰风
- "玻璃"/"毛玻璃"/"磨砂"/"透明"/"通透"/"SaaS" → 玻璃拟态风
- "故宫"/"宫廷"/"红墙"/"鎏金"/"朱红"/"国风" → 故宫风
- "清新"/"绿色"/"自然"/"薄荷"/"环保"/"森林" → 清新自然绿风
- "大地色"/"原木"/"赤陶"/"亚麻"/"手作"/"温暖朴实" → 大地原木风
- "紫色"/"梦幻"/"薰衣草"/"浪漫"/"优雅紫" → 优雅紫梦幻风
- "马卡龙"/"粉色"/"粉彩"/"甜美"/"可爱"/"少女" → 马卡龙粉彩风
- "暗色"/"深色"/"黑色极简"/"护眼"/"技术感"/"开发者" → 暗色极简风
- "渐变"/"活力"/"潮流"/"年轻"/"多彩"/"张力" → 活力渐变风
执行流程
Step 1:解析内容结构
阅读用户内容,提取:
- 大标题、副标题
- 核心金句(放大展示)
- 结构化区块(对比、列表、时间轴等)
Step 2:生成 HTML 文件
- 读取
resources/styles_reference.md,选取对应风格 CSS - 使用文件中的通用 HTML 布局骨架(见
styles_reference.md的「通用 HTML 布局骨架」小节)作为模板 - 将提取内容注入骨架,生成完整 HTML
- 用
write工具保存到/tmp/elegant_image_.html
⚠️ 工具名是
write,不是write_to_file
Footer 处理规则(重要):
- 用户未指定作者信息:在 HTML 的
.footer元素中写入默认值:@ <当前模型名> - 例:
text-to-elegant-image @ claude-4.6-sonnet
- 例:
- 用户指定了作者信息(如"作者写洪磊"):写入用户指定的文字
- 用户明确说不要 footer:HTML 中不生成
.footer元素,截图时追加--no-footer
不要在 footer 中写 "Generated by Ashley" 或任何 AI 身份标识。
Step 3:依赖检测与初始化(每次使用前)
运行 setup 脚本检测环境:
bash/scripts/setup.sh
- 检测 Node.js(需 >= v18)、Chrome/Chromium、puppeteer-core 三项依赖
- 全部就绪时直接通过,输出
✔ 所有依赖已就绪 - Node.js / Chrome 缺失:脚本直接报错退出(
exit 1),提示联系管理员检查容器镜像(容器环境应内置这两项) - puppeteer-core 缺失:静默自动
npm install,无需用户确认
已就绪时脚本极速返回,无性能负担,建议每次调用前执行一次。
Step 4:执行截图导出
node/scripts/export_image.js <输出目录>/<文件名>.png [宽度] [--author "作者信息" | --no-footer]
输出目录配置(首次使用请引导用户设置):
输出目录按以下优先级解析(高 → 低):
- 命令中显式传入的输出路径
- 环境变量
T2EI_OUTPUT_DIR - 默认值:
./output(当前工作目录下的output/)
💡 首次使用引导:第一次为用户生成长图前,询问一次"希望把图片输出到哪个目录?"
- 用户不指定 → 用默认
./output- 用户指定固定目录 → 建议写入环境变量持久化:
echo 'export T2EI_OUTPUT_DIR="$HOME/my-images"' >> ~/.bashrc之后不再重复询问。
Footer 参数说明:
| 参数 | 效果 |
|---|---|
| 不传(默认) | 使用 HTML 中已写好的 footer(见 Step 2) |
--author "自定义文字" |
替换 footer 为指定文字 |
--no-footer |
完全移除 footer |
脚本自动检测 Chrome/Chromium 路径,支持 Linux、macOS、WSL,无需手动配置。输出目录不存在会自动创建。
Step 5:返回结果与图片交付
截图成功后,向用户返回本地 PNG 路径即可:
图片已生成 🎉 本地路径:<输出目录>/<文件名>.png
用户可直接在文件系统 / 编辑器中查看该 PNG,或自行分发。
📌 关于自动分发(占位,暂不内置) 本开源版仅负责「文本 → 精美长图」的生成,不内置任何 IM 渠道的自动发图能力。 如需把生成的图片自动推送到 WeChat / Telegram / Slack 等渠道,可在此步之后自行接入对应平台的 Bot / API(未来版本可能提供可选适配器)。目前请用户手动获取本地 PNG 后分发。
Fallback 机制
截图失败时(如浏览器未安装),脚本会输出 HTML 文件路径,引导用户在浏览器中打开后手动打印为 PDF/图片。
⚠️ Emoji 禁用规则(强制)
生成 HTML 时,严禁在任何位置使用 emoji 字符。
Linux 无头浏览器(Puppeteer + Chrome headless)环境缺少彩色 emoji 字体(Noto Color Emoji),所有 emoji 会渲染成黑色方块乱码,直接毁掉排版。
禁止使用的位置(全部):
- section-title、标题、副标题
- 徽章(badge)、标签(tag)
- 列表项开头
- highlight 引用块内
- footer
- 任何可见文字区域
替代方案:
| 原 emoji 用途 | 替代写法 |
|---|---|
| 章节图标(📊🔮🗺️) | 纯文字标题,靠 border-left 色条区分 |
| 状态标记(✅❌⚠️) | 用色块 badge:全自动 |
| 装饰符号(🎯💡👥) | 删除,内容本身足够表意 |
| 进度/箭头(↑→) | 用 CSS ::before 伪元素或纯文字 ->、· |
检查清单(生成 HTML 后,截图前必须执行):
import re
with open('') as f:
content = f.read()
emoji_pattern = re.compile(
r'[U00010000-U0010ffff]' # 补充平面(大多数 emoji)
r'|[U00002600-U000027BF]' # 杂项符号
r'|[U0001F300-U0001F9FF]' # 表情/符号块
r'|[u2702-u27B0]' # 装饰符号
)
found = emoji_pattern.findall(content)
if found:
print(f"❌ 发现 emoji,必须替换后再截图:{set(found)}")
else:
print("✔ 无 emoji,可以截图")
发现 emoji → 替换为纯文字 → 重新执行检查 → 通过后再截图。
关键说明
export_image.js第三个参数可指定宽度(默认 600px),2x deviceScaleFactor 保证高清输出- 不引用外部图片,图标用纯 CSS 形状代替,避免网络加载失败
- 输出路径:
<输出目录>/<文件名>.png(输出目录默认./output,可用T2EI_OUTPUT_DIR环境变量配置,见 Step 4)
热门AI工具
相关专题
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习
最新文章