@srcker/editor-vue-next 1.2.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,71 +1,141 @@
1
1
  # Rich Editor
2
2
 
3
- 一个基于 Tiptap 的富文本编辑器,具有丰富的文本编辑功能。
3
+ 一个基于 Tiptap 的富文本编辑器,具有丰富的文本编辑功能,支持多种格式化选项和图片上传。
4
+
5
+ ![Rich Editor Screenshot](./public/images/editor-screenshot.png)
4
6
 
5
7
  ## 功能特性
6
8
 
7
- - 基础文本格式化:加粗、斜体、下划线、删除线
8
- - 标题设置
9
- - 字体大小调整
10
- - 颜色设置(文字颜色、背景高亮)
11
- - 行高和缩进控制
12
- - 对齐方式
13
- - 列表(有序和无序)及样式
14
- - 引用块
15
- - 链接
16
- - 待办事项
17
- - 代码块
18
- - 分割线
19
- - **图片上传功能**
9
+ - **基础文本格式化**:加粗、斜体、下划线、删除线
10
+ - **标题设置**:支持 H1-H5 标题
11
+ - **字体大小调整**:多种字体大小选项
12
+ - **颜色设置**:文字颜色和背景高亮
13
+ - **行高和缩进控制**:灵活的段落格式调整
14
+ - **对齐方式**:左对齐、居中对齐、右对齐
15
+ - **列表**:有序列表、无序列表、任务列表
16
+ - **引用块**:支持文本引用
17
+ - **链接**:插入和管理超链接
18
+ - **代码**:行内代码和代码块
19
+ - **图片上传**:支持本地图片上传
20
+ - **主题切换**:支持浅色和深色主题
21
+ - **撤销/重做**:编辑历史操作
22
+ - **清除格式**:快速清除文本格式
20
23
 
21
24
  ## 快速开始
22
25
 
23
- 安装依赖:
26
+ ### 安装依赖
24
27
 
25
28
  ```bash
26
29
  npm i @srcker/editor-vue-next
27
30
  ```
28
31
 
29
- 使用方法:
30
-
31
- ```bash
32
-
33
- # 引入组件
32
+ ### 使用方法
33
+
34
+ ```vue
35
+ <template>
36
+ <div>
37
+ <RichEditor
38
+ v-model="content"
39
+ theme="light"
40
+ format="html"
41
+ :uploadImage="uploadImage"
42
+ />
43
+ </div>
44
+ </template>
45
+
46
+ <script setup>
47
+ import { ref } from 'vue'
34
48
  import { RichEditor } from '@srcker/editor-vue-next'
35
- # 引入样式
36
49
  import '@srcker/editor-vue-next/style/toolbar'
37
50
  import '@srcker/editor-vue-next/style/content'
38
51
 
39
- # 使用组件
40
- <RichEditor v-model="form.content" theme="dark" format="html" />
52
+ const content = ref('<p>Hello Rich Editor!</p>')
41
53
 
54
+ // 自定义图片上传函数
55
+ const uploadImage = async (file) => {
56
+ // 这里实现你的图片上传逻辑
57
+ // 示例:返回图片的URL和名称
58
+ return {
59
+ url: 'https://example.com/image.jpg',
60
+ name: file.name
61
+ }
62
+ }
63
+ </script>
42
64
  ```
43
65
 
44
- 参数说明
45
66
  ## 配置项
67
+
46
68
  | 参数 | 说明 | 类型 | 默认值 |
47
69
  | --- | --- | --- | --- |
70
+ | v-model | 编辑器内容 | string | - |
48
71
  | theme | 主题,可选值:`light`、`dark` | string | `light` |
49
- | format | 输出格式,可选值:`html`、`json` | string | `html` |
50
- | uploadImage | 图片上传配置 | File | - |
51
-
52
- ## 图片上传配置
72
+ | format | 输出格式,可选值:`html`、`json`、`text` | string | `html` |
73
+ | height | 编辑器高度(像素) | number | 500 |
74
+ | toolbar | 自定义工具栏配置 | ToolbarConfig | 完整工具栏 |
75
+ | uploadImage | 图片上传函数 | (file: File) => Promise<{url: string, name: string}> | 内置Base64转换 |
76
+
77
+ ## 工具栏配置
78
+
79
+ 可以通过 `toolbar` 属性自定义工具栏按钮和布局:
80
+
81
+ ```javascript
82
+ // 示例:自定义工具栏
83
+ const customToolbar = [
84
+ ['undo', 'redo', 'format'],
85
+ ['heading', 'fontSize'],
86
+ ['bold', 'italic', 'underline', 'strike'],
87
+ ['alignLeft', 'alignCenter', 'alignRight'],
88
+ ['bulletList', 'orderedList', 'taskList'],
89
+ ['link', 'image']
90
+ ]
53
91
  ```
54
- const uploadImage = async (file: File) => {
55
- console.log(file)
56
- return {
57
- url: '图片地址',
58
- name: '图片名称'
59
- }
92
+
93
+ ## 图片上传
94
+
95
+ 编辑器支持通过工具栏按钮上传图片,默认使用 Base64 编码处理图片。你可以通过 `uploadImage` 属性自定义上传逻辑,例如上传到服务器:
96
+
97
+ ```javascript
98
+ const uploadImage = async (file) => {
99
+ // 实现你的上传逻辑
100
+ const formData = new FormData()
101
+ formData.append('image', file)
102
+
103
+ const response = await fetch('/api/upload', {
104
+ method: 'POST',
105
+ body: formData
106
+ })
107
+
108
+ const data = await response.json()
109
+ return {
110
+ url: data.url,
111
+ name: file.name
112
+ }
60
113
  }
61
114
  ```
62
115
 
63
-
64
116
  ## 技术栈
65
117
 
66
- - Vue 3
67
- - Tiptap
68
- - SCSS
118
+ - Vue 3 + Composition API
119
+ - Tiptap(富文本编辑器核心)
120
+ - SCSS(样式管理)
121
+ - Vite(构建工具)
69
122
 
70
- ## 图片上传
71
- 编辑器支持通过工具栏按钮上传图片,支持常见的图片格式(JPG、PNG、GIF、WebP),最大支持5MB的文件。
123
+ ## 浏览器兼容性
124
+
125
+ - Chrome/Edge 90+
126
+ - Firefox 88+
127
+ - Safari 14+
128
+
129
+ ## 许可证
130
+
131
+ ### 个人使用
132
+ - **免费**:个人学习、个人项目开发等完全免费 企业需要购买授权后使用
133
+
134
+ ### 商业使用
135
+ - **需要购买授权**:任何商业用途(包括但不限于企业内部使用、产品集成、SaaS服务等)都需要购买商业授权
136
+ - **授权方式**:联系作者 sinda@srcker.com 获取商业授权详情
137
+
138
+ ### 其他条款
139
+ - 不得修改源码后重新分发
140
+ - 不得将本项目作为竞品直接销售
141
+ - 保留版权声明和许可证信息