从零搭建 Markdown 编辑器:写完直接发博客,不用再复制粘贴
每次写完博客文章,你是不是也经历过这些?
打开 VS Code 写 Markdown → 复制内容 → 粘贴到 GitHub → commit → 等部署 → 检查效果 → 发现图片挂了 → 回去改 → 再推送……
一篇文章发布要折腾 20 分钟,更别提还要单独处理公众号排版。
今天,我把这套流程砍到了 1 分钟。

起因:一个偷懒的想法
我的博客用的是 Hexo + Butterfly 主题,部署在 Cloudflare Pages 上。之前每次写文章的流程是:
- 本地建 Markdown 文件
- 用 VS Code 编辑
- 手动上传图片到 R2
- 复制图片链接粘贴到 Markdown
- git commit + push
- 等 CF Pages 部署(1-2 分钟)
- 去浏览器检查效果
- 如果要发公众号,还得重新排版一遍
8 个步骤,每篇至少 30 分钟。
后来我想,能不能直接在网页上写,写完点一下”发布”就搞定?就像写微信公众号那样简单,但同时也能发到博客。
于是,我开始动手了。
先看看最终效果
编辑器部署在 admin.233002.xyz/editor,长这样:

左边是 Markdown 源码,右边是实时预览。顶部有工具栏,底部有发布按钮。整体风格跟博客保持一致,暗色主题。
核心功能拆解
1. 实时预览
写 Markdown 的时候,右边立刻就能看到渲染效果。不用等到部署后才发现排版问题。
支持的功能:
- 标题、粗体、斜体、删除线
- 代码块(带语法高亮)
- 表格
- 引用块
- 有序/无序列表
- 链接和图片
2. 图片拖拽上传
这是最实用的功能。直接把图片拖进编辑器,自动上传到 R2 存储桶,返回图片链接自动插入到 Markdown 里。

不用再去 R2 后台手动上传、复制链接、拼 Markdown 语法了。
鼠标悬停在图片上还能一键删除,同时清理 R2 上的文件,不会产生垃圾数据。
3. 智能工具栏
工具栏提供了常用的 Markdown 语法快捷插入:
| 按钮 | 功能 |
|---|---|
| B | 加粗 |
| I | 斜体 |
<> |
行内代码 |
| H2/H3 | 二级/三级标题 |
| 「」 | 引用块 |
| ≡ | 列表 |
| ⎘ | 代码块 |
| 📷 | 图片上传 |
| ➖ | 分割线 |
点一下就插入对应语法,不用手记 Markdown 语法。
4. 自动生成 URL 别名
每个博客文章都需要一个 URL 别名(Slug),比如 /2026/06/06/tech/markdown-editor/ 里的 markdown-editor。
编辑器会根据标题自动生成:
- 英文标题 →
my-blog-post - 中文标题 → 基于日期生成
不用再手动想了。
5. 一键双发布
这是整个项目最核心的功能——写一次内容,同时发布到两个平台:

博客端:
- Markdown 内容推送到 GitHub 仓库
- Cloudflare Pages 自动构建部署
- 图片走 R2 CDN 加速
公众号端:
- Markdown 自动转换为微信兼容的 HTML
- 图片上传到微信素材库
- 自动生成草稿,你只需要点”发布”
质量检查
写完文章点发布之前,编辑器会自动检查文章质量:

检查项包括:
- ✅ 标题字数(中文不超过 21 字,英文不超过 64 字节)
- ✅ 图片数量(至少 2 张,建议 6-8 张)
- ✅ 文章长度(800-2000 字为最佳区间)
- ✅ 段落数量(至少 3 段)
- ✅ 摘要是否填写
- ✅ 分类是否选择
- ✅ Slug 是否设置
全部通过才能发布,避免低质量内容流出。
自动保存草稿
写到一半浏览器崩了?没关系。
编辑器每 5 秒自动保存一次草稿到浏览器本地存储。下次打开编辑器,内容自动恢复。发布成功后自动清除草稿。
再也不用担心写到一半内容丢失了。
技术栈
整个项目分两个仓库:
| 组件 | 技术 | 说明 |
|---|---|---|
| 前端 | Vue 3 + Vite | 编辑器界面 |
| 后端 | Hono (Cloudflare Worker) | API 接口 |
| 存储 | Cloudflare R2 | 图片存储 |
| 部署 | CF Pages + Worker | 前后端分离 |
| 发布 | GitHub API + 微信 API | 双平台推送 |
前端部署在 admin.233002.xyz,后端是 Cloudflare Worker,图片存在 R2 上通过 img.233002.xyz 加速访问。
总结
从”打开 VS Code 写文章”到”打开浏览器写文章”,看似只是换了个编辑器,实际上是把整个发布流程自动化了。
之前: 写文章 30 分钟 + 发布 20 分钟 = 50 分钟
现在: 写文章 30 分钟 + 发布 1 分钟 = 31 分钟
省下来的时间,可以多写一篇文章。

你也在用 Hexo 或其他静态博客吗? 你平时写文章的流程是什么样的?欢迎在评论区分享你的效率工具 👇
️ 内容包含AI生成,请注意甄别。




