← ClaudeAtlas

amlei-md2imglisted

把 Markdown 文件渲染成图片长图(PNG)。用 pandoc 转 HTML,再通过 Playwright 按移动端宽度整页截图,保留标题、代码块、列表等样式。当用户需要把 md 转成图片、生成文章分享长图、markdown to image、md 截图、把文档导出为图片时使用。
amlei/amlei-skills · ★ 0 · Data & Documents · score 70
Install: claude install-skill amlei/amlei-skills
# md2img 把 Markdown 渲染成一张 PNG 长图:`pandoc`(gfm→html5) → 套用 `references/themes/` 中的 HTML 主题模板 → Playwright 整页截图。默认按 390px 移动端宽度、3 倍设备缩放渲染,适合微信/社交分享。 ## 前置依赖 - **pandoc**(系统命令):`brew install pandoc` - **Playwright**(Python 包)+ 浏览器:`pip install playwright && playwright install chromium` - 缺浏览器时可改用本机已装的 Edge/Chrome:脚本传 `--channel msedge`(或 `chrome`) ## 输入 1. **Markdown 文件**:要渲染的 `.md` 文件路径。 2. **输出路径**(可选):目标 PNG 路径,默认与输入同名换 `.png` 后缀。 3. **主题**(可选):`references/themes/` 下的主题名(默认 `default`)。 4. **渲染参数**(可选):宽度(默认 390)、缩放倍数(默认 3)、浏览器 channel(默认 Playwright 自带 chromium)。 ## 交付 渲染好的 PNG 文件(默认同时保留中间 HTML 便于调试,可用 `--no-html` 删除)。返回:**PNG 文件路径** + 字节数。 ## 工作流程 1. 确认输入 `.md` 文件存在;不存在则停下并提示用户。 2. 确认依赖:`pandoc --version` 与 Playwright 浏览器是否就绪;缺失则给出安装命令,不擅自安装。 3. 确认输出参数(路径 / 主题 / 宽度 / 缩放);用户未指定则用默认值。 4. 运行脚本:`python skills/amlei-md2img/scripts/md2img.py <input.md> [-o out.png] [--theme default] [--width N] [--scale N] [--channel msedge]`。 5. 渲染完成后返回 PNG 路径;若图片异常(空白/截断),检查中间 HTML 并排查(网络图片未加载、CSS 失效等)。 ## 主题模板 主题放在 `references/themes/<name>.html`,是完整的 HTML 文档,必须包含 `{{body}}` 占位符(pandoc 输出注入处),可选 `{{title}}`(替换为输入文件名)。脚本按 `--theme <name>` 解析为 `references/themes/<name>.html`;也可直接传一个 `.html` 文件路径。内置 5 套主题: | name | 风格 | 明暗 | 特征 | |------|------|------|------| | `default` | blueprint 蓝图技术风 | 浅 | 方格底板 + 纸质卡片 + 琥珀强调 + `S/01` 章节标 | | `dusk` | 深色编辑风 | 深 | 渐变标题(青→蓝→紫)+ 渐变章节边 | | `riso` | 孔版印刷/risograph | 浅 | 半色调底纹 + 粉色错印投影 + 粗体大写 | | `ink` | 宣纸水墨 + 朱砂印章 | 浅 | 红印章 + 首字下沉 + 宋体衬线 | | `magazine`