# editor
**Repository Path**: Rain_2022/editor
## Basic Information
- **Project Name**: editor
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-17
- **Last Updated**: 2025-11-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Notion 风格块编辑器
基于 Tiptap 构建的现代化块编辑器,提供类似 Notion 的编辑体验。
## 功能特性
### 🎯 块类型支持
- **标题**: H1、H2、H3 三级标题
- **段落**: 标准文本段落
- **列表**: 无序列表、有序列表、任务列表
- **引用**: 美观的引用块
- **代码**: 代码块和内联代码
- **表格**: 可调整大小的表格
- **分割线**: 水平分割线
### ⚡ 快捷操作
- **斜杠命令**: 输入 `/` 快速选择块类型
- **工具栏**: 直观的工具栏操作
- **键盘快捷键**: 支持撤销、重做等常用操作
- **字数统计**: 实时显示字数和字符数
### 🎨 界面特性
- **Notion 风格**: 现代化的界面设计
- **响应式**: 适配移动端和桌面端
- **自定义主题**: 可扩展的样式系统
- **实时预览**: 内容实时预览功能
## 快速开始
### 安装依赖
```bash
pnpm install
```
### 开发环境运行
```bash
pnpm serve
```
### 构建生产版本
```bash
pnpm build
```
### 代码检查和修复
```bash
pnpm run lint
pnpm run lint:fix
```
### 自定义配置
可以在项目根目录创建 `vue.config.js` 进行自定义配置:
```javascript
// vue.config.js
module.exports = {
// 开发服务器配置
devServer: {
port: 3000,
open: true,
},
// 构建优化
configureWebpack: {
optimization: {
splitChunks: {
chunks: 'all',
},
},
},
// 资源处理
chainWebpack: config => {
config.plugin('html').tap(args => {
args[0].title = 'Notion 风格块编辑器';
return args;
});
},
};
```
## 使用方法
### 基本使用
```vue
```
### Props 配置
| 属性名 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| value | String | '' | 编辑器内容 |
| placeholder | String | '输入 / 来选择块类型...' | 占位符文本 |
### 事件
| 事件名 | 参数 | 说明 |
|--------|------|------|
| input | String (HTML内容) | 内容变化时触发 |
## 操作指南
### 斜杠命令
1. 在空行输入 `/`
2. 会弹出块类型选择器
3. 点击选择需要的块类型
### 工具栏操作
- 使用顶部工具栏快速切换块类型
- 支持撤销、重做操作
- 实时查看当前块类型状态
### 键盘快捷键
- `Ctrl/Cmd + Z`: 撤销
- `Ctrl/Cmd + Shift + Z`: 重做
- `Esc`: 关闭块选择器
## 技术栈
- **Vue 2.x**: 前端框架
- **Tiptap 2.x**: 富文本编辑器
- **SCSS**: 样式预处理
- **Vue CLI**: 项目脚手架
## 项目结构
```
src/
├── components/
│ └── Editor/
│ └── index.vue # 编辑器主组件
├── App.vue # 应用主组件
├── main.js # 应用入口
└── store/
└── index.js # Vuex 状态管理
```
## 自定义扩展
编辑器基于 Tiptap 构建,可以轻松扩展新的功能:
### 添加新的块类型
```javascript
// 在编辑器配置中添加新的扩展
import CustomExtension from '@tiptap/extension-custom'
this.editor = new Editor({
extensions: [
// ... 现有扩展
CustomExtension,
],
})
```
### 自定义样式
编辑器的样式使用 SCSS 编写,可以通过修改相应的类名来自定义外观。
## 浏览器兼容性
- Chrome 60+
- Firefox 55+
- Safari 12+
- Edge 79+
## 许可证
MIT License
## 贡献
欢迎提交 Issue 和 Pull Request 来改进这个项目!