xiaohongshu-images
Transform markdown/HTML into styled 3:4 ratio images for Xiaohongshu 新手引导:输入 `/小红书配图 新手`、「这个怎么用」「第一次用」「能干嘛」时,走 SKILL.md 的〈新手上路〉,不要直接开始干活。
By iamzifei · 1,964 installs
npx skills add iamzifei/xiaohongshu-images-skill --skill xiaohongshu-images
Source repository · Upstream listing
Xiaohongshu Images Skill
This skill transforms markdown, HTML, or text content into beautifully styled HTML pages with AI generated cover images, then captures them as sequential screenshots at 3:4 ratio for Xiaohongshu posting.
Overview
The skill performs the following workflow:
1. Accept Content : Receives markdown, HTML, or txt format content from the user
2. Load Prompt Template : Reads the prompt template from prompts/default.md in this skill's directory
3. Determine Output Account : Determines which account folder to use (see Account Folder Resolution below)
4. Generate Cover Image : Uses /baoyu cover image skill to generate a cover image based on the article content
5. Generate HTML : Creates a beautifully styled HTML page following the prompt template specifications
6. Save Output : Saves the HTML to ~/Dev/obsidian/{account folder}/articles/<date title /xhs preview.html
7. Capture Screenshots : Takes sequential 3:4 ratio screenshots of the entire page without cutting text
Account Folder Resolution
The skill determines the output account folder using the following priority:
Priority 1: Explicit account Parameter
If the user specifies account , use the corresponding folder:
Priority 2: Infer from Input File Path
If no account is specified, try to infer from the input file path:
Priority 3: Fallback to Template Mapping
If the account cannot be determined from the path (e.g., raw content input), use template based mapping:
Template Account Folder
default 10 在悉尼和稀泥
mom reading club 12 妈妈在读
Account Folder Mapping Reference
Account Folder
james cn 10 在悉尼和稀泥
james en 11 BuildWithJames
mom reading club 12 妈妈在读
Usage
When the user invokes this skill, follow these steps:
Step 1: Identify the Input
The user will provide one of the following:
A file path to a markdown, HTML, or txt file (e.g., /path/to/article.md )
Raw content directly in the conversation
A URL to fetch content from
If the input is unclear, ask the user to provide either a file path, URL, or paste the content directly.
Step 2: Read the Prompt Template
Read the prompt template from this skill's directory:
Use the Read tool to get the prompt template content. This template defines the HTML/CSS styling specifications.
Step 3: Extract Article Title, Date, and Determine Account
From the content, extract:
Title : The main heading (h1) or first significant title in the content
Date : Current date in YYYY MM DD format
Account Folder : Determine using the priority rules above ( account → path inference → template mapping)
Create the output folder path as: ~/Dev/obsidian/{account folder}/articles/<date <sanitized title /
Replace spaces with hyphens
Remove special characters
Keep the title reasonably short (max 50 characters)
All images go in attachments/ subfolder
Step 4: Generate Cover Image with baoyu cover image Skill
⚠️ COMPLIANCE CHECK : Before generating, ensure the image concept complies with Xiaohongshu community guidelines (Section 11 of the prompt template). The image must:
Be age appropriate with no revealing clothing or suggestive poses
Avoid political symbols, violence, gambling, smoking, or alcohol abuse
Convey positive, constructive messages
Be culturally sensitive and original
Use the /baoyu cover image skill to generate the cover image:
1. Invoke the skill with the article content:
Or if the content is not yet saved, pass the content directly to the skill.
2. Style Selection :
Let baoyu cover image auto select based on content signals, OR
Specify a style that matches the article tone:
tech AI, coding, digital topics
warm Personal stories, emotional content
bold Controversial, attention grabbing topics
minimal Simple, zen like content
playful Fun, casual, beginner friendly content
nature Wellness, health, organic topics
retro History, vintage, traditional topics
elegant Business, professional content (default)
Special: Mom Reading Club Template
When using the mom reading club template, override the default cover style with calligraphy & ink wash illustration (书法水墨风) :
3. Use no title flag since Xiaohongshu covers typically use visual only images without embedded text.
4. Move the generated image to the correct location:
baoyu cover image saves to imgs/cover.png relative to the article
Move/copy to ~/Dev/obsidian/{account folder}/articles/<date <title / attachments/cover xhs.png
Step 5: Generate HTML
⚠️ COMPLIANCE CHECK : Before generating HTML, review the text content for compliance:
No absolute/superlative claims (最好、第一、国家级、最高级、全网最低价)
No exaggerated effect claims (一分钟见效、吃完就变白)
No false or unverified medical/financial advice
No defamatory or offensive language
If health/investment topics are involved, add disclaimer text
Using the prompt template and the user's content:
1. Parse the content to identify:
Title (h1)
Subtitles (h2 h6)
Paragraphs
Lists
Code blocks
Links
Emphasis/bold text
Blockquotes
2. Generate complete HTML following the template specifications:
Dark gradient background
600px × 800px cream colored card
Proper typography with Google Fonts (Noto Serif SC, Inter, JetBrains Mono)
Cover image at the top
All specified styling for text, links, lists, code blocks, etc.
Responsive design for mobile
3. Important HTML Structure :
4. Save the HTML to ~/Dev/obsidian/{account folder}/articles/<date <title /xhs preview.html
Step 6: Take Screenshots
After generating the HTML, capture sequential screenshots of the .container element at exact 3:4 aspect ratio :
Screenshot Specifications:
Container viewport: 600px × 800px (3:4 ratio)
Output resolution: 1200px × 1600px (2x device scale factor)
Each screenshot captures exactly the .container element, not the full page
Capture Process:
1. Open the HTML page using Playwright browser with viewport larger than container
2. Configure browser context :
Viewport: 800px × 1000px (larger than container to ensure full visibility)
Device scale factor: 2x for high resolution output
3. Scroll within the container :
The .container element has overflow y: auto , making it internally scrollable
Start from scrollTop = 0 and increment through the content
Each scroll position captures one 3:4 ratio screenshot
4. Smart text boundary detection :
Before each screenshot, analyze visible block elements (p, h1 h6, li, blockquote, pre, img)
If an element would be cut at the bottom boundary, end the current screenshot before that element
Add whitespace mask to cover partial content, maintaining clean 3:4 frame
Next screenshot starts with the cut element at the top
5. Capture the complete .container content :
Use container.screenshot() to capture only the container element (excludes page background)
Continue until all content is captured (scrollTop reaches scrollHeight clientHeight)
6. Save screenshots to ~/Dev/obsidian/{account folder}/articles/<date <title / attachments/ :
Sequential naming: xhs 01.png , xhs 02.png , xhs 03.png , etc.
Use the screenshot script:
Script Output:
Each screenshot: exactly 1200×1600 pixels (3:4 ratio at 2x scale)
Only the cream colored card content is captured
No text is cut off between screenshots
Step 7: Report Results
After completion, report to the user:
HTML file location
Number of screenshots generated
Screenshots folder location
Preview of the first screenshot (if possible)
Directory Structure
Dependencies
This skill depends on:
/baoyu cover image skill for cover image generation (must be installed in ~/.claude/skills/ )
Example Workflow
User: Create a styled article page from this markdown:
Assistant Actions:
1. Read prompt template from prompts/default.md
2. Extract title: "My Article Title"
3. Determine account folder (no account specified, no path to infer from, using default template → 10 在悉尼和稀泥 )
4. Create output folder: ~/Dev/obsidian/10 在悉尼和稀泥/articles/2024 01 14 my article title/
5. Invoke /baoyu cover image skill with no title flag to generate cover image
6. Move generated cover from imgs/cover.png to attachments/cover xhs.png
7. Generate styled HTML following template specifications
8. Save to ~/Dev/obsidian/10 在悉尼和稀泥/articles/2024 01 14 my article title/xhs preview.html
9. Open in browser and take 3:4 ratio screenshots
10. Save screenshots to ~/Dev/obsidian/10 在悉尼和稀泥/articles/2024 01 14 my article title/ attachments/xhs 01.png , etc.
11. Report completion with file locations
Example with account parameter:
Assistant Actions:
1. account mom reading club specified → use 12 妈妈在读
2. Output to: ~/Dev/obsidian/12 妈妈在读/articles/2024 01 14 article title/
Example with path inference:
Assistant Actions:
1. No account specified
2. Input path contains 12 妈妈在读 → infer account folder
3. Output to same folder: ~/Dev/obsidian/12 妈妈在读/articles/2024 01 14 xxx/
Custom Prompt Templates
Users can provide custom prompt templates by:
1. Placing a .md file in the prompts/ directory
2. Specifying the template name when invoking the skill
Example: "Use the xiaohongshu style template for this article"
Available Templates
Template Description Best For
default Standard style with New Yorker style illustrations General articles
mom reading club Calligraphy & ink wash style with TsangerJinKai02 font Mom Reading Club (妈妈读书会) brand content
Mom Reading Club Template
Use this template for all "Mom Reading Club" branded content:
Features:
Font : TsangerJinKai02 (仓耳今楷02) for titles requires local installation
Cover style : Chinese calligraphy & ink wash illustration (书法水墨风)
Aesthetic : Zen simplicity, elegant restraint, generous white space
Color accent : Subtle gold ( C9A962)
Target audience : Cultured mothers aged 30 45
Error Handling
If the /baoyu cover image skill fails:
1. Display the error message to the user
2. Offer to retry or proceed without cover image
3. If proceeding without image, use a placeholder or omit the cover
If screenshot capture fails:
1. Verify the HTML file exists and is valid
2. Check browser dependencies
3. Report the specific error to the user
System Requirements
This skill requires:
Python 3.8+
Playwright for screenshot capture (installed via pip: pip install playwright && playwright install chromium )
/baoyu cover image skill installed in ~/.claude/skills/
Install dependencies:
Notes
The skill preserves all original content exactly as provided
No modifications, simplifications, or deletions to the content
The cover image is generated based on the article's main theme
Screenshots are optimized for Xiaohongshu's 3:4 aspect ratio
Text is never cut off in screenshots boundaries are adjusted intelligently
Community Compliance (社区规范合规)
IMPORTANT : All generated content must comply with Xiaohongshu community guidelines.
Quick Reference Prohibited Content:
Category Examples Action
Absolute claims 最好、最佳、第一、国家级 Remove or rephrase
Exaggerated effects 一分钟见效、立刻瘦10斤 Remove or add disclaimers
Medical/Financial advice Health tips, investment suggestions Add disclaimer: "本内容不构成医疗/投资建议"
Inappropriate imagery Nudity, violence, political symbols Regenerate with appropriate content
False information Pseudoscience, unverified claims Verify or remove
Defamatory content Attacks on brands/individuals Remove entirely
Official Guidelines:
社区规范: https://www.xiaohongshu.com/crown/community/rules
社区公约: https://www.xiaohongshu.com/crown/community/agreemen