xhs-render

📁 ing-la/agent-skills-share 📅 10 days ago
8
总安装量
8
周安装量
#34149
全站排名
安装命令
npx skills add https://github.com/ing-la/agent-skills-share --skill xhs-render

Agent 安装分布

amp 8
gemini-cli 8
github-copilot 8
codex 8
kimi-cli 8
cursor 8

Skill 文档

xhs-render — 小红书文案转图 + 配套文案

用户提供需渲染的文案所在目录(或指定文档),Skill 完成:选模板 → 定位文档 → 创建工作目录 →(可选)布局计划确认 → LLM 设计 blocks.json 与 xhs-copy → 渲染成图并写入配套文案。

流程

  1. 选模板(先与用户交互):列出可选模板,询问用户选择,待用户确认后再继续。

    • 可选:ing-minimal、ing-minimal-html、ing-notion、ing-skillshare(Ing 品牌);minimal、notion、skillshare(share 品牌)
    • 示例:「可选模板:ing-minimal(Ing 品牌简约,推荐)、ing-notion(Ing 井字格知识风)、ing-skillshare(Ing 技能分享风);minimal、notion、skillshare 为 share 品牌同款。请问用哪个?」→ 用户回复后记下,后续用 -t <所选>
  2. 定位文档:

    • 用户指定文案目录(如 Agent-skills-share/daily-posts/YYYY-MM-DD-<skill-name>)或具体文件
    • 优先顺序:用户指定哪个就读哪个;未指定则默认 final.md
    • 用户说「渲染 draft」→ 读 draft.md;说「渲染 final」或未指定 → 读 final.md;指定其他(如 my-copy.md)→ 读该文档
  3. 创建工作目录:

    • python .cursor/skills/xhs-render/scripts/get_output_dir.py <文案目录> --source <source>
    • source:用户指定 draft 时用 draft,指定其他自定义文档时用 custom,否则 final
    • 输出目录:<文案目录>/xhs-render/from-{source}-v{N}/(如 from-final-v1、from-draft-v1)
  4. 【可选】布局计划确认(在渲染前与用户多轮交互,提高结果贴合度):

    • 触发条件:用户明确要求「先确认布局」「多交互几次」「详细分块」等;或文档较长、步骤多、表格多时,Agent 主动建议走此流程。
    • 执行方式:LLM 先阅读文档,输出一份分图布局计划(不生成 blocks.json),格式示例:
      ## 布局分块方案(共 N 张图)
      ### Block 1 · Cover:主文案 / 副文案
      ### Block 2 · 标题:内容摘要(1–2 句)
      ### Block 3 · ...
      ### Block N · Ending:致谢/链接等
      ## 需确认点:模板、分块是否合适、细节程度、Ending 内容等
      
    • 用户确认:用户回复「确认」「可以」「开始渲染」→ 进入步骤 5;用户提出修改(如「Block 8 拆分」「Privacy 改 Public」)→ Agent 根据反馈调整布局计划,再次呈现,直至用户确认。
    • 跳过:用户说「直接渲染」或未要求确认时,可跳过此步,直接进入步骤 5。
  5. LLM 设计 blocks.json 与 xhs-copy(一次产出;若已走步骤 4,则严格按用户确认的布局计划执行):

    • 读取定位到的文档
    • 角色:你是小红书配图设计专家,擅长把长文案重排成「有节奏、有冲击力」的视觉结构。严禁照抄原文——必须按屏上可读性重新提炼、缩写、造句。
    • 任务:从文档中提炼核心信息,设计一套配图(blocks.json)及配套发帖文案(xhs-copy)
    • blocks.json 刚性约束:
      • Cover:text 不得超过 2 行(约 20 字),只放金句或主卖点;主文案建议 6–12 字为佳(如「AI 文案去味神器」),既能撑满版面又不会挤;必须在 cover 块中显式添加 "skill": "<技能名>"(如 "skill": "humanizer-zh"),封面会在主文案下方以「技能名」形式醒目展示;若未填则脚本会从目录名 YYYY-MM-DD-<skill-name> 自动解析
      • 每块 text:建议 150–200 字,每页可含多条要点;多条要点之间必须用双换行(\n\n)分隔,否则会挤成一段、圆点无法分条;用短句、换行、关键词前置,让版面充实
      • 碎碎念块:若有 Agent 碎碎念、评价类内容,字数可适当增多(60–100 字),表达更饱满
      • ending 块:放致谢开发者,格式:宝藏开发者:owner/repo + 传送门:https://skills.sh/...,可加碎碎念;不放安装命令;安装命令写在 xhs-copy 文案中
      • 禁止:将文档的【】小节 1:1 映射为 block;在 title 里直接复制小节名(可创新改写);在图片里放安装命令
      • 分几张图、每块 title/text/emoji 由你专业判断;页数可多可少,设计好、必要内容都有即可。避免同一张图内 title 与 emoji 重复。纯 hashtag 不生成图片
    • xhs-copy:与配图配套的发帖文案,XHS-ready 纯文本——无 ##、**、`,可直接复制到小红书。链接用 [文字](url)。必须包含安装命令(npx skills add …)。不含 hashtag(用户发布时自选)
    • 输出:写入 <输出目录>/blocks.json 与 <输出目录>/xhs-copy.md
  6. 渲染:python .cursor/skills/xhs-render/scripts/render_images.py <输出目录>/blocks.json -t <用户所选模板> -o <输出目录>

blocks.json Schema

[
  {"index": 1, "total": N, "text": "...", "title": "...", "role": "cover", "skill": "humanizer-zh", "emoji": "✨"},
  {"index": i, "total": N, "text": "...", "title": "", "role": "content", "emoji": ""},
  {"index": N, "total": N, "text": "...", "title": "", "role": "ending", "emoji": "📌"}
]
  • role: cover(仅第 1 块)| content | ending(若仅为 hashtag 则跳过渲染)
  • title、emoji:均可为空,由你判断
  • 脚本按 blocks.json 渲染,纯标签页自动跳过

设计约束(LLM 设计时需遵守):Cover text ≤ 2 行且须体现 skill 名;多要点用 \n\n 分隔;ending 放致谢开发者、不放安装命令;页数可多可少

xhs-copy 规范

  • 纯文本格式,存为 xhs-copy.md,内容无 markdown 语法
  • 与配图内容一致,可直接复制到小红书作为发帖正文
  • 不含 hashtag(用户发布时自选)

依赖

  • html2image(pip install html2image)
  • Chrome 或 Edge 浏览器

模板

名称 说明
ing-minimal Ing 品牌简约,页眉「线—Ing—线」,封面 57px 加粗,ending 左对齐,支持 LaTeX(推荐)
ing-minimal-html 与 ing-minimal 同款,额外支持 HTML 富文本(strong、code、table)
ing-notion Ing 井字格背景,知识卡片风,内容直接显示在网格上
ing-skillshare Ing 技能分享风,点阵背景、< skills share 标签、Ing 水印、带圆点排版
minimal share 品牌,与 ing-minimal 同款,水印为 share
notion share 品牌,与 ing-notion 同款,水印为 share
skillshare share 品牌,与 ing-skillshare 同款,水印为 share

纯标签页自动跳过,无页码。

异常与处理

渲染失败时根据错误信息处理:缺 Python → 提示安装;缺 html2image → 询问用户是否安装,同意后 pip install html2image 再重试;pip 安装失败 → 提示可能版本冲突;其他 → 根据报错说明。不做预检查。

脚本、模板、参考文档均在本目录内。