@aigne/doc-smith 0.8.1 → 0.8.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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.2](https://github.com/AIGNE-io/aigne-doc-smith/compare/v0.8.1...v0.8.2) (2025-09-04)
4
+
5
+
6
+ ### Miscellaneous Chores
7
+
8
+ * release 0.8.2 ([849bc69](https://github.com/AIGNE-io/aigne-doc-smith/commit/849bc694edf167187f65cb34f1dd9a3966efd96c))
9
+
3
10
  ## [0.8.1](https://github.com/AIGNE-io/aigne-doc-smith/compare/v0.8.0...v0.8.1) (2025-09-03)
4
11
 
5
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aigne/doc-smith",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -12,13 +12,13 @@
12
12
  "author": "Arcblock <blocklet@arcblock.io> https://github.com/blocklet",
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@aigne/aigne-hub": "^0.8.1",
16
- "@aigne/anthropic": "^0.11.12",
17
- "@aigne/cli": "^1.42.0",
18
- "@aigne/core": "^1.57.0",
19
- "@aigne/gemini": "^0.11.1",
20
- "@aigne/openai": "^0.13.2",
21
- "@aigne/publish-docs": "^0.8.0",
15
+ "@aigne/aigne-hub": "^0.8.6",
16
+ "@aigne/anthropic": "^0.11.17",
17
+ "@aigne/cli": "^1.43.1",
18
+ "@aigne/core": "^1.57.5",
19
+ "@aigne/gemini": "^0.11.6",
20
+ "@aigne/openai": "^0.13.7",
21
+ "@aigne/publish-docs": "^0.9.1",
22
22
  "chalk": "^5.5.0",
23
23
  "dompurify": "^3.2.6",
24
24
  "fs-extra": "^11.3.1",
@@ -1,3 +1,4 @@
1
+ - 使用 d2 展示架构关系、流程与组件交互
1
2
  - 使用 d2 图表解释复杂的概念 (```d2``` format),让页面内容展示形式更丰富
2
3
  - 使用的 d2 的版本是 0.7.x,d2 官方的文档请查看 https://d2lang.com/tour/intro/
3
4
  - 图表应简洁明了,节点和连线命名准确,节点与连线文案保持简洁,不要太长
@@ -15,8 +16,79 @@
15
16
  shape: class
16
17
  }
17
18
  ```
18
- - 使用 d2 展示架构关系、流程与组件交互
19
+ - 连线上的文字描述,尽量简洁明了,一般来说只需要使用单个词或两个词即可
20
+ - bad:
21
+ ```d2
22
+ "User Login" -> "Session Creation": "User submits login form with credentials"
23
+ ```
24
+ - good:
25
+ ```d2
26
+ "User Login" -> "Session Creation": "login"
27
+ ```
19
28
  - d2 代码块必须完整且可渲染,避免使用未闭合的语法与奇异字符,避免语法错误
29
+ - 确保每一个节点都有 label 属性,用来表达节点的名称
30
+ - 如果节点的 label 过长,则应该使用 `\n` 来进行换行
31
+ - bad
32
+ ```d2
33
+ "AuthService": {
34
+ label: "AuthService (Handles user authentication, profile management, privacy settings, and related actions)"
35
+ shape: class
36
+ }
37
+ ```
38
+ - good
39
+ ```d2
40
+ "AuthService": {
41
+ label: "AuthService\n(Handles user authentication,\nprofile management, privacy settings,\nand related actions)"
42
+ shape: class
43
+ }
44
+ ```
45
+ - **非常重要** 如果节点的名称包含了特殊字符(如 `@`、` `、`/`, 空格等),请将名称中的特殊字符转换为 `-`,然后使用 label 来表达原始的名称,确保节点的名称一定不要使用 `"` 包裹
46
+ - bad:
47
+ ```d2
48
+ "@blocklet/js-sdk": {
49
+ shape: package
50
+
51
+ TokenService: {
52
+ shape: class
53
+ }
54
+ }
55
+ ```
56
+ - good:
57
+ ```d2
58
+ "blocklet-js-sdk": {
59
+ shape: package
60
+ label: "@blocklet/js-sdk
61
+
62
+ TokenService: {
63
+ shape: class
64
+ }
65
+ }
66
+ ```
67
+ - 必须确保每个节点和子节点是有名称的
68
+ - bad:
69
+ ```d2
70
+ "SDK Core Instance": {
71
+ shape: package
72
+ "TokenService": "Manages session and refresh tokens"
73
+ "Services": {
74
+ grid-columns: 2
75
+ "AuthService": ""
76
+ "BlockletService": ""
77
+ }
78
+ }
79
+ ```
80
+ - good:
81
+ ```d2
82
+ "SDK Core Instance": {
83
+ shape: package
84
+ "TokenService": "Manages session and refresh tokens"
85
+ "Services": {
86
+ grid-columns: 2
87
+ "AuthService": "AuthService"
88
+ "BlockletService": "BlockletService"
89
+ }
90
+ }
91
+ ```
20
92
  - 不要为节点添加 `tooltip`,保持简单即可
21
93
  - bad
22
94
  ```d2
@@ -33,10 +105,7 @@
33
105
  shape: class
34
106
  }
35
107
  ```
36
- - 节点的名称尽量使用 `"` 进行包裹,避免出现渲染异常
37
- - bad: `SDK: @blocklet/js-sdk`
38
- - good: `SDK: "@blocklet/js-sdk"`
39
- - 不要随意给节点填充颜色,除非节点有明确的 yes/no 的状态,此时可以给节点 fill `error`, `warning`, `success` 之类的颜色
108
+ - 不要随意给节点/连线填充颜色,除非节点/连线有明确的 yes/no 的状态,此时可以添加 `error`, `warning`, `success` 之类的颜色
40
109
  - bad
41
110
  ```d2
42
111
  "TokenService" {
@@ -50,9 +119,9 @@
50
119
  shape: class
51
120
  }
52
121
  ```
53
- - 对于单个节点和连线,可以使用 `animate: true` 可以让图表增加动画效果,看起来效果更好
54
- - 对于节点 shape 的选择,可以参考
55
- {% include "shape-rules.md" %}
122
+ - 对于单个节点和连线,不要使用 `animate: true`,避免有些地方有,但有些地方没有的情况(看起来会很奇怪)
123
+ - 连线的箭头方向必须正确,确保箭头指向关系的下游端
124
+ - 连线的样式,尽量保持一致,不要有些实线,有些虚线的情况,除非有明确的区分意义
56
125
  - 页面的整体布局使用 `direction: down`,这样能确保图表适合在网页中进行阅读;子图中可以根据情况来使用其他的方向布局,需要确保图表的整体效果看起来不会太宽
57
126
  - bad:
58
127
  ```d2
@@ -235,7 +304,7 @@
235
304
  "SDK" -> "Blocklet Services": "Authenticated Requests"
236
305
  "Blocklet Services" -> "SDK": "Responses & Tokens"
237
306
  ```
238
- - 必须保证一个图中,所有的节点都是有关联的,不需要为图表设置 legend,如果就是有节点不存在关联性,则应该移除这些节点,或者拆分成多个独立的图表
307
+ - 必须保证一个图中,所有的节点都是有关联的,不需要为图表设置 legend,如果有节点不存在关联性,则应该移除这些节点,或者拆分成多个独立的图表
239
308
  - bad:
240
309
  ```d2
241
310
  direction: down
@@ -343,31 +412,6 @@
343
412
  }
344
413
  }
345
414
  ```
346
- - 必须确保每个节点和子节点是有名称的
347
- - bad:
348
- ```d2
349
- "SDK Core Instance": {
350
- shape: package
351
- "TokenService": "Manages session and refresh tokens"
352
- "Services": {
353
- grid-columns: 2
354
- "AuthService": ""
355
- "BlockletService": ""
356
- }
357
- }
358
- ```
359
- - good:
360
- ```d2
361
- "SDK Core Instance": {
362
- shape: package
363
- "TokenService": "Manages session and refresh tokens"
364
- "Services": {
365
- grid-columns: 2
366
- "AuthService": "AuthService"
367
- "BlockletService": "BlockletService"
368
- }
369
- }
370
- ```
371
415
  - 当有关联关系的节点,处于一个节点内部时,则它们的关联关系也应该写在节点内部
372
416
  - bad
373
417
  ```d2
@@ -661,7 +705,7 @@
661
705
  "Your Application" -> "@blocklet/js-sdk".AuthService: "e.g., sdk.auth.getProfile()"
662
706
  "@blocklet/js-sdk".AuthService -> "Blocklet API Endpoints": "Makes authenticated API calls"
663
707
  ```
664
- - 当节点中子节点个数与 `grid-columns` 值相同时,则应该去掉 `grid-columns` 字段
708
+ - **非常重要** 当容器节点中子节点个数与 `grid-columns` 值相同时,则应该去掉容器节点中的 `grid-columns` 字段
665
709
  - bad:
666
710
  ```d2
667
711
  "@blocklet/js-sdk": {
@@ -784,7 +828,7 @@
784
828
  }
785
829
 
786
830
  ```
787
- - 当存在多层容器节点嵌套时,外层的容器节点应该使用 `grid-columns: 1`,这一点非常重要
831
+ - **非常重要** 当存在多层容器节点嵌套时,外层的容器节点应该使用 `grid-columns: 1`
788
832
  - bad:
789
833
  ```d2
790
834
  direction: down
@@ -857,7 +901,7 @@
857
901
 
858
902
  "User Account" -> "Sessions": "Has multiple"
859
903
  ```
860
- - 当一个节点容器中包含了其他的节点容器,建议使用 `grid-gap` 来增加各个节点容器的距离,尽量大于 100
904
+ - 当一个节点容器中包含了其他的节点容器,建议使用 `grid-gap` 来增加各个节点容器的距离,尽量大于 `100`
861
905
  - bad:
862
906
  ```d2
863
907
  direction: down
@@ -953,5 +997,92 @@
953
997
  shape: person
954
998
  }
955
999
  ```
1000
+ - **非常重要** 在绘制连线的时候,一定要注意连接的节点的 ID 到底是什么,它可能有多个层级,但一定要弄清楚关系才能添加连线
1001
+ - bad:
1002
+ ```d2
1003
+ direction: down
1004
+
1005
+ "User-Browser": {
1006
+ label: "User's Browser"
1007
+ shape: rectangle
1008
+
1009
+ "React-App": {
1010
+ label: "Your React App"
1011
+ shape: rectangle
1012
+
1013
+ "Uploader-Component": {
1014
+ label: "@blocklet/uploader"
1015
+ shape: package
1016
+ }
1017
+ }
1018
+ }
1019
+
1020
+ "Blocklet-Server": {
1021
+ label: "Your Blocklet Server"
1022
+ shape: rectangle
1023
+
1024
+ "Express-App": {
1025
+ label: "Your Express App"
1026
+ shape: rectangle
1027
+
1028
+ "Uploader-Middleware": {
1029
+ label: "@blocklet/uploader-server"
1030
+ shape: package
1031
+ }
1032
+ }
1033
+ }
1034
+
1035
+ "File-System": {
1036
+ label: "Storage\n(e.g., File System)"
1037
+ shape: cylinder
1038
+ }
1039
+
1040
+ "Uploader-Component" -> "Uploader-Middleware": "HTTP POST Request\n(File Upload)"
1041
+ "Uploader-Middleware" -> "File-System": "Saves File"
1042
+ ```
1043
+ - good:
1044
+ ```d2
1045
+ direction: down
1046
+
1047
+ "User-Browser": {
1048
+ label: "User's Browser"
1049
+ shape: rectangle
1050
+
1051
+ "React-App": {
1052
+ label: "Your React App"
1053
+ shape: rectangle
1054
+
1055
+ "Uploader-Component": {
1056
+ label: "@blocklet/uploader"
1057
+ shape: package
1058
+ }
1059
+ }
1060
+ }
1061
+
1062
+ "Blocklet-Server": {
1063
+ label: "Your Blocklet Server"
1064
+ shape: rectangle
1065
+
1066
+ "Express-App": {
1067
+ label: "Your Express App"
1068
+ shape: rectangle
1069
+
1070
+ "Uploader-Middleware": {
1071
+ label: "@blocklet/uploader-server"
1072
+ shape: package
1073
+ }
1074
+ }
1075
+ }
1076
+
1077
+ "File-System": {
1078
+ label: "Storage\n(e.g., File System)"
1079
+ shape: cylinder
1080
+ }
1081
+
1082
+ User-Browser.React-App.Uploader-Component -> Blocklet-Server.Express-App.Uploader-Middleware: "HTTP POST Request\n(File Upload)"
1083
+ Blocklet-Server.Express-App.Uploader-Middleware -> "File-System": "Saves File"
1084
+ ```
1085
+ - 对于节点 shape 的选择,可以参考
1086
+ {% include "shape-rules.md" %}
956
1087
  - 示例参考:
957
1088
  {% include "diy-examples.md" %}
@@ -24,6 +24,8 @@
24
24
  - **确保 Markdown 语法**:Markdown 格式正确,特别是表格的分隔线(例如 `|---|---|---|`),需要与表格数据列数一致。
25
25
  - README 文件只做参考,你需要从代码中获取最新、最完整的信息
26
26
  - 忽略详情顶部的标签信息,这是程序处理的,不需要在生成时输出
27
+ - 代码中可能会包含 `jsx` 语法,需要能正确的解析 `jsx` 语法
28
+ {% include "jsx/rules.md" %}
27
29
 
28
30
  </document_rules>
29
31
 
@@ -0,0 +1,3 @@
1
+ - **非常重要** jsx 语法中,组件的名称是不包含 `<`, `/>` 的,当组件名称用于标题、图表或者描述时,一定要确保使用的是正确的名称
2
+ - bad: `<Uploader />`
3
+ - good: `Uploader`
@@ -513,11 +513,7 @@ export const RESOLUTION_STRATEGIES = {
513
513
  export const D2_CONFIG = `vars: {
514
514
  d2-config: {
515
515
  layout-engine: elk
516
- theme-id: 300
517
- theme-overrides: {
518
- AA4: "#90EFDF"
519
- AA5: "#D2FFF7"
520
- }
516
+ theme-id: 8
521
517
  }
522
518
  }`;
523
519