wechat-theme-extractor
SKILL.md
WeChat Theme Extractor
Extract layout and style signals from a WeChat Official Account article, then generate a reusable theme for markdown-wechat-converter.
When to use
Use this skill when the user:
- Provides a
mp.weixin.qq.comarticle URL - Wants to extract typography, color, spacing, and block styles from a WeChat article
- Wants a new theme generated for
markdown-wechat-converter - Wants the theme written into
markdown-to-wechat.htmland previewed
Do not use
Do not use this skill when:
- The URL is not a WeChat Official Account article
- The user only wants article text extraction without theme analysis
- The target project does not contain
markdown-wechat-converterormarkdown-to-wechat.html
Usage
- Run
scripts/extract.pyto fetch the article HTML and extract the title andjs_content. - Read
.extracted_content.htmland analyze style traits directly from the HTML. - Generate a theme object compatible with
markdown-wechat-converter. - Locate
markdown-to-wechat.htmlin the current workspace and inject the new theme without breaking existing theme definitions. - Re-open the file and verify the theme entry was actually written.
- If verification succeeds, open
markdown-to-wechat.htmlin the browser for preview.
Workflow
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
Run the script
python3 scripts/extract.py "https://mp.weixin.qq.com/s/xxxxx"
Script responsibilities
The Python script only:
- Fetches article HTML
- Extracts the article title
- Extracts the
js_contentbody fragment - Saves the result to
.extracted_content.html
The AI handles:
- Style analysis
- Theme generation
- Config injection
- Post-write verification
- Preview opening
Injection rules for markdown-to-wechat.html
When updating markdown-to-wechat.html, follow these rules:
-
Find the real theme source first.
- Search for theme-related objects, arrays, maps, or
constassignments before editing. - Do not assume a fixed variable name unless it exists in the file.
- Search for theme-related objects, arrays, maps, or
-
Preserve the existing structure.
- Match the file's current object style, quote style, indentation, and trailing comma convention.
- Do not reformat unrelated sections.
-
Add, do not overwrite blindly.
- If the new theme name does not exist, append a new entry in the existing theme collection.
- If the same theme name already exists, update only that entry instead of duplicating it.
-
Keep the change scoped.
- Only touch the theme definition block and any minimal registration hook required to make the theme selectable.
- Do not modify renderer logic, event handlers, or unrelated UI code unless the file structure requires a minimal wiring change.
-
Verify after writing.
- Re-read the edited section and confirm the theme key, title, and core style properties are present.
- If the theme block cannot be located safely, stop and report that the target file structure needs manual confirmation.
Example theme snippet
Generate a theme object that matches the target file's existing structure. Use this as a minimal reference shape:
{
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"
}
}
}
When writing:
- Match the real field names used in
markdown-to-wechat.html - Convert this shape if the target file uses arrays, maps, or nested registration
- Include at minimum the theme key, display name, and core typography styles
Output file
scripts/.extracted_content.html: extracted article body HTML with title and source URL comments at the top
Validation checklist
- The article HTML was fetched successfully
.extracted_content.htmlexists and is not empty- The title and
js_contentwere extracted - The new theme entry exists in
markdown-to-wechat.html - The preview page opens successfully
Weekly Installs
2
Repository
yangsonhung/awe…t-skillsGitHub Stars
1
First Seen
11 days ago
Security Audits
Installed on
opencode2
gemini-cli2
antigravity2
claude-code2
github-copilot2
codex2