这是一套将 Markdown 转换为微信公众号可粘贴 HTML 的工具链,支持主题、字体、代码高亮和样式内联。
你可以把精力集中在内容创作上,而不是在公众号后台反复调样式。
- 支持有序列表和无序列表样式,减少在公众号后台被重置的问题
- 外链可自动转换为参考文献索引,并追加到文末
- 内置多种主题和字体组合
- 支持日语注音(假名)与汉语拼音样式
- 支持区别于微信默认样式的代码高亮主题
apps/web:浏览器编辑器,适合手动编辑、实时预览和复制粘贴到公众号后台apps/api:Node.js API 服务,适合集成到后端系统或自动化流程packages/cli:命令行工具md2weixin,适合脚本化批处理和 AI 调用packages/core:共享渲染核心,统一 API / CLI / Web 的渲染能力
- Node.js(建议 18+)
- pnpm(本仓库统一使用 pnpm)
npm install -g pnpm
pnpm installnpm install -g md2weixin
md2weixin ./article.md --theme chengxin --font cx > output.htmlpnpm --silent cli -- ./article.md --theme chengxin --font cx > output.html
pnpm --silent gencover -- --prompt "一只戴着侦探帽的柴犬"Markdown 转换示例:
md2weixin ./article.md --theme chengxin --font cx > output.htmlCLI 参数:
Markdown 转换:
<markdown-file-path>:必填,Markdown 文件路径--theme/-t:可选,主题名,默认default--font/-f:可选,cx或no-cx,默认cx
封面图生成(gencover):
--prompt:必填,图像提示词(不超过 2000 字符)
示例:
gencover --prompt "一只戴着侦探帽的柴犬"示例输出:
{
"success": true,
"imageUrl": "https://s.coze.cn/t/hwRtG9yX3nU/"
}环境变量:
COZE_API_KEY=your_pat_token
# 可选:COZE_WORKFLOW_ID=your_workflow_id(默认 7608985382533005339)
# 可选:COZE_API_BASE_URL=https://api.coze.cn
# 可选:COZE_BOT_ID=your_bot_id
# 可选:COZE_APP_ID=your_app_id帮助:
md2weixin -h
gencover -h构建并启动 API(默认生产端口 8081):
pnpm --dir apps/api build
pnpm --dir apps/api startcurl 测试(无需 token):
curl -X POST http://localhost:8081/api/wx-md \
-H "Content-Type: application/json" \
-d '{"markdown":"## 示例\n\n这是一个示例","theme":"chengxin","font":"cx"}'开发模式(默认端口 3000):
pnpm --dir apps/api devpnpm --dir apps/web start然后打开:
说明:
start会先同步 core 资产与本地前端 vendor(renderer / css / prettify / juice / marked / vue / axios / element-ui / jquery)再启动静态服务。- 若需要本地改 Less 并实时编译主题:
pnpm --dir apps/web start:with-less- 构建静态产物到
apps/web/dist:
pnpm --dir apps/web build
pnpm --dir apps/web previewapps/api: Node.js APIapps/web: 浏览器编辑器packages/core: 共享渲染核心packages/cli: 独立 CLI(md2weixin)
本仓库的最初创意来源于 zkqiang/wechat-mdeditor 和 lyricat/wechat-format,并在此基础上结合自用场景持续演进。
主题样式参考了 Markdown 编辑器。
感谢以上项目与作者的创意和贡献。
docs/DEVELOPER.md
- 新增独立命令
gencover,用于生成封面图 URL(支持--prompt)。 gencover改为基于@coze/api调用 Coze Workflow,支持默认工作流 ID 与可选环境变量配置。gencover输出结构优化:成功时返回success与imageUrl,失败时返回success与message。- CLI 增加
-v/--version支持(md2weixin与gencover均可查看版本号)。
- CLI 在转换前会忽略 Markdown 文件开头的 front matter,仅处理正文内容。
- front matter 解析改为使用
gray-matter,提升 YAML/TOML 场景的兼容性与稳定性。 - 当 front matter 解析异常时,CLI 会自动回退为按原文继续转换,避免中断流程。