# xb-markdown-editor
**Repository Path**: pythonxueba/xb-markdown-editor
## Basic Information
- **Project Name**: xb-markdown-editor
- **Description**: 功能丰富的左右分页 Markdown 编辑器,支持多种排版样式、纹理背景、代码高亮主题和 AI 生成功能
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-01-05
- **Last Updated**: 2026-01-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# XB Markdown Editor
一款功能丰富的左右分页 Markdown 编辑器,支持多种排版样式、纹理背景、代码高亮主题和 AI 生成功能。




[在线演示](#) · [功能特性](#功能特性) · [快速开始](#快速开始) · [使用指南](#使用指南) · [部署文档](#部署文档)
## 📖 功能特性
### 核心功能
- ✨ **实时预览** - 左右分屏编辑,实时渲染 Markdown 内容
- 🎨 **12种排版样式** - 支持简约、现代、微信排版等多种风格
- 🖼️ **34种纹理背景** - 多种精美纹理背景可选,美化阅读体验
- 🌈 **20+ 代码高亮主题** - 支持主流代码高亮主题,一键切换
- 🔢 **数学公式支持** - 完整支持 LaTeX 数学公式渲染(KaTeX)
- 🤖 **AI 内容生成** - 集成大语言模型,智能生成和续写内容
- 📋 **一键复制** - 复制渲染后的预览内容(包含样式和纹理)
- 📱 **响应式设计** - 完美适配桌面端和移动端,移动端上下排列
### 编辑功能
- 🔍 **语法高亮** - 代码块自动高亮显示
- 📝 **GFM 支持** - 完整支持 GitHub Flavored Markdown
- 🔗 **快捷链接** - 自动识别链接格式
- 📊 **表格支持** - 支持 Markdown 表格语法,表格背景透明
- ✅ **任务列表** - 支持 Todo 列表格式
- 🎯 **代码块语言** - 自动识别编程语言
### 导出功能
- 📄 **Markdown 导出** - 导出原始 .md 文件
- 🌐 **HTML 导出** - 导出样式完整的 .html 文件,与预览完全一致
- 📋 **富文本复制** - 复制渲染后的预览内容,包含样式、纹理和代码高亮
## 🚀 快速开始
### 环境要求
- Node.js >= 18.0.0
- pnpm >= 8.0.0(推荐)或 npm >= 9.0.0
### 安装步骤
1. **克隆仓库**
```bash
git clone https://gitee.com/pythonxueba/xb-markdown-editor.git
cd xb-markdown-editor
```
2. **安装依赖**
```bash
# 使用 pnpm(推荐)
pnpm install
# 或使用 npm
npm install
```
3. **启动开发服务器**
```bash
pnpm dev
# 或
npm run dev
```
4. **访问应用**
打开浏览器访问 [http://localhost:5000](http://localhost:5000)
## 📖 使用指南
### 基础编辑
1. **左侧编辑区** - 输入 Markdown 内容
2. **右侧预览区** - 实时查看渲染效果
3. **工具栏** - 点击图标快速切换功能
### 样式切换
- **排版样式**:点击顶部工具栏的样式图标,选择适合的排版风格(12种可选)
- **纹理背景**:切换不同的背景纹理(34种精美纹理可选)
- **代码主题**:从 20+ 主流主题中选择代码高亮样式
### 数学公式
支持完整的 LaTeX 数学公式语法:
**行内公式**:`$E = mc^2$`
**块级公式**:
```
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
```
### AI 生成
1. 点击 AI 生成按钮(🪄 图标)
2. 选择生成模式(简单、中等、深度、扩写、润色、总结、翻译、优化)
3. 输入提示词
4. 等待 AI 流式生成内容
5. 生成内容会自动插入到编辑器
### 复制功能
点击复制按钮(📋 图标),会将渲染后的预览内容(包含样式、纹理、代码高亮)复制到剪贴板,可直接粘贴到支持富文本的编辑器中。
### 导出功能
- **下载 Markdown**:导出原始 .md 文件,可继续编辑
- **下载 HTML**:导出样式完整的 .html 文件,可在浏览器中直接查看
## 🛠️ 技术栈
### 核心框架
- **Next.js 16** - React 框架(App Router)
- **React 19** - UI 库
- **TypeScript** - 类型安全
- **Tailwind CSS 4** - 样式框架
### Markdown 渲染
- **react-markdown** - Markdown 解析
- **remark-gfm** - GitHub Flavored Markdown 支持
- **remark-math** - 数学公式解析
- **rehype-highlight** - 代码高亮
- **rehype-katex** - 数学公式渲染
### 其他依赖
- **highlight.js** - 代码高亮引擎(20+ 主题)
- **katex** - 数学公式渲染引擎
- **lucide-react** - 图标库
- **coze-coding-dev-sdk** - AI 集成
## 🎨 界面设计
### 设计原则
- **深色工具栏** - 顶部工具栏采用深色背景,白色图标,清晰易用
- **纯白编辑区** - 编辑器背景纯白,文字黑色,提供最佳编辑体验
- **透明表格** - 表格背景透明,融入整体设计
- **紧凑UI** - 工具栏元素小巧精致,最大化编辑区域
- **响应式布局** - PC端左右分栏,移动端上下排列,完美适配各种屏幕
### 排版样式
支持 12 种精心设计的排版样式:
1. **默认简约** - 简洁大方,适合日常写作
2. **微信公众号** - 专为微信文章排版优化
3. **优雅衬线** - 优雅衬线字体,适合文学创作
4. **代码极客** - 等宽字体,适合技术文档
5. **清新薄荷** - 清新绿色调,轻盈舒适
6. **优雅紫韵** - 优雅紫色调,高贵典雅
7. **科技蓝调** - 科技蓝色调,专业现代
8. **深空灰调** - 深色灰色调,沉稳大气
9. **文艺青绿** - 文艺青绿色,清新雅致
10. **温暖橙调** - 温暖橙色调,活力满满
11. **商务蓝调** - 商务蓝色调,专业严谨
12. **精致阅读** - 精致调色,适合长时间阅读
### 纹理背景
提供 34 种精美纹理背景,包括:
- 基础纹理:精细点阵、细方格、斜线纹理、菱形格、波点
- 自然主题:星空、宇宙极光、海洋波浪、森林绿意、落日余晖
- 数字风格:数字矩阵、霓虹灯效、数据流、代码注释
- 艺术风格:水墨山水、冰晶雪花、梦幻气泡、樱花飘落
- 复古风格:复古唱片、金色光晕、像素艺术
- 简约风格:极简网格、渐变光束、抽象线条
## 📦 构建和部署
### 本地构建
```bash
# 构建生产版本
pnpm build
# 启动生产服务器
pnpm start
```
### 部署到 Vercel
1. 将代码推送到 GitHub/Gitee
2. 访问 [Vercel](https://vercel.com)
3. 导入项目仓库
4. Vercel 会自动识别 Next.js 项目并部署
### 部署到其他平台
#### Docker 部署
```dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 5000
CMD ["npm", "start"]
```
构建并运行:
```bash
docker build -t xb-markdown-editor .
docker run -p 5000:5000 xb-markdown-editor
```
#### Node.js 服务器部署
1. 构建项目:`pnpm build`
2. 上传 `next.config.ts`、`package.json`、`package-lock.json`、`.next` 目录到服务器
3. 安装依赖:`pnpm install --production`
4. 启动服务:`pnpm start`
## 📁 项目结构
```
xb-markdown-editor/
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ └── ai/
│ │ │ └── generate/
│ │ │ └── route.ts # AI 生成 API
│ │ ├── globals.css # 全局样式
│ │ ├── layout.tsx # 根布局
│ │ └── page.tsx # 主页面(编辑器核心)
├── .coze # 项目配置
├── .cozeproj/ # 构建脚本
├── package.json # 项目依赖
├── tsconfig.json # TypeScript 配置
├── tailwind.config.ts # Tailwind 配置
└── README.md # 项目文档
```
## 🌟 特色功能详解
### 完美的复制功能
使用 Selection API 的 `selectNodeContents` 方法,从实际渲染的 DOM 元素获取计算样式,确保复制的内容与预览完全一致,包括:
- 文字颜色和大小
- 背景纹理
- 代码高亮
- 表格样式
- 数学公式
### 流式 AI 生成
使用 SSE (Server-Sent Events) 协议实现流式响应,提供流畅的 AI 内容生成体验:
- 支持 8 种生成模式
- 实时显示生成进度
- 生成内容自动插入编辑器
- 支持错误重试
### 响应式设计
- **桌面端**:左右分栏,编辑器和预览并排显示
- **移动端**:上下排列,编辑器和预览可切换查看
- **工具栏自适应**:图标大小和文字大小根据屏幕尺寸自动调整
### 数学公式支持
完整的 LaTeX 数学公式支持:
- 行内公式:`$ ... $`
- 块级公式:`$$ ... $$`
- 支持所有常用数学符号和公式
## 🤝 贡献指南
欢迎贡献代码、报告问题或提出建议!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 📝 更新日志
### v1.0.0 (2025-01-XX)
- ✨ 初始版本发布
- ✅ 实现基础 Markdown 编辑功能
- ✅ 支持 12 种排版样式
- ✅ 支持 34 种纹理背景
- ✅ 支持 20+ 代码高亮主题
- ✅ 集成 AI 内容生成功能
- ✅ 实现一键复制和导出功能
- ✅ 完美响应式设计
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 🙏 致谢
- [Next.js](https://nextjs.org/) - React 框架
- [React](https://reactjs.org/) - UI 库
- [react-markdown](https://github.com/remarkjs/react-markdown) - Markdown 解析器
- [highlight.js](https://highlightjs.org/) - 代码高亮
- [KaTeX](https://katex.org/) - 数学公式渲染
- [Tailwind CSS](https://tailwindcss.com/) - CSS 框架
## 📮 联系方式
- 项目地址:[https://gitee.com/pythonxueba/xb-markdown-editor](https://gitee.com/pythonxueba/xb-markdown-editor)
- 问题反馈:[Issues](https://gitee.com/pythonxueba/xb-markdown-editor/issues)
---
如果这个项目对你有帮助,请给个 ⭐️ Star 支持一下!
Made with ❤️ by XB