@data_wise/hyper-markdown 1.4.1 → 1.5.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 +193 -4
- package/dist/hyper-markdown.css +1 -1
- package/dist/hyper-markdown.es.js +54123 -46475
- package/dist/hyper-markdown.umd.js +477 -471
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -384,7 +384,130 @@ graph TD
|
|
|
384
384
|
```
|
|
385
385
|
````
|
|
386
386
|
|
|
387
|
-
### 4.
|
|
387
|
+
### 4. D3.js 可视化
|
|
388
|
+
|
|
389
|
+
支持使用 D3.js 创建自定义可视化图表,提供两种使用方式:
|
|
390
|
+
|
|
391
|
+
#### 方式一:JSON 配置(快速创建)
|
|
392
|
+
|
|
393
|
+
使用预定义的图表类型快速创建可视化:
|
|
394
|
+
|
|
395
|
+
````markdown
|
|
396
|
+
```d3
|
|
397
|
+
{
|
|
398
|
+
"type": "bar",
|
|
399
|
+
"data": [30, 86, 168, 281, 303, 365],
|
|
400
|
+
"width": 600,
|
|
401
|
+
"height": 400,
|
|
402
|
+
"color": "#5470c6"
|
|
403
|
+
}
|
|
404
|
+
```
|
|
405
|
+
````
|
|
406
|
+
|
|
407
|
+
**支持的图表类型:**
|
|
408
|
+
- `bar` - 柱状图
|
|
409
|
+
- `line` - 折线图
|
|
410
|
+
- `pie` - 饼图
|
|
411
|
+
- `scatter` - 散点图
|
|
412
|
+
|
|
413
|
+
**配置选项:**
|
|
414
|
+
- `type` - 图表类型(必需)
|
|
415
|
+
- `data` - 数据数组或 dataset 引用(必需)
|
|
416
|
+
- `width` - 图表宽度(默认 600)
|
|
417
|
+
- `height` - 图表高度(默认 400)
|
|
418
|
+
- `color` - 颜色
|
|
419
|
+
- `xField` / `yField` - 数据字段映射
|
|
420
|
+
- `nameField` / `valueField` - 饼图字段映射
|
|
421
|
+
|
|
422
|
+
#### 方式二:自定义 D3 代码(完全控制)
|
|
423
|
+
|
|
424
|
+
编写完整的 D3.js 代码实现自定义可视化:
|
|
425
|
+
|
|
426
|
+
````markdown
|
|
427
|
+
```d3
|
|
428
|
+
// 创建 SVG
|
|
429
|
+
const svg = d3.select(container)
|
|
430
|
+
.append('svg')
|
|
431
|
+
.attr('width', 600)
|
|
432
|
+
.attr('height', 400);
|
|
433
|
+
|
|
434
|
+
// 绘制圆圈
|
|
435
|
+
const data = [10, 20, 30, 40, 50];
|
|
436
|
+
svg.selectAll('circle')
|
|
437
|
+
.data(data)
|
|
438
|
+
.enter()
|
|
439
|
+
.append('circle')
|
|
440
|
+
.attr('cx', (d, i) => 50 + i * 100)
|
|
441
|
+
.attr('cy', 200)
|
|
442
|
+
.attr('r', d => d)
|
|
443
|
+
.attr('fill', '#5470c6');
|
|
444
|
+
```
|
|
445
|
+
````
|
|
446
|
+
|
|
447
|
+
**可用变量:**
|
|
448
|
+
- `container` - DOM 容器元素
|
|
449
|
+
- `d3` - D3.js 库对象
|
|
450
|
+
- `dataset` - 数据集对象(访问已定义的数据集)
|
|
451
|
+
- `theme` - 当前主题('light' 或 'dark')
|
|
452
|
+
|
|
453
|
+
#### 与 Dataset 集成
|
|
454
|
+
|
|
455
|
+
D3 图表可以直接使用 dataset 中定义的数据:
|
|
456
|
+
|
|
457
|
+
````markdown
|
|
458
|
+
```dataset datasetId: sales_data
|
|
459
|
+
{
|
|
460
|
+
dimensions: ["产品", "销量"],
|
|
461
|
+
source: [
|
|
462
|
+
{ 产品: "手机", 销量: 520 },
|
|
463
|
+
{ 产品: "电脑", 销量: 380 },
|
|
464
|
+
{ 产品: "平板", 销量: 290 }
|
|
465
|
+
]
|
|
466
|
+
}
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
**JSON 配置方式:**
|
|
470
|
+
```d3
|
|
471
|
+
{
|
|
472
|
+
"type": "bar",
|
|
473
|
+
"data": "dataset['sales_data']",
|
|
474
|
+
"xField": "产品",
|
|
475
|
+
"yField": "销量",
|
|
476
|
+
"width": 600,
|
|
477
|
+
"height": 400
|
|
478
|
+
}
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
**自定义代码方式:**
|
|
482
|
+
```d3
|
|
483
|
+
// 获取数据集
|
|
484
|
+
const data = dataset['sales_data'].source;
|
|
485
|
+
|
|
486
|
+
// 使用 D3 绘制
|
|
487
|
+
const svg = d3.select(container)
|
|
488
|
+
.append('svg')
|
|
489
|
+
.attr('width', 600)
|
|
490
|
+
.attr('height', 400);
|
|
491
|
+
|
|
492
|
+
// ... 更多 D3 代码
|
|
493
|
+
```
|
|
494
|
+
````
|
|
495
|
+
|
|
496
|
+
#### 主题适配
|
|
497
|
+
|
|
498
|
+
D3 图表会自动适配明暗主题,可以在代码中使用 `theme` 变量:
|
|
499
|
+
|
|
500
|
+
````markdown
|
|
501
|
+
```d3
|
|
502
|
+
const textColor = theme === 'dark' ? '#e0e0e0' : '#000';
|
|
503
|
+
|
|
504
|
+
svg.append('text')
|
|
505
|
+
.attr('fill', textColor)
|
|
506
|
+
.text('标题');
|
|
507
|
+
```
|
|
508
|
+
````
|
|
509
|
+
|
|
510
|
+
### 5. SQL 数据源查询
|
|
388
511
|
|
|
389
512
|
支持从数据源查询数据,需要先注入 `datasource` 属性:
|
|
390
513
|
|
|
@@ -446,7 +569,69 @@ SELECT 地区, 用户数, 活跃度 FROM user_data WHERE 用户数 > 1000 AND
|
|
|
446
569
|
```
|
|
447
570
|
````
|
|
448
571
|
|
|
449
|
-
### 5.
|
|
572
|
+
### 5. SQL 数据源查询
|
|
573
|
+
|
|
574
|
+
支持从数据源查询数据,需要先注入 `datasource` 属性:
|
|
575
|
+
|
|
576
|
+
#### 查询语法格式
|
|
577
|
+
|
|
578
|
+
支持两种格式的数据源查询:
|
|
579
|
+
|
|
580
|
+
**格式一:使用 datasourceId 指定数据源**
|
|
581
|
+
|
|
582
|
+
````markdown
|
|
583
|
+
```dataset datasetId: sql_query_1 datasourceId: sales_db
|
|
584
|
+
SELECT 产品, 年份, 销售额 FROM sales_data WHERE 销售额 > 100
|
|
585
|
+
```
|
|
586
|
+
````
|
|
587
|
+
|
|
588
|
+
**格式二:使用默认数据源(sales_db)**
|
|
589
|
+
|
|
590
|
+
````markdown
|
|
591
|
+
```dataset datasetId: sql_query_1
|
|
592
|
+
SELECT 产品, 年份, 销售额 FROM sales_data WHERE 销售额 > 100
|
|
593
|
+
```
|
|
594
|
+
````
|
|
595
|
+
|
|
596
|
+
#### 使用查询结果
|
|
597
|
+
|
|
598
|
+
查询结果会自动转换为标准数据集格式,可以在 ECharts 或 D3 中使用:
|
|
599
|
+
|
|
600
|
+
```echarts
|
|
601
|
+
{
|
|
602
|
+
dataset: dataset['sql_query_1'],
|
|
603
|
+
title: { text: "产品销售趋势" },
|
|
604
|
+
xAxis: { type: "category" },
|
|
605
|
+
yAxis: { type: "value" },
|
|
606
|
+
series: [{
|
|
607
|
+
type: "bar",
|
|
608
|
+
encode: { x: "产品", y: "销售额" }
|
|
609
|
+
}]
|
|
610
|
+
}
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
#### 示例:完整的数据源查询
|
|
614
|
+
|
|
615
|
+
````markdown
|
|
616
|
+
```dataset datasetId: user_analysis datasourceId: user_db
|
|
617
|
+
SELECT 地区, 用户数, 活跃度 FROM user_data WHERE 用户数 > 1000 AND 活跃度 > 0.7
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
```echarts
|
|
621
|
+
{
|
|
622
|
+
dataset: dataset['user_analysis'],
|
|
623
|
+
title: { text: "用户分布分析" },
|
|
624
|
+
xAxis: { type: "category" },
|
|
625
|
+
yAxis: { type: "value" },
|
|
626
|
+
series: [{
|
|
627
|
+
type: "bar",
|
|
628
|
+
encode: { x: "地区", y: "用户数" }
|
|
629
|
+
}]
|
|
630
|
+
}
|
|
631
|
+
```
|
|
632
|
+
````
|
|
633
|
+
|
|
634
|
+
### 6. 栅格布局
|
|
450
635
|
|
|
451
636
|
使用 `cell` 容器创建响应式布局:
|
|
452
637
|
|
|
@@ -471,7 +656,7 @@ console.log('支持代码块');
|
|
|
471
656
|
:::
|
|
472
657
|
````
|
|
473
658
|
|
|
474
|
-
###
|
|
659
|
+
### 7. 自定义容器
|
|
475
660
|
|
|
476
661
|
支持多种自定义容器:
|
|
477
662
|
|
|
@@ -523,6 +708,7 @@ console.log('支持代码块');
|
|
|
523
708
|
|
|
524
709
|
- ✅ Vue 3 支持
|
|
525
710
|
- ✅ ECharts 图表渲染
|
|
711
|
+
- ✅ D3.js 可视化支持(新功能)
|
|
526
712
|
- ✅ Mermaid 流程图支持
|
|
527
713
|
- ✅ KaTeX 数学公式
|
|
528
714
|
- ✅ 数据集表格展示
|
|
@@ -534,7 +720,7 @@ console.log('支持代码块');
|
|
|
534
720
|
- ✅ SQL 语法支持
|
|
535
721
|
- ✅ 数据缓存机制
|
|
536
722
|
- ✅ **Word 文档导出**
|
|
537
|
-
- ✅ **Dashboard
|
|
723
|
+
- ✅ **Dashboard 看板模式**
|
|
538
724
|
|
|
539
725
|
## Word 导出功能
|
|
540
726
|
|
|
@@ -611,6 +797,7 @@ export default {
|
|
|
611
797
|
|
|
612
798
|
- ✅ Vue 3 支持
|
|
613
799
|
- ✅ ECharts 图表渲染
|
|
800
|
+
- ✅ D3.js 可视化支持
|
|
614
801
|
- ✅ Mermaid 流程图支持
|
|
615
802
|
- ✅ KaTeX 数学公式
|
|
616
803
|
- ✅ 数据集表格展示
|
|
@@ -621,6 +808,8 @@ export default {
|
|
|
621
808
|
- ✅ 数据源查询功能
|
|
622
809
|
- ✅ SQL 语法支持
|
|
623
810
|
- ✅ 数据缓存机制
|
|
811
|
+
- ✅ Word 文档导出
|
|
812
|
+
- ✅ Dashboard 看板模式
|
|
624
813
|
|
|
625
814
|
## 许可证
|
|
626
815
|
|