dachexiao1 一个功能强大的在线Markdown编辑器,专为博客和随笔写作而设计,集成GitHub发布功能。
- 通用文档: 普通的Markdown文档
- 博客文章: 自动生成包含标题、分类、发布日期、描述的YAML frontmatter
- 随笔: 包含标题、发布日期、心情、描述的个人随笔格式
- 基于Vditor的分屏预览编辑器
- 默认分屏模式,实时预览功能
- 丰富的工具栏
- 支持表格、代码块、数学公式等
- 自动保存到本地缓存
- 🌙 暗夜模式支持:一键切换亮色/暗色主题
- 多种上传方式:拖拽、粘贴、按钮上传
- CDN加速:支持jsDelivr、Statically等多种CDN服务
- 自动压缩:智能压缩大图片,节省存储空间
- 批量上传:支持同时上传多张图片
- 自动插入:上传完成自动插入Markdown图片链接
- 独立仓库:支持使用专门的图床仓库,与博客分离
- 一键发布到GitHub仓库
- 支持Astro项目结构:
- 博客文章发布到
src/content/posts/ - 随笔发布到
src/content/essays/
- 博客文章发布到
- 支持创建和更新文件
- 自动生成合适的文件路径和提交消息
- 支持Jekyll、Hugo、Astro等静态站点生成器
访问 index.html 查看主页,然后点击"开始写作"进入编辑器。
发布与图床功能均依赖构建时注入的环境变量,请在 Vercel 项目或本地 .env 文件中设置:
MARKDOWN_EDITOR_GITHUB_TOKEN:GitHub Personal Access Token(至少具备repo范围)MARKDOWN_EDITOR_GITHUB_OWNER:目标仓库的拥有者(用户名或组织名)MARKDOWN_EDITOR_GITHUB_REPO:用于发布内容的仓库名MARKDOWN_EDITOR_IMAGE_TOKEN(可选):图床仓库 Token,默认复用MARKDOWN_EDITOR_GITHUB_TOKENMARKDOWN_EDITOR_IMAGE_OWNER(可选):图床仓库拥有者,默认复用 GitHub 配置MARKDOWN_EDITOR_IMAGE_REPO(可选):图床仓库名,默认与内容仓库一致MARKDOWN_EDITOR_IMAGE_BRANCH(可选):图床分支,默认mainMARKDOWN_EDITOR_IMAGE_DIR(可选):图床根目录,默认imagesMARKDOWN_EDITOR_IMAGE_LINK_RULE(可选):CDN 规则,默认jsdelivr
完成变量配置后执行 npm run build 将其写入 static-deploy/js/runtime-config.js,再运行 npm start 预览。
- 在根目录创建
.env.local并填充上述变量 - 运行
npm run build && npm start - 访问
http://localhost:8080/index.html验证仓库与图床功能
-
选择内容类型
- 点击顶部的按钮选择:通用文档、博客文章或随笔
-
编辑元数据(博客和随笔)
- 点击"编辑元数据"设置标题、分类、发布日期等信息
-
编写内容
- 在编辑器中编写Markdown内容
- 支持实时预览
-
插入图片(如已配置图床)
- 拖拽上传:直接将图片拖拽到编辑器
- 粘贴上传:复制图片后按Ctrl+V粘贴
- 按钮上传:点击工具栏上传按钮选择文件
- 上传完成后自动插入Markdown图片链接
-
发布到GitHub
- 点击"发布到GitHub"将内容推送到仓库
- 系统会自动生成合适的文件路径和YAML frontmatter
发布的文件会按以下结构组织(适配Astro项目):
your-astro-blog/
├── src/content/
│ ├── posts/ # 博客文章
│ │ └── 2024-01-01-article-title.md
│ └── essays/ # 随笔
│ └── 2024-01-01-essay-title.md
└── docs/ # 通用文档
└── document-title.md
---
title: "文章标题"
categories: ["技术", "教程"]
date: "2024-01-01 12:00:00"
description: "文章描述"
------
title: "随笔标题"
date: "2024-01-01 12:00:00"
mood: "愉快"
description: "随笔描述"
---- 前端框架: Vue.js 2.x
- UI组件: Element UI
- 编辑器: Vditor
- API集成: GitHub REST API
- 存储: localStorage(草稿缓存)
- 点击右上角的 🌙/☀️ 按钮切换主题
- 自动保存主题偏好设置
- 编辑器和预览都会同步切换主题
编辑器完全支持移动设备:
- 自适应布局
- 触摸友好的界面
- 移动端优化的工具栏
- GitHub Token 存放于部署平台的环境变量中,构建时注入前端,不会写入仓库
- 本地调试可通过
.env.local+npm run build生成运行时配置,请避免提交敏感文件 - 仍建议将 Token 权限限制在
repo所需范围内
- 将仓库推送到 GitHub
- 在 Vercel 中导入项目
- 设置 Environment Variables(同上表)
- 配置构建命令:Build Command
npm run build,Output Directorystatic-deploy - 发起部署,Vercel 会在构建阶段生成
js/runtime-config.js
- 选择"博客文章"类型
- 编辑元数据:设置标题、分类等
- 编写文章内容
- 发布到GitHub的
_posts目录
- 选择"随笔"类型
- 编辑元数据:设置标题、心情等
- 编写随笔内容
- 发布到GitHub的
src/content/essays目录
- 点击右上角的 🌙 按钮切换到暗夜模式
- 点击 ☀️ 按钮切换回亮色模式
- 主题设置会自动保存到本地
欢迎提交Issue和Pull Request来改进这个项目!
MIT License
享受写作的乐趣! ✨