@data_wise/hyper-markdown 1.4.2 → 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 CHANGED
@@ -384,7 +384,130 @@ graph TD
384
384
  ```
385
385
  ````
386
386
 
387
- ### 4. SQL 数据源查询
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
- ### 6. 自定义容器
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