@data_wise/hyper-markdown 1.1.2 → 1.1.4

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.
Files changed (118) hide show
  1. package/LICENSE +200 -200
  2. package/README.md +470 -430
  3. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  4. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  5. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  6. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  7. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  8. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  9. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  10. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  11. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  12. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  13. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  14. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  15. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  16. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  17. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  18. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  19. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  20. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  21. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  22. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  23. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  24. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  25. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  26. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  27. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  28. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  29. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  30. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  31. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  32. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  33. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  34. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  35. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  36. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  37. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  38. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  39. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  40. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  41. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  42. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  43. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  44. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  45. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  46. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  47. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  48. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  49. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  50. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  51. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  52. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  53. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  54. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  55. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  56. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  57. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  58. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  59. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  60. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  61. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  62. package/dist/assets/_basePickBy-D3MzUSH4.js +1 -0
  63. package/dist/assets/_baseUniq-DaFrQBY_.js +1 -0
  64. package/dist/assets/arc-DZmvjhwD.js +1 -0
  65. package/dist/assets/architectureDiagram-VXUJARFQ-C6IrPHE0.js +36 -0
  66. package/dist/assets/blockDiagram-VD42YOAC-Dh4VPsYt.js +122 -0
  67. package/dist/assets/c4Diagram-YG6GDRKO-CsVkrtu5.js +10 -0
  68. package/dist/assets/channel-Dba-AU8Z.js +1 -0
  69. package/dist/assets/chunk-4BX2VUAB-BHUJEoYX.js +1 -0
  70. package/dist/assets/chunk-55IACEB6-0cRbblJn.js +1 -0
  71. package/dist/assets/chunk-B4BG7PRW-DaMVtIoV.js +165 -0
  72. package/dist/assets/chunk-DI55MBZ5-mTvCW4f_.js +220 -0
  73. package/dist/assets/chunk-FMBD7UC4-DDWqZdY-.js +15 -0
  74. package/dist/assets/chunk-QN33PNHL-BUzK_5SS.js +1 -0
  75. package/dist/assets/chunk-QZHKN3VN-ilsrzkGG.js +1 -0
  76. package/dist/assets/chunk-TZMSLE5B-BkE1m5Ht.js +1 -0
  77. package/dist/assets/classDiagram-2ON5EDUG-BCFko5gn.js +1 -0
  78. package/dist/assets/classDiagram-v2-WZHVMYZB-BCFko5gn.js +1 -0
  79. package/dist/assets/clone-DwRx6AOW.js +1 -0
  80. package/dist/assets/cose-bilkent-S5V4N54A-BkgC7-2O.js +1 -0
  81. package/dist/assets/cytoscape.esm-CyJtwmzi.js +331 -0
  82. package/dist/assets/dagre-6UL2VRFP-CcG9QvkW.js +4 -0
  83. package/dist/assets/defaultLocale-C4B-KCzX.js +1 -0
  84. package/dist/assets/diagram-PSM6KHXK-BrWBNark.js +24 -0
  85. package/dist/assets/diagram-QEK2KX5R-DHn_QcDh.js +43 -0
  86. package/dist/assets/diagram-S2PKOQOG-CQZKWumy.js +24 -0
  87. package/dist/assets/erDiagram-Q2GNP2WA-BSUc4KcH.js +60 -0
  88. package/dist/assets/flowDiagram-NV44I4VS-D2JvozV8.js +162 -0
  89. package/dist/assets/ganttDiagram-LVOFAZNH-BZQALV8B.js +267 -0
  90. package/dist/assets/gitGraphDiagram-NY62KEGX-DgdbjtZn.js +65 -0
  91. package/dist/assets/graph-CcA7jmLa.js +1 -0
  92. package/dist/assets/index-CaWmtxvi.js +1194 -0
  93. package/dist/assets/index-DmD6PshK.css +10 -0
  94. package/dist/assets/infoDiagram-ER5ION4S-Bz9C0rlJ.js +2 -0
  95. package/dist/assets/init-Gi6I4Gst.js +1 -0
  96. package/dist/assets/journeyDiagram-XKPGCS4Q-iKQl2SjC.js +139 -0
  97. package/dist/assets/kanban-definition-3W4ZIXB7-D6_6neXl.js +89 -0
  98. package/dist/assets/katex-BbEIqZs1.js +261 -0
  99. package/dist/assets/layout-Dehtu5JX.js +1 -0
  100. package/dist/assets/linear-h3Olymuj.js +1 -0
  101. package/dist/assets/mindmap-definition-VGOIOE7T-CNMfMBnD.js +68 -0
  102. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  103. package/dist/assets/pieDiagram-ADFJNKIX-BaHWC6dm.js +30 -0
  104. package/dist/assets/quadrantDiagram-AYHSOK5B-D7AbIWZg.js +7 -0
  105. package/dist/assets/requirementDiagram-UZGBJVZJ-BR0Id14z.js +64 -0
  106. package/dist/assets/sankeyDiagram-TZEHDZUN-U2E-Gi_r.js +10 -0
  107. package/dist/assets/sequenceDiagram-WL72ISMW-DPNh0ukq.js +145 -0
  108. package/dist/assets/stateDiagram-FKZM4ZOC-D_guA4Z-.js +1 -0
  109. package/dist/assets/stateDiagram-v2-4FDKWEC3-CvOsLlmK.js +1 -0
  110. package/dist/assets/timeline-definition-IT6M3QCI-CeZcUoTH.js +61 -0
  111. package/dist/assets/treemap-KMMF4GRG-ddD_Fzr5.js +128 -0
  112. package/dist/assets/xychartDiagram-PRI3JC2R-BIOWNGYZ.js +7 -0
  113. package/dist/index.html +13 -0
  114. package/package.json +70 -70
  115. package/types/index.d.ts +34 -33
  116. package/dist/hyper-markdown.css +0 -10
  117. package/dist/hyper-markdown.es.js +0 -216827
  118. package/dist/hyper-markdown.umd.js +0 -3196
