关于 wechat-theme-extractor
分析微信公众号文章的视觉样式,并为 markdown-wechat-converter 生成可复用主题。技能会将主题写入 markdown-to-wechat.html,并支持检查和预览结果。
主要功能
- 01提取微信公众号文章 HTML 和标题
- 02分析字体、颜色与间距
- 03生成可复用的转换器主题
- 04添加或更新主题定义
- 05验证并预览结果
适用场景
- 01根据微信公众号文章创建转换器主题
- 02预览新生成的文章样式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ yangsonhung/ awesome-agent-skills --skill wechat-theme-extractor安装后在 Claude Code 中输入/wechat-theme-extractor确认已加载。
附带文件agents/openai.yamlscripts/extract.py
详细介绍
微信主题提取器
概述
从微信公众号文章中提取布局和样式特征,然后为 markdown-wechat-converter 生成可复用的主题。此工作流会根据文章推导字体排版、颜色、间距和区块样式,将生成的主题写入 markdown-to-wechat.html,并支持预览结果。
适用场景
在用户遇到以下情况时使用此技能:
- 提供
mp.weixin.qq.com文章 URL - 想要从微信公众号文章中提取字体排版、颜色、间距和区块样式
- 想要为
markdown-wechat-converter生成新主题 - 想要将主题写入
markdown-to-wechat.html并预览
不适用场景
遇到以下情况时不要使用此技能:
- URL 不是微信公众号文章
- 用户只想提取文章文本,不需要分析主题
- 目标项目不包含
markdown-wechat-converter或markdown-to-wechat.html
说明
- 运行
scripts/extract.py,获取文章 HTML 并提取标题和js_content。 - 阅读
.extracted_content.html,直接从 HTML 中分析样式特征。 - 生成与
markdown-wechat-converter兼容的主题对象。 - 在当前工作区中找到
markdown-to-wechat.html,并注入新主题,同时确保不破坏现有主题定义。 - 重新打开文件,确认主题条目已实际写入。
- 如果验证成功,在浏览器中打开
markdown-to-wechat.html进行预览。
工作流
User provides URL
-> run extractor script
-> produce .extracted_content.html
-> analyze styles
-> generate theme config
-> write into markdown-to-wechat.html
-> verify write result
-> open preview
运行脚本
python3 scripts/extract.py "https://mp.weixin.qq.com/s/xxxxx"
脚本职责
Python 脚本仅负责:
- 获取文章 HTML
- 提取文章标题
- 提取
js_content正文片段 - 将结果保存到
.extracted_content.html
AI 负责:
- 分析样式
- 生成主题
- 注入配置
- 写入后验证
- 打开预览
markdown-to-wechat.html 注入规则
更新 markdown-to-wechat.html 时,请遵循以下规则:
-
先找到实际的主题来源。
- 编辑前,搜索与主题相关的对象、数组、映射或
const赋值。 - 除非文件中确实存在,否则不要假设变量名固定。
- 编辑前,搜索与主题相关的对象、数组、映射或
-
保留现有结构。
- 与文件当前使用的对象格式、引号格式、缩进和尾随逗号约定保持一致。
- 不要重新格式化无关部分。
-
新增,不要盲目覆盖。
- 如果不存在同名新主题,则在现有主题集合中追加新条目。
- 如果已存在同名主题,只更新该条目,不要重复添加。
-
限定改动范围。
- 只修改主题定义区块,以及使主题可选所需的最小注册钩子。
- 除非文件结构要求进行最小连接改动,否则不要修改渲染器逻辑、事件处理程序或无关的 UI 代码。
-
写入后进行验证。
- 重新读取已编辑区段,确认主题键、标题和核心样式属性均已写入。
- 如果无法安全定位主题区块,请停止操作,并说明需要人工确认目标文件结构。
主题片段示例
生成与目标文件现有结构相符的主题对象。以下是一个最简参考格式:
{
id: "wechat-clean-blue",
name: "WeChat Clean Blue",
styles: {
body: {
fontFamily: "\"PingFang SC\", \"Helvetica Neue\", sans-serif",
fontSize: "16px",
color: "#2b2b2b",
lineHeight: "1.75",
backgroundColor: "#ffffff"
},
h1: {
fontSize: "24px",
fontWeight: "700",
textAlign: "center",
color: "#1f3a5f"
},
h2: {
fontSize: "20px",
fontWeight: "700",
color: "#1f3a5f",
borderBottom: "2px solid #9ec1ff"
},
blockquote: {
color: "#4a5568",
backgroundColor: "#f7fbff",
borderLeft: "4px solid #7fb3ff",
padding: "12px 16px"
}
}
}
写入时:
- 匹配
markdown-to-wechat.html中实际使用的字段名称 - 如果目标文件使用数组、映射或嵌套注册结构,请转换此格式
- 至少包含主题键、显示名称和核心字体排版样式
输出文件
scripts/.extracted_content.html:提取出的文章正文 HTML,顶部附有标题和来源 URL 注释
验证清单
- 已成功获取文章 HTML
.extracted_content.html存在且非空- 已提取标题和
js_content - 新主题条目已存在于
markdown-to-wechat.html中 - 预览页面已成功打开
评论
支持 Markdown