@liustack/mdpress
v0.2.1
Published
CLI for AI agents to convert Markdown into WeChat MP-ready HTML with inline styles, base64 images, and tag sanitization
Maintainers
Readme
mdpress
面向 AI Agent 的 Markdown 转换 CLI,可将 Markdown 输出为编辑器可粘贴的 HTML:
- 微信公众号模式:内联样式、base64 图片、语法高亮、标签清洗
- X/Twitter Articles 模式:语义化子集 HTML、图片占位文本、仅保留 HTTPS 链接
特性
- 输出微信公众号编辑器兼容的 HTML
- 输出 X/Twitter Articles 编辑器兼容的 HTML
- 所有样式内联(无外部 CSS 或
<style>标签) - 本地图片经 sharp 压缩后嵌入为 base64(单张 ≤ 2MB)
- 默认极简主题语法高亮(内联色值)
- Mermaid 流程图渲染为 PNG(通过 Playwright,可选)
- 外部链接自动转为脚注,文末附 References
- 基于白名单的标签清洗(
div→section,危险标签移除) - 支持 GFM(表格、删除线、任务列表 ☑/☐)
- 默认极简风格样式
安装
npm install -g @liustack/mdpress或使用 npx:
npx @liustack/mdpress [options]也可以作为 Agent Skill 安装 — 在任何支持 Agent Skill 的 AI 编程工具(Claude Code、Codex、OpenCode、Cursor、Antigravity 等)中输入:
帮我安装这个 skill:https://github.com/liustack/mdpress或使用 skills CLI 直接安装:
npx skills add https://github.com/liustack/mdpress --skill mdpress用法
# 将 Markdown 转换为公众号可用的 HTML
mdpress -i article.md -o output.html
# 将 Markdown 转换为 X/Twitter Articles 可粘贴的 HTML
mdpress -i article.md -o output.html --target x输出为 JSON 格式:
{
"input": "/path/to/article.md",
"output": "/path/to/output.html",
"size": 12345
}处理流程
mdpress 使用 unified(remark + rehype)管线,依次执行 6 个转换:
- 标签清洗 — 基于白名单过滤标签,
div→section,checkbox → Unicode ☑/☐,移除id和事件处理器 - Mermaid 渲染 — mermaid 代码块通过 Playwright 渲染为 PNG(极简风格主题,可选,需安装
mermaid+playwright) - 图片 base64 — 本地图片经 sharp 压缩(PNG/GIF/SVG/JPEG),嵌入为 data URI(≤ 2MB)
- 代码高亮 — 基于 highlight.js 的语法高亮,配合空白保护(
\n→<br>,空格 → NBSP) - 链接脚注 — 外部链接替换为文本 +
<sup>[N]</sup>,文末追加 References 区域;保留mp.weixin.qq.com链接 - 样式内联 — 默认极简风格按标签注入样式,hljs 类名转为内联色值,移除所有
className
输出的 HTML 可直接粘贴到微信公众号编辑器中使用。
参数
-i, --input <path>— 输入 Markdown 文件路径(必填)-o, --output <path>— 输出 HTML 文件路径(必填)-t, --target <target>— 渲染目标:wechat(默认)或x(支持别名twitter)-c, --copy— 将渲染后的 HTML 复制到系统剪贴板(富文本)
X/Twitter Articles 模式
使用 --target x(或 --target twitter)生成适配 X Articles 编辑器的极简语义化 HTML。
- 保留:
h2、p、strong/b、em/i、s/del、a、blockquote、ul/ol/li、br - 移除不支持的结构标签与样式属性
- 所有 Markdown 图片转换为占位文本(
[Image: ...]) - 仅
https://链接保留为真实<a href="..."> - 协议相对链接(
//...)会转换为https://... - 其他链接(
http、mailto、tel、file、相对路径、锚点)降级为纯文本
AI Agent Skill
License
MIT
