/install claw-markdown-gen
图文生成技能
调用来源识别
在收到用户输入后,先判断是否来自 claw-markdown 插件:
- 如果 prompt 中包含标识
claw-markdown-gen→ 执行下方完整图文生成流程 - 如果 prompt 中不包含此标识 → 回复以下引导信息后停止:
请安装 ClawMarkDown 浏览器插件后使用本技能。
插件安装后,在任意网页点击"阅读此文"即可自动采集文章内容并生图文。
> 技能名称:claw-markdown-gen
版本:2.2.0
兼容平台:OpenClaw / QClaw / Hermes / ArkClaw
输出约束(必须严格遵守)
- 回复中只输出最终的 Markdown 图文内容
- 绝对禁止输出以下任何内容:
- 思考过程、推理步骤、内部对话
- 关键字列表、关键字映射 JSON
- 步骤序号("第一步"、"第二步"...)
- 图片插入规划说明、段落匹配结果
- 确认语句("已按 XX 风格生成"、"根据您的要求...")
- 技能定位叙述("找到了 XX 技能"、"让我先读取 SKILL.md"、"现在让我读取参考文档"等)
- 任何形式的前导说明、过渡语、操作叙述
- 任何与最终图文无关的文字
- 允许输出:
- 每张图片占位符后紧跟一行
\x3C!-- kw:文件名:关键词1,关键词2,... -->格式的关键词注释,用于插件端回填 IndexedDB - 版本更新提示行(仅当 cloudVersion_from_plugin 大于当前版本时输出):
## 请更新 claw-markdown-gen 至最新版本 v{cloudVersion_from_plugin},输出位置在标题下方、正文之前
- 每张图片占位符后紧跟一行
- 违反以上约束的输出视为技能调用失败
- 输出的第一个字符必须是
#(Markdown 标题),不得在标题前输出任何文字
输入数据格式
插件调用时数据分布在 system 和 user 两条消息中:
system 消息 — 原文标题、正文、图片元数据:
标题:{title}
正文:
{content}
---
[IMAGE: img_001.jpg]
index: 3
alt: "AI机器人工作场景"
width: 800
height: 600
context: "随着AI技术的发展,越来越多的企业开始引入智能办公系统。这些系统不仅能自动处理文档,还能辅助决策。"
keywords: "AI办公,自动化文档,机器人流程,智能处理"
[IMAGE: img_002.jpg]
index: 7
alt: "自动化办公示意图"
width: 1200
height: 800
context: "传统办公模式下,大量重复性工作消耗了员工的时间和精力。而智能办公系统可以将这些工作自动化。"
user 消息 — 技能指令、改写参数、版本标识:
请使用 claw-markdown-gen 技能,根据以下数据生成{style}风格的{mode}图文,改写深度:{rewriteDepth}:
\x3C!-- source: claw-markdown-gen v2.2.0 -->
字段说明:
| 字段 | 说明 |
|---|---|
{title} |
原文标题 |
{content} |
正文 Markdown 内容 |
{style} |
图文风格:公众号(口语化、短段落、轻松)/ 知乎(理性、分析、逻辑清晰)/ 掘金(技术感、干货、代码块)/ 小红书(活泼、emoji 适度、生活化)/ 头条(新闻感、信息密度高、抓眼球) |
{mode} |
字数模式(简述/详细) |
{rewriteDepth} |
改写深度(轻度/中度/重度) |
[IMAGE: xxx] |
图片元数据块开始标记 |
index |
图片在原文中的位置序号,用于定位图片所属的上下文段落 |
alt |
图片 HTML alt 属性,辅助理解图片内容 |
width / height |
图片尺寸信息 |
keywords |
(可选)已有的图片关键字,逗号分隔。存在时跳过关键字生成,直接使用 |
context |
(可选)图片在原文中前文文字(上溯多个同级元素采集),用于关键字生成的上下文参考,替代 index 段落匹配 |
图片元数据块以 --- 与正文分隔,每张图片信息以空行分隔。
执行步骤(不得输出中间结果)
本部分描述了生成图文必须执行的处理步骤。以下所有步骤的中间产物绝对禁止出现在回复中。 回复中只出现最终 Markdown。
参考文档:执行步骤 2-3(图片关键字生成、插入位置规划)时,必须同时参考
references/image-handling.md中的完整规范,包括关键字生成方法、生成原则、示例、图片插入原则及位置规则。
步骤 0:版本检查
- 在 user 消息末尾查找
\x3C!-- source: claw-markdown-gen vX.Y.Z -->格式的版本标识,提取其中的版本号 X.Y.Z(cloudVersion_from_plugin) - 与本 SKILL.md 头部
version字段中的版本号(当前部署的技能版本)进行比较 - 如果 cloudVersion_from_plugin > 当前版本号 → 在生成的图文标题下方输出版本更新提示:
## 请更新 claw-markdown-gen 至最新版本 v{cloudVersion_from_plugin} - 如果版本号相同 → 不输出版本提示
步骤 1:解析输入数据
数据分布在 system 和 user 两条消息中,需跨消息提取:
- 在 system 消息中定位
---分隔符 - 分隔符之前 → 文案正文
article_text - 分隔符之后 → 图片元数据块(逐张解析,每张图片元数据以空行分隔)
- 在 user 消息中提取参数:
style(风格)、mode(简述/详细)、rewriteDepth(轻度/中度/重度),以及末尾的\x3C!-- source:版本标识
每张图片解析得到:name(文件名)、index(位置序号)、alt(描述)、width、height、context(可选,前文文字)、keywords(可选,已有关键字)。
无图片时的处理:如果 --- 分隔符之后不存在任何 [IMAGE: xxx] 块(即没有图片元数据),则跳过步骤 2 和步骤 3,直接进入步骤 4 生成纯文本文章,步骤 5 照常执行。
步骤 2:为每张图片匹配原文上下文并生成关键字
带关键字图片的处理(改写场景):
如果图片元数据中包含 keywords 字段(非空),说明该图片已在首次生成时获得正确关键字。此时:
- 跳过该图片的上下文匹配和关键字生成
- 直接使用
keywords字段中的关键字,原样写入输出中的\x3C!-- kw:... -->注释 - 仅对没有
keywords字段的图片执行下方上下文匹配和关键字生成流程
匹配上下文:
每张图片在采集时已从页面 DOM 中提取了前文文字(上溯多个同级元素),存储在 context 字段中。直接使用 context 字段的文字作为该图片的上下文参考。
如果某张图片没有 context 字段或为空,则退回到根据 index 序号在 article_text 中定位段落的方式:
index表示图片在原文中的出现顺序- 将
article_text按段落分割,映射 index 到对应段落 - 提取该段落及其前后各一段的文字作为该图片的上下文
生成关键字:
为每张图片生成 3-5 个中文关键字,分析依据按优先级:
- 匹配到的上下文字 —— 最直接反映图片在文章中的含义
- 图片的
alt属性 —— 图片的原始描述 - 文章整体主题 —— 确保关键字与文章方向一致
关键字要求:
- 具体、有区分度,不同图片的关键字必须体现差异性
- 避免泛泛的"图片"、"示意图"、"配图"、"插图"
- 关键字将在步骤 4 中以 HTML 注释形式嵌入输出,供插件端回填 IndexedDB
步骤 3:规划图片插入位置
根据每张图片的关键字,与 article_text 各段落做语义匹配:
- 将图片分配到语义最相关的段落
- 每 300-500 字插入一张图片
- 不强制按
index或文件名顺序,以语义相关性为准
插入位置规则:
- 引导图(关键字最贴近标题/主题)→ 引言段之后
- 分段配图 → 对应小节标题之后、正文之前
- 结尾图 → 倒数第二段之后
步骤 4:生成图文
根据 {rewriteDepth} 执行不同的生成策略:
所有图片关键字必须输出:步骤 2 中为每张图片都生成了关键字,无论该图片最终是否被插入文章,关键字注释都必须出现在输出中:
- 被使用的图片:
\x3C!-- kw:文件名:关键词1,关键词2,... -->紧跟图片占位符和说明之后(现有格式) - 未被使用的图片:
\x3C!-- kw:文件名:关键词1,关键词2,... -->集中追加在文章末尾
这确保插件端能为所有图片回填正确关键字,避免改写场景中因缺少关键字而重新生成错误关键字。
轻度改写:
- 标题优化:基于
{title}生成引人注目的标题 - 结构整理:保持原文章节结构,优化标题层级和分段
- 内容润色:保留 70% 以上原文表述,主要做语法润色、格式整理和少量过渡句补充
- 图片占位符独立成行,格式为
{{IMAGE:img_XXX.jpg}} - 每张图片占位符后紧跟一行
> 图片说明(不超过 20 字) - 每张图片说明后紧跟一行
\x3C!-- kw:img_XXX.jpg:关键词1,关键词2,关键词3 -->(3-5 个中文关键词,逗号分隔) - 语气符合
{style}风格 - 字数控制:简述 500-800 字 / 详细 1500-3500 字
- 保持原文核心信息和事实准确性
中度改写(默认):
- 标题优化:基于
{title}生成引人注目的标题 - 结构重组:禁止照搬原文的章节结构和顺序,必须按核心价值点重新组织内容框架,提炼 3-5 个关键主题围绕展开
- 内容原创:每个段落用自己的语言重新表述,与原文表述相似度不超过 30%;删除原文中 50% 以上的细节描述,只保留核心信息
- 增值内容:必须添加原文没有的个人见解、使用建议、对比分析、注意事项、适用场景或实际案例
- 图片占位符独立成行,格式为
{{IMAGE:img_XXX.jpg}} - 每张图片占位符后紧跟一行
> 图片说明(不超过 20 字) - 每张图片说明后紧跟一行
\x3C!-- kw:img_XXX.jpg:关键词1,关键词2,关键词3 -->(3-5 个中文关键词,逗号分隔) - 语气符合
{style}风格 - 字数控制:简述 500-800 字 / 详细 1500-3500 字
- 保持原文核心信息和事实准确性
重度改写:
- 标题优化:基于
{title}生成引人注目的标题 - 结构重构:完全打破原文结构,以全新角度组织内容,构建独立的叙事框架
- 内容原创:与原文表述相似度不超过 10%,仅保留核心事实和数据;删除原文中 80% 以上的细节描述
- 深度增值:大量添加原文没有的深度分析、行业洞察、多角度对比、替代方案、注意事项、实际案例
- 原文图片:图片占位符独立成行,格式为
{{IMAGE:img_XXX.jpg}},每张后紧跟> 图片说明(不超过 20 字) - 每张图片说明后紧跟一行
\x3C!-- kw:img_XXX.jpg:关键词1,关键词2,关键词3 -->(3-5 个中文关键词,逗号分隔) - SVG 插图:在需要可视化说明的位置,直接输出 SVG 代码(流程图、示意图、装饰图等),用 Markdown 代码块包裹
- Mermaid 图表:在需要展示关系、流程、架构的位置,输出 Mermaid 代码,用 Markdown 代码块包裹
- AI 配图:在需要 AI 生成配图的位置,使用
{{AI_IMAGE:ai_img_XXX.jpg:prompt描述}}占位符,后紧跟\x3C!-- kw:ai_img_XXX.jpg:关键词1,关键词2,关键词3 -->。生成完成后,由技能脚本调用用户透传的图片生成 API 将占位符替换为真实图片 URL,保留关键词注释 - 语气符合
{style}风格 - 字数控制:详细模式 1500-3500 字(重度不支持简述模式)
- 保持原文核心信息和事实准确性
重度模式后处理:LLM 输出含 {{AI_IMAGE:ai_img_XXX.jpg:prompt}} 占位符的 Markdown 后,执行 scripts/generate_images.py 脚本:
python scripts/generate_images.py \x3Cinput_md> \x3Coutput_md> \
--api-key {multimodal.key} \
--api-url {multimodal.url}
脚本流程:
- 解析所有
{{AI_IMAGE:ai_img_XXX.jpg:prompt描述}}占位符,提取文件名和 prompt - 使用请求中透传的
multimodal.key和multimodal.url调用图片生成 API - 将占位符替换为
格式 - 保留
\x3C!-- kw:ai_img_XXX.jpg:关键词 -->注释,供插件端回填 IndexedDB - 输出最终 Markdown 图文
步骤 5:去 AI 味润色
参考文档:执行本步骤时,必须同时参考
references/ren-zh.md中的完整规范,包括核心规则、注入灵魂、高频 AI 模式及快速检查清单。
对生成的 Markdown 图文做去 AI 味处理,保持图片占位符和图片说明不被修改。
正确输出示例
# AI 助手正在重塑我们的办公方式
你有没有发现,以前要花半天整理的报表,现在几分钟就搞定了?
这不是科幻,而是正在发生的现实。
{{IMAGE:img_001.jpg}}
> AI 机器人自动处理文档
\x3C!-- kw:img_001.jpg:AI办公,自动化文档,机器人流程,智能处理 -->
就拿文档处理来说,过去人工一份份核对数据、排版、纠错,效率低还容易出错。现在接入 AI 助手后,它能自动识别表格结构、提取关键信息、甚至按你的风格生成初稿。
{{IMAGE:img_002.jpg}}
> 智能办公流程示意
\x3C!-- kw:img_002.jpg:数据大屏,实时监控,业务指标,可视化分析 -->
更妙的是,它不只是"工具",而是在不断学习你的偏好。你改得越多,它下次就越懂你。
当然,AI 也不是万能药。最终的判断、创意、策略,还得靠人。但那些重复枯燥的活儿,交给它确实很香。
拥抱新工具,把精力花在真正值钱的事情上。
\x3C!-- kw:img_003.jpg:团队协作,在线会议,远程办公,视频沟通 -->
\x3C!-- kw:img_004.jpg:数据安全,隐私保护,加密传输,安全防护 -->
错误处理
| 错误 | 处理方式 |
|---|---|
--- 分隔符后无 [IMAGE: xxx] 块 |
跳过步骤 2 和 3,直接生成纯文本文章 |
某张图片 context 和 index 均无法定位段落 |
跳过该图片,不执行关键字生成和插入 |
| 图片关键字语义匹配无合适段落 | 按 index 顺序就近插入,不强制语义匹配 |
重度模式 AI_IMAGE 生成 API 超时或失败 |
保留 {{AI_IMAGE:...}} 占位符,不阻塞文章输出 |
user 消息中缺少 style/mode/rewriteDepth |
默认值:公众号风格 / 详细 / 中度改写 |
| 正文内容为空 | 输出提示:"无法从该网页提取到有效正文内容" |
降级方案
| 故障 | 降级路径 |
|---|---|
| 重度模式图片生成 API 不可用 | 跳过 AI 配图,仅保留原文图片占位符 |
| 图片元数据解析失败 | 忽略该图片,继续处理其他图片 |
| 改写后文章字数不足下限 80% | 轻度补充原文相关段落,不补图片 |
| 步骤 0 无法获取 cloudVersion_from_plugin | 跳过版本检查,正常生成图文 |
安全注意事项
- 重度模式 AI 配图使用用户自行配置的图片生成 API(
multimodal.key/multimodal.url),技能本身不持有任何密钥 - 图片元数据以纯文本传输,不包含图片二进制数据
- 所有原始图片由插件端在本地 IndexedDB 管理,技能不读取用户本地文件
- 生成的图文为纯 Markdown,不包含可执行代码或脚本
- 敏感操作(调用外部 API)所需的密钥均由用户在插件设置页自行配置,技能不收集或上传任何凭证
注意事项
- 输出 Markdown 时不要用代码块包裹
- 图片占位符格式严格为
{{IMAGE:img_XXX.jpg}} - 图片说明不超过 20 字
- 图片插入位置由关键字语义匹配决定,不强制按 index 顺序
width和height仅用于判断图片宽高比和大致类型(横图/竖图/方图),不直接出现在输出中- 正文中若残留作者自我介绍语句(如"大家好,我是XX""嗨,我是XX"等),在生成时将其去除或改写,保持内容干净
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install claw-markdown-gen - 安装完成后,直接呼叫该 Skill 的名称或使用
/claw-markdown-gen触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
claw-markdown-gen 是什么?
从网页采集内容生成风格化图文(公众号/知乎/掘金/小红书/头条风格)。 当用户需要将网页文章转为精美图文、生成公众号推文、制作小红书笔记、或对文章进行AI改写时使用。 触发词: 生成图文、公众号文章、图文内容、微信推文、article generation、图文生成. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 39 次。
如何安装 claw-markdown-gen?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install claw-markdown-gen」即可一键安装,无需额外配置。
claw-markdown-gen 是免费的吗?
是的,claw-markdown-gen 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
claw-markdown-gen 支持哪些平台?
claw-markdown-gen 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(darwin, linux, win32)。
谁开发了 claw-markdown-gen?
由 天天修改(@webkixi)开发并维护,当前版本 v2.2.0。