Text to Elegant Image

Polar Sponsor
爱发电 赞助
.NET 9.0

将 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 文件

  1. 读取 resources/styles_reference.md,选取对应风格 CSS
  2. 使用文件中的通用 HTML 布局骨架(见 styles_reference.md 的「通用 HTML 布局骨架」小节)作为模板
  3. 将提取内容注入骨架,生成完整 HTML
  4. 用 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]

输出目录配置(首次使用请引导用户设置):

输出目录按以下优先级解析(高 → 低):

  1. 命令中显式传入的输出路径
  2. 环境变量 T2EI_OUTPUT_DIR
  3. 默认值:./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)

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习