package/README.md CHANGED
@@ -1,431 +1,471 @@
1
- # @data_wise/hyper-markdown
2
-
3
- 一个功能强大的 Vue 3 Markdown 编辑器,支持 ECharts、Mermaid、KaTeX 和数据集等丰富功能。
4
-
5
- ## 安装
6
-
7
- ```bash
8
- npm install @data_wise/hyper-markdown
9
- ```
10
-
11
- ## CSS 导入
12
-
13
- 组件已经内置了所有必要的样式文件,您只需要在项目中导入一次CSS即可使用所有功能:
14
-
15
- ### 在 Vue 项目中导入
16
-
17
- ```javascript
18
- import '@data_wise/hyper-markdown/dist/hyper-markdown.css'
19
- ```
20
-
21
- ### 完整使用示例
22
-
23
- ```vue
24
- <template>
25
- <div id="app">
26
- <MarkdownEditor
27
- :content="markdownContent"
28
- :editable="true"
29
- />
30
- </div>
31
- </template>
32
-
33
- <script>
34
- import MarkdownEditor from '@data_wise/hyper-markdown'
35
- import '@data_wise/hyper-markdown/dist/hyper-markdown.css' // 导入CSS
36
-
37
- export default {
38
- name: 'App',
39
- components: {
40
- MarkdownEditor
41
- },
42
- data() {
43
- return {
44
- markdownContent: '# 欢迎使用 Hyper Markdown'
45
- }
46
- }
47
- }
48
- </script>
49
- ```
50
-
51
- ### 包含的样式
52
-
53
- 导入的CSS文件包含以下所有必要的样式:
54
-
55
- - **GitHub Markdown 样式** - 标准的Markdown渲染样式
56
- - **KaTeX 数学公式样式** - 数学公式渲染支持
57
- - **ECharts 图表样式** - 图表组件样式
58
- - **Mermaid 流程图样式** - 流程图渲染样式
59
- - **数据集表格样式** - 数据表格展示样式
60
- - **自定义容器样式** - 警告、提示等容器样式
61
- - **栅格布局样式** - 响应式布局支持
62
-
63
- ### 注意事项
64
-
65
- - 只需要导入一次CSS文件,所有组件功能即可正常工作
66
- - CSS文件已经过优化,所有样式都打包到单个文件中
67
- - 无需额外配置或导入其他CSS文件
68
-
69
- ## 快速开始
70
-
71
- ### 基础用法
72
-
73
- ```vue
74
- <template>
75
- <div id="app">
76
- <MarkdownEditor
77
- :content="markdownContent"
78
- :editable="true"
79
- />
80
- </div>
81
- </template>
82
-
83
- <script>
84
- import MarkdownEditor from '@data_wise/hyper-markdown'
85
-
86
- export default {
87
- name: 'App',
88
- components: {
89
- MarkdownEditor
90
- },
91
- data() {
92
- return {
93
- markdownContent: '# 欢迎使用 Hyper Markdown'
94
- }
95
- }
96
- }
97
- </script>
98
- ```
99
-
100
- ### 使用数据源功能
101
-
102
- 要使用数据源查询功能,需要注入 `datasource` 属性:
103
-
104
- ```vue
105
- <template>
106
- <div id="app">
107
- <MarkdownEditor
108
- v-model:content="markdownContent"
109
- :editable="true"
110
- :datasource="datasource"
111
- />
112
- </div>
113
- </template>
114
-
115
- <script>
116
- import MarkdownEditor from '@data_wise/hyper-markdown'
117
- import { datasource } from './utils/dataSource' // 导入数据源函数
118
-
119
- export default {
120
- name: 'App',
121
- components: {
122
- MarkdownEditor
123
- },
124
- data() {
125
- return {
126
- markdownContent: '# 欢迎使用 Hyper Markdown',
127
- datasource: datasource // 注入数据源函数
128
- }
129
- }
130
- }
131
- </script>
132
- ```
133
-
134
- ## 数据源配置
135
-
136
- ### 数据源函数接口
137
-
138
- `datasource` 对象必须包含以下函数:
139
-
140
- ```javascript
141
- {
142
- // 获取数据源数据
143
- getDataSource(sourceId, sql, options) => Promise<Object>
144
-
145
- // 获取数据源列表
146
- getDataSourceList() => Array
147
-
148
- // 清除数据缓存
149
- clearDataSourceCache(sourceId) => void
150
-
151
- // 测试数据源连接
152
- testDataSourceConnection(sourceId) => Promise<boolean>
153
- }
154
- ```
155
-
156
- ### 内置数据源
157
-
158
- 项目内置了以下模拟数据源:
159
-
160
- - **sales_db** - 销售数据库(MySQL)
161
- - **user_db** - 用户数据库(PostgreSQL)
162
- - **finance_db** - 财务数据库(Oracle)
163
-
164
- ### 自定义数据源
165
-
166
- 您可以创建自定义数据源函数:
167
-
168
- ```javascript
169
- // 自定义数据源函数示例
170
- const customDatasource = {
171
- async getDataSource(sourceId, sql, options = {}) {
172
- // 实现数据获取逻辑
173
- return {
174
- source: [], // 数据数组
175
- dimensions: [], // 维度字段
176
- metadata: {
177
- sourceId: sourceId,
178
- sql: sql,
179
- count: 0,
180
- timestamp: new Date().toISOString()
181
- }
182
- }
183
- },
184
-
185
- getDataSourceList() {
186
- return [
187
- {
188
- id: 'my_db',
189
- name: '我的数据库',
190
- type: 'mysql',
191
- description: '自定义数据源'
192
- }
193
- ]
194
- },
195
-
196
- clearDataSourceCache(sourceId = null) {
197
- // 清除缓存逻辑
198
- },
199
-
200
- async testDataSourceConnection(sourceId) {
201
- return true
202
- }
203
- }
204
- ```
205
-
206
- ## 特有插件语法
207
-
208
- ### 1. ECharts 图表
209
-
210
- 使用 `echarts` 代码块渲染图表:
211
-
212
- ````markdown
213
- ```echarts
214
- {
215
- "title": {
216
- "text": "销售数据"
217
- },
218
- "xAxis": {
219
- "type": "category",
220
- "data": ["一月", "二月", "三月"]
221
- },
222
- "yAxis": {
223
- "type": "value"
224
- },
225
- "series": [{
226
- "data": [120, 200, 150],
227
- "type": "bar"
228
- }]
229
- }
230
- ```
231
- ````
232
-
233
- ### 2. Mermaid 流程图
234
-
235
- 使用 `mermaid` 代码块渲染流程图:
236
-
237
- ````markdown
238
- ```mermaid
239
- graph TD
240
- A[开始] --> B{条件判断}
241
- B -->|是| C[执行操作]
242
- B -->|否| D[结束]
243
- C --> D
244
- ```
245
- ````
246
-
247
- ### 3. 数据集功能
248
-
249
- 使用 `dataset` 代码块定义数据集:
250
-
251
- ````markdown
252
- ```dataset datasetId: sales_data
253
- {
254
- dimensions: ["产品", "2020", "2021", "2022"],
255
- source: [
256
- {产品: "产品A", 2020: 100, 2021: 120, 2022: 150},
257
- {产品: "产品B", 2020: 80, 2021: 90, 2022: 110},
258
- {产品: "产品C", 2020: 60, 2021: 70, 2022: 85}
259
- ]
260
- }
261
- ```
262
-
263
- 然后在 ECharts 中使用数据集:
264
-
265
- ```echarts
266
- {
267
- dataset: dataset['sales_data'],
268
- title: { text: "产品销售趋势" },
269
- xAxis: { type: "category" },
270
- yAxis: { type: "value" },
271
- series: [{
272
- type: "bar",
273
- encode: { x: "产品", y: "2020" }
274
- }]
275
- }
276
- ```
277
- ````
278
-
279
- ### 4. SQL 数据源查询
280
-
281
- 支持从数据源查询数据,需要先注入 `datasource` 属性:
282
-
283
- #### 查询语法格式
284
-
285
- 支持两种格式的数据源查询:
286
-
287
- **格式一:使用 datasourceId 指定数据源**
288
-
289
- ````markdown
290
- ```dataset datasetId: sql_query_1 datasourceId: sales_db
291
- SELECT 产品, 年份, 销售额 FROM sales_data WHERE 销售额 > 100
292
- ```
293
- ````
294
-
295
- **格式二:使用默认数据源(sales_db)**
296
-
297
- ````markdown
298
- ```dataset datasetId: sql_query_1
299
- SELECT 产品, 年份, 销售额 FROM sales_data WHERE 销售额 > 100
300
- ```
301
- ````
302
-
303
- #### 使用查询结果
304
-
305
- 查询结果会自动转换为标准数据集格式,可以在 ECharts 中使用:
306
-
307
- ```echarts
308
- {
309
- dataset: dataset['sql_query_1'],
310
- title: { text: "产品销售趋势" },
311
- xAxis: { type: "category" },
312
- yAxis: { type: "value" },
313
- series: [{
314
- type: "bar",
315
- encode: { x: "产品", y: "销售额" }
316
- }]
317
- }
318
- ```
319
-
320
- #### 示例:完整的数据源查询
321
-
322
- ````markdown
323
- ```dataset datasetId: user_analysis datasourceId: user_db
324
- SELECT 地区, 用户数, 活跃度 FROM user_data WHERE 用户数 > 1000 AND 活跃度 > 0.7
325
- ```
326
-
327
- ```echarts
328
- {
329
- dataset: dataset['user_analysis'],
330
- title: { text: "用户分布分析" },
331
- xAxis: { type: "category" },
332
- yAxis: { type: "value" },
333
- series: [{
334
- type: "bar",
335
- encode: { x: "地区", y: "用户数" }
336
- }]
337
- }
338
- ```
339
- ````
340
-
341
- ### 5. 栅格布局
342
-
343
- 使用 `cell` 容器创建响应式布局:
344
-
345
- ````markdown
346
- ::: cell 6
347
- ### 大单元格 (6格宽)
348
- 这是一个较大的单元格,宽度占6格
349
-
350
- 可以包含任何 Markdown 语法:
351
- - 列表项
352
- - 图片
353
- - 代码等
354
- :::
355
-
356
- ::: cell 3
357
- ### 中等单元格 (3格宽)
358
- 中等大小的单元格
359
-
360
- ```javascript
361
- console.log('支持代码块');
362
- ```
363
- :::
364
- ````
365
-
366
- ### 6. 自定义容器
367
-
368
- 支持多种自定义容器:
369
-
370
- ````markdown
371
- ::: warning
372
- 这是一个警告信息
373
- :::
374
-
375
- ::: info
376
- 这是一个信息提示
377
- :::
378
-
379
- ::: tip
380
- 这是一个小贴士
381
- :::
382
-
383
- ::: danger
384
- 这是一个危险提示
385
- :::
386
- ````
387
-
388
-
389
-
390
- ## 数据源使用注意事项
391
-
392
- ### 错误处理
393
-
394
- 当数据源查询失败时,会显示错误信息:
395
-
396
- - **数据源未注入**:"数据源获取函数未注入,请确保已设置datasource属性"
397
- - **数据源不存在**:"数据源不存在: {sourceId}"
398
- - **SQL语法错误**:"SQL查询语句不能为空" 或 "数据源查询格式不正确"
399
-
400
- ### 缓存机制
401
-
402
- 数据源查询结果会自动缓存,避免重复查询:
403
-
404
- - 相同查询条件会返回缓存结果
405
- - 可以通过 `clearDataSourceCache()` 清除缓存
406
- - 使用 `{forceRefresh: true}` 选项强制刷新
407
-
408
- ### 性能优化
409
-
410
- - 数据源查询支持异步处理
411
- - 支持延迟加载选项 `{delay: 500}`
412
- - 内置数据源使用模拟数据,无网络请求
413
-
414
- ## 特性
415
-
416
- - ✅ Vue 3 支持
417
- - ✅ ECharts 图表渲染
418
- - ✅ Mermaid 流程图支持
419
- - ✅ KaTeX 数学公式
420
- - ✅ 数据集表格展示
421
- - ✅ 可编辑区域
422
- - ✅ 自定义容器
423
- - ✅ 响应式设计
424
- - ✅ TypeScript 支持
425
- - ✅ 数据源查询功能
426
- - ✅ SQL 语法支持
427
- - ✅ 数据缓存机制
428
-
429
- ## 许可证
430
-
1
+ # @data_wise/hyper-markdown
2
+
3
+ 一个功能强大的 Vue 3 Markdown 编辑器,支持 ECharts、Mermaid、KaTeX 和数据集等丰富功能。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install @data_wise/hyper-markdown
9
+ ```
10
+
11
+ ## CSS 导入
12
+
13
+ 组件已经内置了所有必要的样式文件,您只需要在项目中导入一次CSS即可使用所有功能:
14
+
15
+ ### 在 Vue 项目中导入
16
+
17
+ ```javascript
18
+ import '@data_wise/hyper-markdown/dist/hyper-markdown.css'
19
+ ```
20
+
21
+ ### 完整使用示例
22
+
23
+ ```vue
24
+ <template>
25
+ <div id="app">
26
+ <MarkdownEditor
27
+ :content="markdownContent"
28
+ :editable="true"
29
+ />
30
+ </div>
31
+ </template>
32
+
33
+ <script>
34
+ import MarkdownEditor from '@data_wise/hyper-markdown'
35
+ import '@data_wise/hyper-markdown/dist/hyper-markdown.css' // 导入CSS
36
+
37
+ export default {
38
+ name: 'App',
39
+ components: {
40
+ MarkdownEditor
41
+ },
42
+ data() {
43
+ return {
44
+ markdownContent: '# 欢迎使用 Hyper Markdown'
45
+ }
46
+ }
47
+ }
48
+ </script>
49
+ ```
50
+
51
+ ### 包含的样式
52
+
53
+ 导入的CSS文件包含以下所有必要的样式:
54
+
55
+ - **GitHub Markdown 样式** - 标准的Markdown渲染样式
56
+ - **KaTeX 数学公式样式** - 数学公式渲染支持
57
+ - **ECharts 图表样式** - 图表组件样式
58
+ - **Mermaid 流程图样式** - 流程图渲染样式
59
+ - **数据集表格样式** - 数据表格展示样式
60
+ - **自定义容器样式** - 警告、提示等容器样式
61
+ - **栅格布局样式** - 响应式布局支持
62
+
63
+ ### 注意事项
64
+
65
+ - 只需要导入一次CSS文件,所有组件功能即可正常工作
66
+ - CSS文件已经过优化,所有样式都打包到单个文件中
67
+ - 无需额外配置或导入其他CSS文件
68
+
69
+ ## 快速开始
70
+
71
+ ### 组件属性
72
+
73
+ | 属性 | 类型 | 默认值 | 说明 |
74
+ |------|------|--------|------|
75
+ | `content` | String | `''` | Markdown 内容(支持 v-model) |
76
+ | `editable` | Boolean | `false` | 是否启用编辑模式 |
77
+ | `defaultShowEditor` | Boolean | `true` | 编辑器初始显示状态(仅在 editable 为 true 时有效) |
78
+ | `datasource` | Object | - | 数据源配置对象(可选) |
79
+
80
+ ### 基础用法
81
+
82
+ ```vue
83
+ <template>
84
+ <div id="app">
85
+ <MarkdownEditor
86
+ :content="markdownContent"
87
+ :editable="true"
88
+ />
89
+ </div>
90
+ </template>
91
+
92
+ <script>
93
+ import MarkdownEditor from '@data_wise/hyper-markdown'
94
+
95
+ export default {
96
+ name: 'App',
97
+ components: {
98
+ MarkdownEditor
99
+ },
100
+ data() {
101
+ return {
102
+ markdownContent: '# 欢迎使用 Hyper Markdown'
103
+ }
104
+ }
105
+ }
106
+ </script>
107
+ ```
108
+
109
+ ### 控制编辑器显示状态
110
+
111
+ ```vue
112
+ <template>
113
+ <div id="app">
114
+ <!-- 默认隐藏编辑器,只显示预览 -->
115
+ <MarkdownEditor
116
+ :content="markdownContent"
117
+ :editable="true"
118
+ :default-show-editor="false"
119
+ />
120
+ </div>
121
+ </template>
122
+
123
+ <script>
124
+ import MarkdownEditor from '@data_wise/hyper-markdown'
125
+
126
+ export default {
127
+ name: 'App',
128
+ components: {
129
+ MarkdownEditor
130
+ },
131
+ data() {
132
+ return {
133
+ markdownContent: '# 欢迎使用 Hyper Markdown'
134
+ }
135
+ }
136
+ }
137
+ </script>
138
+ ```
139
+
140
+ ### 使用数据源功能
141
+
142
+ 要使用数据源查询功能,需要注入 `datasource` 属性:
143
+
144
+ ```vue
145
+ <template>
146
+ <div id="app">
147
+ <MarkdownEditor
148
+ v-model:content="markdownContent"
149
+ :editable="true"
150
+ :datasource="datasource"
151
+ />
152
+ </div>
153
+ </template>
154
+
155
+ <script>
156
+ import MarkdownEditor from '@data_wise/hyper-markdown'
157
+ import { datasource } from './utils/dataSource' // 导入数据源函数
158
+
159
+ export default {
160
+ name: 'App',
161
+ components: {
162
+ MarkdownEditor
163
+ },
164
+ data() {
165
+ return {
166
+ markdownContent: '# 欢迎使用 Hyper Markdown',
167
+ datasource: datasource // 注入数据源函数
168
+ }
169
+ }
170
+ }
171
+ </script>
172
+ ```
173
+
174
+ ## 数据源配置
175
+
176
+ ### 数据源函数接口
177
+
178
+ `datasource` 对象必须包含以下函数:
179
+
180
+ ```javascript
181
+ {
182
+ // 获取数据源数据
183
+ getDataSource(sourceId, sql, options) => Promise<Object>
184
+
185
+ // 获取数据源列表
186
+ getDataSourceList() => Array
187
+
188
+ // 清除数据缓存
189
+ clearDataSourceCache(sourceId) => void
190
+
191
+ // 测试数据源连接
192
+ testDataSourceConnection(sourceId) => Promise<boolean>
193
+ }
194
+ ```
195
+
196
+ ### 内置数据源
197
+
198
+ 项目内置了以下模拟数据源:
199
+
200
+ - **sales_db** - 销售数据库(MySQL)
201
+ - **user_db** - 用户数据库(PostgreSQL)
202
+ - **finance_db** - 财务数据库(Oracle)
203
+
204
+ ### 自定义数据源
205
+
206
+ 您可以创建自定义数据源函数:
207
+
208
+ ```javascript
209
+ // 自定义数据源函数示例
210
+ const customDatasource = {
211
+ async getDataSource(sourceId, sql, options = {}) {
212
+ // 实现数据获取逻辑
213
+ return {
214
+ source: [], // 数据数组
215
+ dimensions: [], // 维度字段
216
+ metadata: {
217
+ sourceId: sourceId,
218
+ sql: sql,
219
+ count: 0,
220
+ timestamp: new Date().toISOString()
221
+ }
222
+ }
223
+ },
224
+
225
+ getDataSourceList() {
226
+ return [
227
+ {
228
+ id: 'my_db',
229
+ name: '我的数据库',
230
+ type: 'mysql',
231
+ description: '自定义数据源'
232
+ }
233
+ ]
234
+ },
235
+
236
+ clearDataSourceCache(sourceId = null) {
237
+ // 清除缓存逻辑
238
+ },
239
+
240
+ async testDataSourceConnection(sourceId) {
241
+ return true
242
+ }
243
+ }
244
+ ```
245
+
246
+ ## 特有插件语法
247
+
248
+ ### 1. ECharts 图表
249
+
250
+ 使用 `echarts` 代码块渲染图表:
251
+
252
+ ````markdown
253
+ ```echarts
254
+ {
255
+ "title": {
256
+ "text": "销售数据"
257
+ },
258
+ "xAxis": {
259
+ "type": "category",
260
+ "data": ["一月", "二月", "三月"]
261
+ },
262
+ "yAxis": {
263
+ "type": "value"
264
+ },
265
+ "series": [{
266
+ "data": [120, 200, 150],
267
+ "type": "bar"
268
+ }]
269
+ }
270
+ ```
271
+ ````
272
+
273
+ ### 2. Mermaid 流程图
274
+
275
+ 使用 `mermaid` 代码块渲染流程图:
276
+
277
+ ````markdown
278
+ ```mermaid
279
+ graph TD
280
+ A[开始] --> B{条件判断}
281
+ B -->|是| C[执行操作]
282
+ B -->|否| D[结束]
283
+ C --> D
284
+ ```
285
+ ````
286
+
287
+ ### 3. 数据集功能
288
+
289
+ 使用 `dataset` 代码块定义数据集:
290
+
291
+ ````markdown
292
+ ```dataset datasetId: sales_data
293
+ {
294
+ dimensions: ["产品", "2020", "2021", "2022"],
295
+ source: [
296
+ {产品: "产品A", 2020: 100, 2021: 120, 2022: 150},
297
+ {产品: "产品B", 2020: 80, 2021: 90, 2022: 110},
298
+ {产品: "产品C", 2020: 60, 2021: 70, 2022: 85}
299
+ ]
300
+ }
301
+ ```
302
+
303
+ 然后在 ECharts 中使用数据集:
304
+
305
+ ```echarts
306
+ {
307
+ dataset: dataset['sales_data'],
308
+ title: { text: "产品销售趋势" },
309
+ xAxis: { type: "category" },
310
+ yAxis: { type: "value" },
311
+ series: [{
312
+ type: "bar",
313
+ encode: { x: "产品", y: "2020" }
314
+ }]
315
+ }
316
+ ```
317
+ ````
318
+
319
+ ### 4. SQL 数据源查询
320
+
321
+ 支持从数据源查询数据,需要先注入 `datasource` 属性:
322
+
323
+ #### 查询语法格式
324
+
325
+ 支持两种格式的数据源查询:
326
+
327
+ **格式一:使用 datasourceId 指定数据源**
328
+
329
+ ````markdown
330
+ ```dataset datasetId: sql_query_1 datasourceId: sales_db
331
+ SELECT 产品, 年份, 销售额 FROM sales_data WHERE 销售额 > 100
332
+ ```
333
+ ````
334
+
335
+ **格式二:使用默认数据源(sales_db)**
336
+
337
+ ````markdown
338
+ ```dataset datasetId: sql_query_1
339
+ SELECT 产品, 年份, 销售额 FROM sales_data WHERE 销售额 > 100
340
+ ```
341
+ ````
342
+
343
+ #### 使用查询结果
344
+
345
+ 查询结果会自动转换为标准数据集格式,可以在 ECharts 中使用:
346
+
347
+ ```echarts
348
+ {
349
+ dataset: dataset['sql_query_1'],
350
+ title: { text: "产品销售趋势" },
351
+ xAxis: { type: "category" },
352
+ yAxis: { type: "value" },
353
+ series: [{
354
+ type: "bar",
355
+ encode: { x: "产品", y: "销售额" }
356
+ }]
357
+ }
358
+ ```
359
+
360
+ #### 示例:完整的数据源查询
361
+
362
+ ````markdown
363
+ ```dataset datasetId: user_analysis datasourceId: user_db
364
+ SELECT 地区, 用户数, 活跃度 FROM user_data WHERE 用户数 > 1000 AND 活跃度 > 0.7
365
+ ```
366
+
367
+ ```echarts
368
+ {
369
+ dataset: dataset['user_analysis'],
370
+ title: { text: "用户分布分析" },
371
+ xAxis: { type: "category" },
372
+ yAxis: { type: "value" },
373
+ series: [{
374
+ type: "bar",
375
+ encode: { x: "地区", y: "用户数" }
376
+ }]
377
+ }
378
+ ```
379
+ ````
380
+
381
+ ### 5. 栅格布局
382
+
383
+ 使用 `cell` 容器创建响应式布局:
384
+
385
+ ````markdown
386
+ ::: cell 6
387
+ ### 大单元格 (6格宽)
388
+ 这是一个较大的单元格,宽度占6格
389
+
390
+ 可以包含任何 Markdown 语法:
391
+ - 列表项
392
+ - 图片
393
+ - 代码等
394
+ :::
395
+
396
+ ::: cell 3
397
+ ### 中等单元格 (3格宽)
398
+ 中等大小的单元格
399
+
400
+ ```javascript
401
+ console.log('支持代码块');
402
+ ```
403
+ :::
404
+ ````
405
+
406
+ ### 6. 自定义容器
407
+
408
+ 支持多种自定义容器:
409
+
410
+ ````markdown
411
+ ::: warning
412
+ 这是一个警告信息
413
+ :::
414
+
415
+ ::: info
416
+ 这是一个信息提示
417
+ :::
418
+
419
+ ::: tip
420
+ 这是一个小贴士
421
+ :::
422
+
423
+ ::: danger
424
+ 这是一个危险提示
425
+ :::
426
+ ````
427
+
428
+
429
+
430
+ ## 数据源使用注意事项
431
+
432
+ ### 错误处理
433
+
434
+ 当数据源查询失败时,会显示错误信息:
435
+
436
+ - **数据源未注入**:"数据源获取函数未注入,请确保已设置datasource属性"
437
+ - **数据源不存在**:"数据源不存在: {sourceId}"
438
+ - **SQL语法错误**:"SQL查询语句不能为空" 或 "数据源查询格式不正确"
439
+
440
+ ### 缓存机制
441
+
442
+ 数据源查询结果会自动缓存,避免重复查询:
443
+
444
+ - 相同查询条件会返回缓存结果
445
+ - 可以通过 `clearDataSourceCache()` 清除缓存
446
+ - 使用 `{forceRefresh: true}` 选项强制刷新
447
+
448
+ ### 性能优化
449
+
450
+ - 数据源查询支持异步处理
451
+ - 支持延迟加载选项 `{delay: 500}`
452
+ - 内置数据源使用模拟数据,无网络请求
453
+
454
+ ## 特性
455
+
456
+ - ✅ Vue 3 支持
457
+ - ✅ ECharts 图表渲染
458
+ - ✅ Mermaid 流程图支持
459
+ - ✅ KaTeX 数学公式
460
+ - ✅ 数据集表格展示
461
+ - ✅ 可编辑区域
462
+ - ✅ 自定义容器
463
+ - ✅ 响应式设计
464
+ - ✅ TypeScript 支持
465
+ - ✅ 数据源查询功能
466
+ - ✅ SQL 语法支持
467
+ - ✅ 数据缓存机制
468
+
469
+ ## 许可证
470
+
431
471
  MIT License