markdown-to-image
markdown-to-image Skill
将 Markdown 文章渲染为小红书风格卡片图片(270×360px,3:4 比例,3× 高清输出)。
快速开始
第一次使用:安装环境
python markdown-to-image/setup.py
自动完成:检测 Python 3.8+、安装 playwright、下载 Chromium(约 150MB,仅需一次)。
生成卡片图片
# 默认 light 主题
python markdown-to-image/scripts/render.py article.md
# 指定主题
python markdown-to-image/scripts/render.py article.md --theme dark
PNG 输出到 .md 文件所在目录,命名:<文件名>_01_<主题>.png、<文件名>_02_<主题>.png...
主题
| 主题 | 描述 |
|---|---|
light |
白底黑字,蓝色高亮(默认) |
dark |
深蓝底色,浅蓝高亮 |
warm |
暖米底色,橙红高亮 |
forest |
白底黑字,绿色高亮 |
自定义主色调:修改 scripts/render.py 顶部 THEMES 字典中对应主题的 hl 字段。
支持的 Markdown 语法
| 语法 | 渲染效果 |
|---|---|
# h1 / ## h2 / ### h3 |
三级标题 |
| 正文段落 | 10px,行高 1.75 |
**文字** |
主色调高亮(不加粗字重) |
*文字* |
斜体 |
`code` |
内联代码块 |
```...``` |
代码块,字号自动缩放 |
> 引用 |
左侧主色竖线 |
--- |
分割线(不触发分页) |
- item / 1. item |
无序 / 有序列表 |
 |
图片(封面图自动识别) |
| 标准 Markdown 表格 | 字号自动缩放适应列数 |
分页逻辑
封面页:# 标题 + 第一段副标题 + 第一张图片(可选)组成封面顶部,图片下方继续贪心填充正文,直到塞满为止。
正文页:用 Playwright 真实渲染测量每个节点的 offsetHeight,按实际高度分页,不会截断内容。
--- 渲染为视觉分割线,不触发分页。
在 Claude Code 中注册为命令
在项目或全局 CLAUDE.md 中添加:
## 自定义命令
### /md2img
将 Markdown 文件生成为小红书卡片图片。
用法: /md2img <file.md> [--theme light|dark|warm|forest]
执行: python markdown-to-image/scripts/render.py $ARGUMENTS
之后在 Claude Code 中直接输入:
/md2img article.md
/md2img article.md --theme dark
目录结构
markdown-to-image/
├── SKILL.md 本文件
├── setup.py 环境检测与安装
└── scripts/
└── render.py 核心渲染脚本(Markdown 解析 + Playwright 截图)
常见问题
中文字体显示异常? Chromium 使用系统字体。macOS 自带苹方,Windows 自带微软雅黑,Linux 需手动安装:
sudo apt install fonts-noto-cjk
网络图片加载失败?
脚本使用 wait_for_load_state("networkidle") 等待图片加载。若图片需要认证或跨域限制,建议换用公开 CDN URL。
如何添加新主题?
在 render.py 顶部 THEMES 字典中新增一条,包含 bg、text、hl、codeBg、codeText、icBg、icText 七个字段即可。
More from yijingjia/skills
design-extractor
从参考网站提取完整设计系统,生成 design tokens、color palette、设计系统文档和可交互 HTML playground,并保存为可复用文件供后续页面开发使用。当用户想复刻、参考或提取某个网站的设计风格、配色、动效、排版、组件结构时触发。也适用于"我想参考 X 网站的风格来做我的网站"、"帮我提取这个网站的设计规范"、"复刻这个网站的导航/卡片/组件"等场景。
10lint-manager
Comprehensive lint configuration and error management for multi-language projects. Automatically detects programming languages, generates appropriate lint configurations (ESLint, Ruff, SwiftLint, golangci-lint), installs required tools, runs lint checks, and auto-fixes errors with AI. Use for setting up linting for a new project, configuring pre-commit hooks, running lint on staged or specific files, auto-fixing lint errors, detecting project programming languages, and generating lint configuration files. Supports JavaScript/TypeScript, Python, Swift, and Go.
5