简单易用的 Markdown 公众号排版工具
告别复杂工具,专注于内容创作。易用 Markdown 写作,一键复制到公众号。
| 功能 | 说明 | |
|---|---|---|
| 📝 | Markdown 语法 | 支持 GFM、表格、代码高亮、数学公式 |
| 🎨 | 主题切换 | 内置十余款精美主题,支持可视化设计器或自定义 CSS |
| 📋 | 一键复制 | 完美兼容微信公众号,所见即所得 |
| 🖼️ | 多图床支持 | 官方图床 / 七牛云 / 阿里云 / 腾讯云 / S3 兼容 |
| 💾 | 本地优先 | 数据存储在本地,无需登录,隐私安全 |
| 📱 | 跨平台 | Web 端 + 桌面端(macOS / Windows / Linux) |
| 🌙 | 界面风格 | 亮色 / 深色 双模式可选 |
| 👁️ | 深色模式预览 | 预览微信深色模式效果,还原度达 98%+ |
| 🔍 | 高级搜索 | 支持正则匹配、全词匹配、批量替换 |
| 🎞️ | 滑动图组 | 支持水平滑动的多图展示组件,丰富视觉体验 |
| 📊 | Mermaid 图表 | 内置流程图、时序图、甘特图等多种图表,自动适配主题配色 |
- 前端: React 18 + TypeScript + Vite
- 桌面端: Electron 28
- 后端服务: NestJS (图片上传服务)
- 状态管理: Zustand
- 编辑器: CodeMirror 6
- Markdown 解析: markdown-it 及相关插件
- 数学公式: KaTeX / MathJax
- 图表支持: Mermaid
- 代码高亮: highlight.js
- 样式处理: juice (内联样式处理)
- Monorepo: pnpm workspaces
- 构建工具: Turborepo
- 代码规范: ESLint + Prettier + Husky
- 容器化: Docker + Nginx
- Node.js ≥ 18
- pnpm ≥ 9(推荐
corepack enable pnpm)
pnpm install# 启动 Web 开发服务器
pnpm dev:web
# 启动桌面端(需先启动 Web)
pnpm dev:desktop# 构建所有项目
pnpm build
# 构建 Web
pnpm --filter @easymd/web build
# 构建桌面应用
pnpm --filter easymd-electron run build:mac # macOS
pnpm --filter easymd-electron run build:win # Windows
pnpm --filter easymd-electron run build:linux # Linux# ESLint 检查
pnpm lint
# Prettier 格式化
pnpm format- apps/web: 主前端应用,使用 React + Vite 构建
- apps/electron: 桌面端封装,使用 Electron 打包
- apps/server: 提供图片上传 API 服务(支持多图床)
- packages/core: 共享核心逻辑,包括 Markdown 解析、主题渲染、微信深色模式算法等
EasyMD 内置了一套色彩语义保全算法,可在编辑器中预览微信公众号深色模式下的实际效果,还原度达 98% 以上。
该算法基于微信官方开源的核心算法迁移并优化,旨在保证高性能 CSS 转换的同时提供最接近官方的渲染效果。
支持多种图床平台,满足不同用户需求:
- 官方图床
- 七牛云 Kodo
- 阿里云 OSS
- 腾讯云 COS
- Amazon S3 兼容
- 内置十余款精美主题
- 支持自定义 CSS
- 提供可视化主题设计器
- 主题可导出分享
- 遵循 ESLint 和 Prettier 配置
- 提交前会通过 Husky + lint-staged 自动检查
- 提交信息请遵循 Conventional Commits 规范
- Issues: 遇到问题?请提交 Issue
- 讨论: 想要新功能?来 Discussions 告诉我们
