md-tiptap 0.1.0

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 ADDED
@@ -0,0 +1,215 @@
1
+ # md-tiptap
2
+
3
+ 一个基于 TipTap 的强大 Markdown 编辑器组件,具有类似 Notion 的功能。
4
+
5
+ [![npm version](https://img.shields.io/npm/v/md-tiptap.svg)](https://www.npmjs.com/package/md-tiptap)
6
+ [![license](https://img.shields.io/npm/l/md-tiptap.svg)](https://github.com/yourusername/md-tiptap/blob/master/LICENSE)
7
+
8
+ 📖 [快速开始](./QUICK_START.md) | 💡 [使用示例](./EXAMPLE.md) | 📦 [发布指南](./PUBLISH.md) | 🎨 [shadcn 依赖说明](./SHADCN_DEPENDENCIES_SUMMARY.md)
9
+
10
+ ## 特性
11
+
12
+ - ✨ 丰富的文本格式化选项(粗体、斜体、下划线、删除线等)
13
+ - 📝 支持标题、列表、引用、代码块
14
+ - 🖼️ 图片插入和管理
15
+ - 📊 表格支持(插入/删除行列、表头切换)
16
+ - ✅ 任务列表(待办事项)
17
+ - 🎨 文本颜色和高亮
18
+ - 🔢 数学公式支持(行内和块级公式)
19
+ - ⚡ 斜杠命令(输入 `/` 快速插入内容)
20
+ - 🎯 气泡菜单(选中文本时显示)
21
+ - 🔄 撤销/重做
22
+
23
+ ## 安装
24
+
25
+ ```bash
26
+ npm install md-tiptap
27
+ # 或
28
+ pnpm add md-tiptap
29
+ # 或
30
+ yarn add md-tiptap
31
+ ```
32
+
33
+ ## 使用
34
+
35
+ ### 基础使用(推荐)
36
+
37
+ ```tsx
38
+ import { TiptapEditor } from 'md-tiptap'
39
+ import 'md-tiptap/style.css' // 包含所有必需样式
40
+
41
+ function App() {
42
+ const [content, setContent] = useState('<p>Hello World!</p>')
43
+
44
+ return (
45
+ <TiptapEditor
46
+ value={content}
47
+ onChange={setContent}
48
+ />
49
+ )
50
+ }
51
+ ```
52
+
53
+ ### 如果你的项目已使用 Tailwind CSS
54
+
55
+ 如果你的项目已经配置了 Tailwind CSS,可以使用最小样式版本避免冲突:
56
+
57
+ ```tsx
58
+ import { TiptapEditor } from 'md-tiptap'
59
+ import 'md-tiptap/style-minimal.css' // 仅组件样式,不包含 Tailwind 基础样式
60
+
61
+ function App() {
62
+ const [content, setContent] = useState('<p>Hello World!</p>')
63
+
64
+ return (
65
+ <TiptapEditor
66
+ value={content}
67
+ onChange={setContent}
68
+ />
69
+ )
70
+ }
71
+ ```
72
+
73
+ > **注意**:使用 `style-minimal.css` 时,你的项目需要已配置 Tailwind CSS v4+。
74
+
75
+ ### 带图片上传
76
+
77
+ ```tsx
78
+ import { TiptapEditor } from 'md-tiptap'
79
+ import 'md-tiptap/style.css'
80
+
81
+ function App() {
82
+ const [content, setContent] = useState('<p>Hello World!</p>')
83
+
84
+ const handleImageUpload = async (file: File) => {
85
+ // 实现你的图片上传逻辑
86
+ const formData = new FormData()
87
+ formData.append('file', file)
88
+ const response = await fetch('/api/upload', {
89
+ method: 'POST',
90
+ body: formData,
91
+ })
92
+ const data = await response.json()
93
+ return data.url
94
+ }
95
+
96
+ return (
97
+ <TiptapEditor
98
+ value={content}
99
+ onChange={setContent}
100
+ onImageUpload={handleImageUpload}
101
+ />
102
+ )
103
+ }
104
+ ```
105
+
106
+ ## Props
107
+
108
+ | 属性 | 类型 | 必填 | 说明 |
109
+ |------|------|------|------|
110
+ | `value` | `string` | 否 | 编辑器的 HTML 内容 |
111
+ | `onChange` | `(html: string) => void` | 否 | 内容变化时的回调函数 |
112
+ | `onImageUpload` | `(file: File) => Promise<string>` | 否 | 图片上传处理函数,需返回图片 URL |
113
+
114
+ ## 功能说明
115
+
116
+ ### 斜杠命令
117
+
118
+ 在编辑器中输入 `/` 可以打开命令菜单,快速插入:
119
+ - 标题(H1、H2、H3)
120
+ - 列表(有序、无序)
121
+ - 任务列表
122
+ - 引用
123
+ - 代码块
124
+ - 表格
125
+ - 图片
126
+ - 数学公式
127
+ - 分割线
128
+
129
+ ### 格式化工具栏
130
+
131
+ 选中文本时会显示气泡菜单,包含:
132
+ - 文本样式:粗体、斜体、下划线、删除线、代码
133
+ - 颜色:文本颜色、背景高亮
134
+ - 对齐:左对齐、居中、右对齐、两端对齐
135
+ - 标题级别选择
136
+ - 清除格式
137
+
138
+ ### 表格操作
139
+
140
+ 插入表格后,点击表格可以:
141
+ - 添加/删除行
142
+ - 添加/删除列
143
+ - 切换表头
144
+ - 合并单元格
145
+ - 删除整个表格
146
+
147
+ ### 数学公式
148
+
149
+ 支持 LaTeX 格式的数学公式:
150
+ - 行内公式:使用斜杠命令选择"行内公式"
151
+ - 块级公式:使用斜杠命令选择"块级公式"
152
+
153
+ ## 依赖要求
154
+
155
+ - React >= 18.0.0
156
+ - React DOM >= 18.0.0
157
+ - (可选)Tailwind CSS >= 4.0.0(如果使用 `style-minimal.css`)
158
+
159
+ ## 样式选项
160
+
161
+ 本包提供两种样式导入方式:
162
+
163
+ ### 1. 完整样式(推荐用于新项目)
164
+
165
+ ```tsx
166
+ import 'md-tiptap/style.css'
167
+ ```
168
+
169
+ 包含:
170
+ - ✅ Tailwind CSS 基础样式
171
+ - ✅ shadcn 主题变量
172
+ - ✅ 所有组件样式
173
+ - ✅ KaTeX 数学公式样式
174
+
175
+ **优点**:开箱即用,无需额外配置
176
+ **缺点**:CSS 文件较大(~1.5MB,gzip 后 ~950KB)
177
+
178
+ ### 2. 最小样式(计划中)
179
+
180
+ ```tsx
181
+ import 'md-tiptap/style-minimal.css'
182
+ ```
183
+
184
+ > **注意**:v0.1.0 版本中,`style-minimal.css` 与 `style.css` 相同。
185
+ > 如果你的项目已有 Tailwind CSS 并遇到样式冲突,请参考 [SHADCN_GUIDE.md](./SHADCN_GUIDE.md) 中的解决方案。
186
+
187
+ 未来版本将提供真正的最小样式版本。
188
+
189
+ 📖 详细说明请查看 [SHADCN_GUIDE.md](./SHADCN_GUIDE.md)
190
+
191
+ ## 开发
192
+
193
+ ```bash
194
+ # 安装依赖
195
+ pnpm install
196
+
197
+ # 开发模式
198
+ pnpm dev
199
+
200
+ # 构建库
201
+ pnpm build:lib
202
+
203
+ # 代码检查
204
+ pnpm lint
205
+ ```
206
+
207
+ ## 开发和发布
208
+
209
+ 查看 [PUBLISH.md](./PUBLISH.md) 了解如何发布此包到 npm。
210
+
211
+ 查看 [EXAMPLE.md](./EXAMPLE.md) 查看更多使用示例。
212
+
213
+ ## License
214
+
215
+ MIT