一行命令,Markdown 发布到全网。
将排版好的 Markdown 文章一键发布到微信公众号、头条号、知乎、掘金、CSDN 等平台,无需手动复制粘贴。支持浏览器自动登录获取 Cookie,4 套精排渲染主题(按平台自动匹配),是内容创作者的效率神器。
| 特性 | 说明 |
|---|---|
| 多平台支持 | 微信公众号、头条号、知乎、掘金、CSDN、小红书、企鹅号、微博、B站(9 个适配器,2 个已实测) |
| 浏览器自动登录 | Playwright 驱动扫码/账号登录,Cookie 自动获取保存 |
| 4 套精排主题 | default(通用)、wechat(公众号)、modern(技术/知乎)、minimal(轻阅读/头条),均按平台自动匹配 |
| 自动封面图生成 | AI 根据标题生成封面图,自动上传到微信 CDN |
| Markdown 直发 | front-matter 元数据、代码高亮、LaTeX 公式 |
| CI/CD 友好 | 纯命令行无需浏览器,配置文件统一管理 |
| 草稿箱发布 | 微信公众号 → 草稿箱,其他平台 → 各自草稿箱 |
# 推荐:一键安装(Node.js ≥ 18)
npm install -g multi-publisher
# 验证安装
mpub --versionNode.js ≥ 18 required.
本工具已制作为 Claude Code Skill,可让 AI 直接帮你发布文章:
# 在任意 Claude Code 对话中,直接描述你的需求:
# "帮我把这篇 article.md 发布到微信公众号"
# "用 wechat 主题渲染预览一下"
# AI 会调用 mpub 完成操作查看支持的所有命令:mpub --help
配合 AI 使用:安装本工具后,在 Claude Code 中直接说"帮我发布文章到微信公众号",AI 会调用
mpub自动完成。
方式一:浏览器自动登录(推荐)
# 登录知乎
mpub login -p zhihu
# 登录掘金
mpub login -p juejin
# 登录小红书
mpub login -p xiaohongshu
# 查看所有支持平台
mpub login --help方式二:手动 Cookie 配置
# 交互式输入 Cookie
mpub cookie --platform zhihu --set
# 检查 Cookie 状态
mpub cookie --platform zhihu --check# 发布到微信公众号(默认)
mpub publish -f article.md
# 发布到知乎草稿
mpub publish -f article.md -p zhihu
# 一键发布到所有已登录平台
mpub publish-all -f article.md
# 渲染预览(不发布)
mpub render -f article.md
# 指定主题渲染
mpub render -f article.md -t wechat
# 自动封面图(文章无封面时 AI 生成)
mpub publish -f article.md -p weixin --auto-cover
# 指定封面图
mpub publish -f article.md -p weixin -c cover.jpg| 平台 | 登录命令 | Cookie 获取 | 草稿发布 | 状态 |
|---|---|---|---|---|
| 微信公众号 | mpub credential --set |
✅ | ✅ | ✅ 已实测(AppID + AppSecret) |
| 头条号 | mpub login -p toutiao |
✅ | ✅ | ✅ 已实测(2026-08-15,含封面/正文图) |
| 知乎 | mpub login -p zhihu |
✅ | 🔄 | 🔄 适配器就绪,待实测 |
| 掘金 | mpub login -p juejin |
✅ | 🔄 | 🔄 适配器就绪,待实测 |
| CSDN | mpub login -p csdn |
✅ | 🔄 | 🔄 适配器就绪,待实测 |
| 小红书 | mpub login -p xiaohongshu |
✅ | 🔄 | 🔄 适配器就绪,待实测 |
| 企鹅号 | mpub login -p qq |
✅ | 🔄 | 🔄 适配器就绪,待实测 |
| 微博 | mpub login -p weibo |
✅ | 🔄 | 🔄 适配器就绪,待实测 |
| B站 | mpub login -p bilibili |
✅ | 🔄 | 🔄 适配器就绪,待实测 |
- ✅ 已实测:作者真实环境验证可用
- 🔄 适配器就绪:代码已实现,尚未在真实环境验证
# 查看所有支持平台
mpub platformsmpub 内置 4 套浅色阅读主题,均针对公众号 / 知乎 / 头条等白底平台的真实排版规范做了优化:
| 主题 | 风格 | 适配平台 |
|---|---|---|
default |
通用简洁,绿调标题/引用 | 兜底,所有平台可用 |
wechat |
琥珀编辑风(Tufte 灵感):重点琥珀高亮、金句引用块、卡片容器 | 微信公众号 |
modern |
深色代码块、清晰层次(知乎/网页友好) | 知乎、技术博客 |
minimal |
极简留白、轻装饰 | 头条号等轻阅读平台 |
平台自动匹配:未用 -t 指定主题时,发布按平台自动选默认主题——
微信 → wechat,知乎 → modern,头条 → minimal,其余回退 default。
(手动 -t 仍可覆盖。)
完整预览:themes/all-themes-preview.html(含卡片容器示例,重新生成:npx tsx scripts/generate-all-themes-preview.ts)
正文可用卡片容器突出重点——tip(重点,琥珀)、warning(警示,红)、note(说明,灰),标题可选,内部支持完整 Markdown:
:::tip 先记住结论
项目放对地方:warm build **2.63s**。
:::
:::warning 验证纪律
黑洞连接也能完成 TCP 握手——验证必须看真实业务效果。
:::
:::note 适合谁
纯轻编辑型 → Windows 原生也可。
:::命令行预览:
mpub render -f article.md -t wechat
mpub render -f article.md -t modern
mpub render -f article.md -t minimal全部 4 主题: default、wechat、modern、minimal
# 不指定主题:发布到微信自动用 wechat,知乎自动用 modern
mpub publish -f article.md -p weixin
mpub publish -f article.md -p zhihu
# 渲染时手动指定主题
mpub render -f article.md -t wechat
# 发布时手动覆盖主题
mpub publish -f article.md -t modern -p zhihu# 使用自定义 CSS 文件
mpub render -f article.md --custom-theme ./my-theme.css/* my-theme.css 示例 */
body { font-family: 'PingFang SC', sans-serif; }
h1 { color: #1a1a1a; font-size: 1.5em; }
pre { background: #f6f8fa; border-radius: 6px; }重要:front-matter 是必需的!缺少 front-matter 会导致标题显示为"无标题"。
---
title: 文章标题 # 必填,用于公众号标题
author: 作者名 # 必填
description: 文章描述(可选) # 用于公众号摘要
cover: https://example.com/cover.jpg # 可选,有 --auto-cover 可省略
source_url: https://original.url # 原文链接(可选)
tags: [技术, 前端, JavaScript] # 标签(可选)
---
正文内容...所有配置存储在统一文件中,无分散文件:
// ~/.config/multi-publisher/config.json (Linux/macOS)
// %APPDATA%/multi-publisher/config.json (Windows)
{
"version": 1,
"weixin": {
"appId": "wx...",
"appSecret": "..."
},
"zhihu": {
"cookies": { "z_c0": "..." }
},
"juejin": {
"cookies": { "uid_tt": "..." }
}
}# 查看配置文件路径
mpub credential --locationsrc/
├── index.ts # CLI 入口,命令注册
├── config.ts # 统一配置管理(ConfigStore)
│
├── cli/ # 命令行接口
│ ├── index.ts # Commander.js 入口
│ ├── publish.ts # publish 命令
│ ├── render.ts # render 命令(预览)
│ ├── platforms.ts # platforms 命令
│ ├── credential.ts # credential 命令(微信凭据)
│ ├── cookie.ts # cookie 命令(Cookie 管理)
│ ├── login.ts # login 命令(浏览器自动登录)
│ └── publish-all.ts # publish-all 命令
│
├── core/ # 核心渲染引擎
│ ├── parser.ts # Markdown + front-matter 解析
│ ├── renderer.ts # 渲染管道(Markdown → HTML)
│ ├── styler.ts # CSS 内联(juice)
│ ├── mathjax.ts # LaTeX → SVG/PNG 公式
│ └── theme.ts # 主题加载与切换
│
├── adapters/ # 平台适配器
│ ├── interface.ts # IPlatformAdapter 接口定义
│ ├── index.ts # 适配器注册表
│ ├── base-adapter.ts # 基础适配器
│ ├── registry.ts # 平台注册与管理
│ ├── wechat-publisher.ts # 微信公众号发布核心
│ ├── weixin.ts # 微信公众号适配器
│ ├── zhihu.ts # 知乎适配器
│ ├── juejin.ts # 掘金适配器
│ └── ... # 其他平台适配器
│
└── runtime/ # 运行时抽象
├── index.ts # RuntimeInterface 接口
├── node-runtime.ts # Node.js 运行时实现
└── browser-runtime.ts # Playwright 浏览器运行时
Markdown 文件
│
▼
┌─────────────┐ ┌──────────────┐ ┌────────────────┐
│ parser.ts │───▶│ renderer.ts │───▶│ styler.ts │
│ front-matter│ │ AST → HTML │ │ CSS 内联 │
│ Markdown 解析│ │ 代码高亮/LaTeX│ │ 主题应用 │
└─────────────┘ └──────────────┘ └────────────────┘
│
┌──────────────────────────┘
▼
┌───────────────┐ ┌──────────────────────┐
│ wechat-publish│ │ platform adapter │
│ 图片上传 → media_id│ │ 调用平台 API 发布 │
└───────────────┘ └──────────────────────┘
interface IPlatformAdapter {
readonly meta: PlatformMeta // 平台元信息
init(runtime: RuntimeInterface): Promise<void>
checkAuth(): Promise<AuthResult> // 认证检查
publish(article: Article): Promise<SyncResult> // 发布文章
}# 安装依赖
npm install
# 开发模式
npm run dev
# 构建
npm run build
# 类型检查
npm run typecheck- 在
src/adapters/创建<platform>.ts,实现IPlatformAdapter接口 - 在
src/adapters/index.ts注册
// src/adapters/my-platform.ts
export class MyPlatformAdapter implements IPlatformAdapter {
readonly meta: PlatformMeta = {
id: 'myplatform',
name: '我的平台',
icon: 'https://...',
homepage: 'https://...',
capabilities: ['article', 'draft'],
}
// 实现 init / checkAuth / publish
}// src/adapters/index.ts
export { MyPlatformAdapter } from './my-platform.js'
// 添加到导出列表Q: 微信公众号发布需要什么权限?
需要已认证的公众号(订阅号或服务号),在微信公众平台 → 开发 → 基本配置获取 AppID 和 AppSecret。
Q: 浏览器自动登录支持哪些平台?
目前支持:微信、头条号(已实测)+知乎、掘金、CSDN、小红书、企鹅号、微博、B站(适配器就绪,待实测)。
Q: 多平台发布失败会怎样?
已发布成功的平台不受影响,失败平台返回具体错误信息,支持重试。
Q: 可以只发布到草稿箱吗?
是的,所有平台默认发布到草稿箱,需手动在各平台确认发布。
Apache-2.0 License