写公众号最痛苦的是什么?
不是选题,不是写内容,是排版。
我在公众号后台写了三年文章,每次排版都要反复折腾。文字贴着边框,代码块丑得不能看,表格一粘贴就碎,图片位置对不齐。折腾半小时排版,阅读量还没起来,心先累了。
用过各种在线排版工具,要么收费,要么一天只能免费用几次,要么在网页上改完还得复制到公众号后台再调一遍。而且它们大多是网页工具,没网的时候干瞪眼。
后来我想,这东西能不能自己在电脑上跑?纯本地,不联网,打开就能用?
试了一圈,最后自己动手
我先试了几个市面上的工具。
"壹伴"不错,但要装浏览器插件,有些功能还得付费。"135编辑器"功能全,但界面太花哨,每次打开都觉得压力大。"Markdown Here"倒是够简洁,但只支持邮件和少数几个平台,样式定制能力有限。
也试了几个开源的,但都有同样的问题——要么只支持最基础的Markdown语法,图片、表格、代码块支持不全;要么依赖后端服务,本地跑不起来。
我只需要一个东西:写Markdown,一键变成公众号文章格式,粘贴到后台直接发。离线能用,支持图片粘贴,代码块好看,表格规整。
找了一圈没有完全合心意的,干脆自己写了一个。
把它开源了,就是现在这个——格式坊。
它解决的是这些具体问题
先说说它到底能做什么,不说虚的。
第一,Markdown一键转公众号格式。
你在左边写Markdown,点击"一键排版"或者按 Ctrl+S,右边直接生成带内联样式的公众号文章。所有样式都写在标签的 style 属性里,复制到公众号后台不会丢失,因为公众号编辑器会过滤掉 class,但不会动内联样式。
支持标准的 GFM 语法:标题、列表、表格、代码块、引用、加粗、删除线、内联代码。而且做了额外处理——标题默认带左边框色块,代码块深色底等宽字,表格斑马纹加圆角,引用浅灰底配蓝边。这些都是公众号文章常见的排版风格,直接给你配好,不用再调。
第二,直接粘贴图片。
这是最实用的功能之一。写文章时截图、从设计软件导出图,直接 Ctrl+V 粘贴到编辑区,图片自动插入 Markdown 并显示在预览区。不需要先上传到图床、拿到链接、再写 Markdown 语法。省了三个步骤。
图片以 base64 形式存在本地,导出 Markdown 时会一并打包,换台电脑打开也能看到。
第三,粘贴 Excel 表格。
做数据类文章经常要贴表格。以前的做法是从 Excel 复制、粘到在线工具转成 Markdown、再粘回来。现在你可以直接从 Excel 复制单元格,粘贴到编辑区,自动转成管道表格语法。
第四,代码块友好。
我经常写技术类文章,代码块的展示是个大问题。公众号默认的代码样式几乎没法看——字体不一致,背景色奇怪,行间距太挤。
格式坊的代码块用的深色底(#1E1E2E)加浅色字(#CDD6F4),等宽字体,14px 内边距。内联代码单独处理,浅灰底加红色字,在正文里一眼就能认出来。还支持指定语言高亮提示。
第五,模板和样式定制。
标题的颜色和字号可以单独设置(H1\~H4 各有一个取色器和一个字号下拉),表格表头的背景色也可以自定义。设置好之后可以保存为模板,下次写同系列文章直接套用,保持风格统一。
内置了 9 套 CSS 预设:简约留白、暖阳橙调、森林绿意、暮色紫调、海洋蓝调、国风典雅、极客暗色、柔和莫兰迪、代码舒适。每套都有自己的配色体系。如果你懂 CSS,还可以在自定义面板里直接写样式覆盖任意元素。
第六,深度模式下的辅助功能。
说几个藏在细节里的:
- 首行缩进。公众号文章段落一般缩进两字符,打勾就行。
- 行号显示。编辑区左侧显示行号,长文章定位方便。
- 目录生成。检测文章中的 H1\~H4 标题,自动在顶部生成可点击的目录。
- 字数统计和预估阅读时间。排版后标题下方显示字数、段落数和大概阅读时长,方便控制文章长度。
- 历史版本。每次排版自动保存快照,最多 20 条,排版不满意可以回溯。
- 错别字检测。一些常见错别字会自动修正(比如"吿→告"),敏感词会给出警告。
- 搜索替换。按
Ctrl+F 打开搜索替换栏,支持前后导航和全部替换。
功能总览
编辑区
| 功能 |
说明 |
| Markdown 编辑 |
左栏文本区域输入或粘贴 Markdown |
| 行号显示 |
编辑区左侧显示行号 |
| 粘贴图片 |
从剪贴板粘贴图片 → 自动插入  占位符并渲染到预览 |
| 粘贴 Excel 表格 |
从 Excel 复制单元格 → 自动转为 Markdown 表格语法 |
| 拖入 .md 文件 |
拖拽 Markdown 文件到编辑区 → 自动载入 |
| 导入 .md 文件 |
点击工具栏 📂 按钮选择文件导入 |
| Tab 缩进 |
按 Tab 键插入制表符,非跳转焦点 |
| 快捷插入 |
工具栏 B/I/链接/引用/图片 按钮,快速包裹选中文本 |
| 草稿自动保存 |
输入 500ms 防抖 + 关闭页面时保存到 localStorage |
| 多草稿管理 |
工具栏 📝 按钮管理多个草稿(保存/切换/删除) |
一键排版
点击 "一键排版" 或按 Ctrl+S,将 Markdown 渲染为带内联样式的公众号文章 HTML。
- 本地排版(默认):纯客户端渲染,无需联网
- AI 排版(配置 API Key 后):调用 DeepSeek API 智能排版
排版后自动执行:
- 字数/段落/阅读时间 统计注入到标题下方
- 错别字自动修正
- 敏感词检测并警告
- 首行缩进、字体、段间距应用
预览区
| 功能 |
说明 |
| WYSIWYG 编辑 |
预览区 contenteditable,可直接修改排版结果 |
| 撤销/重做 |
Ctrl+Z / Ctrl+Y 或工具栏按钮,最多 50 步 |
| 搜索替换 |
Ctrl+F 切换搜索栏,支持前/后导航和全部替换 |
| 一键复制 |
复制排版 HTML 到剪贴板,直接粘贴到公众号后台 |
| 复制纯文本 |
去除所有格式,复制纯文字内容 |
| 自动生成目录 |
根据 H1\~H4 标题在文章顶部生成可点击目录 |
AI 辅助
| 功能 |
说明 |
| 润色 |
优化表达、修正语病,保持原意 |
| 扩写 |
丰富内容、增加细节 |
| 缩写 |
精简提炼核心信息 |
| 翻译 |
支持中译英/日/韩三种语言 |
点击工具栏 AI 按钮打开面板,输入或选中文字,选择操作类型即可。需要先配置 DeepSeek API Key。
样式控制
| 功能 |
说明 |
| H1\~H4 颜色+字号 |
工具栏取色器 + 下拉分别设置各级标题 |
| 表头色 |
自定义表格 thead 背景色 |
| 字体 |
系统默认 / 衬线 / 等宽 / 楷体 / 宋体 |
| 段间距 |
0.5em / 1em / 1.5em / 2em |
| 首行缩进 |
开关控制段落 2em 缩进 |
| 样式模板 |
保存当前样式配置为模板,快速切换(右键删除) |
| 模板导入/导出 |
工具栏 📤 按钮导出/导入 JSON 模板文件,方便分享 |
| 自定义 CSS |
写入 CSS 覆盖任意样式,内置 9 套预设模板 |
内置 CSS 预设
| 模板 |
风格 |
| 🌿 简约留白 |
干净透气,文字为主 |
| ☀️ 暖阳橙调 |
温暖活力,橙色调 |
| 🌲 森林绿意 |
自然沉稳,绿色系 |
| 🌆 暮色紫调 |
优雅深邃,紫色系 |
| 🌊 海洋蓝调 |
冷静专业,蓝色系 |
| 🏮 国风典雅 |
朱红墨色,楷体宣纸感 |
| 🌙 极客暗色 |
深色背景,GitHub 风格 |
| 🎨 柔和莫兰迪 |
低饱和度,高级克制 |
| 💻 代码舒适 |
暖深灰代码块,阅读友好 |
排版支持语法
| 元素 |
语法示例 |
说明 |
| H1 |
# 标题 / ## 标题 / 一、标题 |
左侧蓝色边框 |
| H2 |
## 标题 / ### 标题 / (一)标题 |
左侧浅蓝边框 |
| H3 |
### 标题 / #### 标题 / 【标题】 |
纯文字 |
| H4 |
#### 标题 / ##### 标题 |
纯文字 |
| 段落 |
普通文字 |
行高 1.8 |
| 加粗 |
**文字** |
深蓝色粗体 |
| 删除线 |
~~文字~~ |
灰色删除线 |
| 内联代码 |
`代码` |
浅灰底 + 红色字 |
| 链接 |
[文字](url) |
蓝色下划线 |
| 图片 |
 |
居中圆角 |
| 无序列表 |
- 项 / * 项 |
支持套嵌缩进 |
| 有序列表 |
1. 项 |
支持套嵌缩进 |
| 任务列表 |
- [ ] 待办 / - [x] 已完成 |
复选框 |
| 引用 |
> 引用 |
浅灰底 + 蓝色左边框 |
| 代码块 |
```语言 |
深色底等宽字体 |
| 缩进代码 |
行首 Tab / 4空格 |
自动识别 |
| 表格 |
\| 列1 \| 列2 \| |
斑马纹 + 圆角 |
| 分割线 |
--- |
灰色横线 |
| 公式 |
$$ LaTeX $$ |
CodeCogs SVG 渲染 |
导出
| 功能 |
说明 |
| 导出 Markdown |
下载 .md 文件,粘贴图片转为 base64 |
| 导出长图 |
使用 html2canvas 渲染预览为 PNG |
| 导出 PDF |
使用 html2canvas + jsPDF 生成 PDF 文件 |
界面主题
| 功能 |
说明 |
| 深色/浅色 |
页眉按钮切换,持久化偏好 |
| 全屏编辑 |
页眉按钮,主区域全屏 |
| 手机预览 |
限制预览宽度 375px 模拟手机 |
辅助功能
| 功能 |
说明 |
| 历史版本 |
每次排版保存快照,最多 20 条,可回溯恢复 |
| 快捷键面板 |
按 ? 键显示快捷键列表 |
| 快捷键自定义 |
工具栏 ⌨ 按钮可自定义快捷键 |
| 页脚配置 |
通过 window.GS_CONFIG.footer 自定义创作者信息 |
怎么用
使用门槛很低。
快速开始
下载
git clone https://github.com/moduwusuowei/geshifang.git
cd geshifang
npm start
# 或
node server.js
浏览器打开 http://localhost:8899 即可使用。
如果你需要让别人也能访问,部署也非常简单。项目是纯静态前端应用,可以部署到:
- Cloudflare Pages(推荐,直接拖文件夹上传)
- Vercel
- GitHub Pages
- 自己的 Nginx 服务器
- Docker
部署文档在 README 里写得很详细,这里不展开了。
如果你想体验一下在线版本,作者也部署了一个实例,不过因为只是个人项目,服务器配置不高,建议还是本地跑,体验更好,还不用依赖网络。
和同类工具比有什么不一样
| 对比项 |
格式坊 |
在线排版工具 |
浏览器插件 |
| 联网要求 |
完全离线 |
每次需要联网 |
需联网加载 |
| 图片粘贴 |
支持(base64) |
通常支持 |
部分支持 |
| Excel 粘贴 |
支持 |
很少支持 |
不支持 |
| 代码块样式 |
深色底+等宽字 |
各有不同 |
有限制 |
| CSS 自定义 |
完整 CSS 覆盖 |
通常不支持 |
不支持 |
| 模板保存 |
本地 JSON |
账号绑定 |
浏览器绑定 |
| 部署方式 |
静态文件即可 |
SaaS 产品 |
需发布审核 |
| 费用 |
免费开源 |
会员制或限次 |
部分收费 |
| 数据隐私 |
数据不出本地 |
数据过服务器 |
数据过插件 |
最大的区别是 数据隐私。你的文章内容从头到尾不会离开你的电脑。不需要注册,不需要登录,不需要联网。
另外一个区别是 可定制性。因为代码全部开源,懂前端的人可以自己修改样式、增加功能。我曾经加了一个自定义页脚的功能,本来只想自己用,想了想也放到主线了——这种自由度是商业产品给不了的。
AI 辅助排版
去年我开始尝试用 AI 辅助写文章。格式坊也接了一个可选的功能——配置 DeepSeek API Key 后,可以用 AI 润色、扩写、缩写、翻译文字。
用法很简单:选中要处理的文字,点 AI 按钮,选择操作,点执行。结果会显示在面板下,确认后直接应用到编辑区。
注意这是完全可选的功能,不配 API Key 不影响任何核心功能。而且 API Key 只存在你本地的配置文件中,不会被上传到其他地方。
其实最开始我没打算加这个功能。后来有朋友说,他每次写完初稿都要通读几遍改语病,如果 AI 能先帮忙过一遍,能省不少时间。我觉得有道理,就加了。但我坚持把它做成可选——排版这件事,核心还是应该由你自己控制。
技术栈
- 前端:原生 HTML / CSS / JavaScript ES Module
- 样式:Tailwind CSS(CDN)+ CSS 变量主题
- 排版引擎:纯 JavaScript 内联样式生成器
- AI 接口:DeepSeek API(可选)
- 图片渲染:html2canvas
- 公式渲染:CodeCogs LaTeX SVG
- 服务器:Node.js 静态文件服务
使用展示
1.一键格式化
2.添加目录
关于开源
这个项目我现在还在维护,虽然只是业余时间。
代码完全开源,MIT 协议。你可以:
- 下载源码自己部署
- 修改样式、增加功能
- 二次开发,整合到自己的工具链里
- 商用(MIT 协议不限制)
GitHub 地址在项目说明里。
写这个工具的时候我在想一个问题:很多开发者都在写公众号,但大部分人写完文章之后,排版这件事上花的精力远超过它应有的占比。如果有一个工具能把这件事压缩到一秒,那省下来的时间可以用来写更好的内容。
它不复杂,也不是什么黑科技。但我自己用了半年多,确实省了很多时间。如果你也在为公众号排版烦恼,可以试试。
如果觉得有用,去 GitHub 点个 star 就是最大的支持。
格式坊 · 本地 Markdown 转公众号排版工具
开源 · MIT · 纯前端 · 无需联网
Addr: https://github.com/moduwusuowei/geshifang.git
喜欢就添个star,为我的创作提供更强的动力......