@diagrammo/dgmo 0.8.6 → 0.8.8
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/.claude/commands/dgmo.md +1 -27
- package/.cursorrules +2 -2
- package/.github/copilot-instructions.md +2 -2
- package/.windsurfrules +2 -2
- package/AGENTS.md +2 -2
- package/README.md +0 -1
- package/dist/index.cjs +8 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/docs/ai-integration.md +1 -1
- package/docs/language-reference.md +81 -162
- package/package.json +1 -1
- package/src/boxes-and-lines/parser.ts +4 -1
- package/src/gantt/parser.ts +4 -1
- package/src/infra/parser.ts +4 -1
- package/src/kanban/parser.ts +4 -1
- package/src/utils/tag-groups.ts +38 -14
package/docs/ai-integration.md
CHANGED
|
@@ -105,4 +105,4 @@ dgmo --chart-types --json # Machine-readable chart type list
|
|
|
105
105
|
|
|
106
106
|
Run `dgmo --chart-types` for the full list, or see `docs/language-reference.md`.
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
33 types: bar, line, area, multi-line, pie, doughnut, radar, polar-area, bar-stacked, scatter, sankey, chord, function, heatmap, funnel, slope, wordcloud, arc, timeline, venn, quadrant, sequence, flowchart, state, class, er, org, kanban, c4, sitemap, infra, gantt, boxes-and-lines.
|
|
@@ -1,40 +1,6 @@
|
|
|
1
|
-
# DGMO Language
|
|
2
|
-
|
|
3
|
-
DGMO is a text-based diagram markup language. Files use the `.dgmo` extension. Render with the `dgmo` CLI, the Diagrammo desktop app, or the `@diagrammo/dgmo` npm library.
|
|
4
|
-
|
|
5
|
-
## Migration Guide
|
|
6
|
-
|
|
7
|
-
Syntax changes introduced in the consistency cleanup. Old forms now produce errors.
|
|
8
|
-
|
|
9
|
-
| Old Syntax | New Syntax | Chart Types |
|
|
10
|
-
|---|---|---|
|
|
11
|
-
| `chart: TYPE` + `title: Text` | `TYPE Text` (single first line) | All |
|
|
12
|
-
| `chart: TYPE` (alone) | `TYPE` | All |
|
|
13
|
-
| `directive: value` | `directive value` (no colon) | All |
|
|
14
|
-
| `Label: value` (ECharts data) | `Label value` | bar, line, pie, etc. |
|
|
15
|
-
| `era YYYY->YYYY: Label` | `era YYYY->YYYY Label` | line, timeline, gantt |
|
|
16
|
-
| `marker YYYY: Label` | `marker YYYY Label` | timeline, gantt |
|
|
17
|
-
| `## Group` | `tag Group` | All |
|
|
18
|
-
| `== Column ==` | `[Column]` | Kanban |
|
|
19
|
-
| `person Name` | `Name is a person` | C4 |
|
|
20
|
-
| `-> Target : Desc [tech]` | `-Desc-> Target \| tech: val` | C4 |
|
|
21
|
-
| `A <-> B` | Two lines: `A -> B` + `B -> A` | C4 |
|
|
22
|
-
| `-> Target x5` | `-> Target \| fanout: 5` | Infra |
|
|
23
|
-
| `lag: 5d` / `lead: 3d` | `offset: 5d` / `offset: -3d` | Gantt |
|
|
24
|
-
| `Name(color)` | Use `tag` groups | Sequence |
|
|
25
|
-
| `scenario:` | (removed) | Infra |
|
|
26
|
-
| `wip` | `doing` (wip still accepted) | Init-status |
|
|
27
|
-
| `#ff0000` hex colors | Named colors only | All |
|
|
28
|
-
| `show-sub-node-count: yes` | `show-sub-node-count` (flag) | Org |
|
|
29
|
-
| `import: path` | `import path` | Org |
|
|
30
|
-
| `tags: path` | `tags path` | Org |
|
|
31
|
-
| `xlabel` | `x-label` | Data charts, function |
|
|
32
|
-
| `ylabel` | `y-label` | Data charts, function |
|
|
33
|
-
| `sizelabel` | `size-label` | Scatter/bubble |
|
|
34
|
-
| `x-axis` | `x-label` | Quadrant |
|
|
35
|
-
| `y-axis` | `y-label` | Quadrant |
|
|
1
|
+
# DGMO Language Specification
|
|
36
2
|
|
|
37
|
-
|
|
3
|
+
> **Authoritative reference** for the DGMO diagram language. This document describes what is valid syntax. If it is not in this document, it is not valid DGMO.
|
|
38
4
|
|
|
39
5
|
## Table of Contents
|
|
40
6
|
|
|
@@ -48,14 +14,13 @@ Syntax changes introduced in the consistency cleanup. Old forms now produce erro
|
|
|
48
14
|
8. [Entity-Relationship Diagrams](#8-entity-relationship-diagrams)
|
|
49
15
|
9. [Class Diagrams](#9-class-diagrams)
|
|
50
16
|
10. [Kanban Boards](#10-kanban-boards)
|
|
51
|
-
11. [
|
|
52
|
-
12. [
|
|
53
|
-
13. [
|
|
54
|
-
14. [
|
|
55
|
-
15. [
|
|
56
|
-
16. [
|
|
57
|
-
17. [
|
|
58
|
-
18. [Colon Usage Summary](#18-colon-usage-summary)
|
|
17
|
+
11. [Sitemap Diagrams](#11-sitemap-diagrams)
|
|
18
|
+
12. [Gantt Charts](#12-gantt-charts)
|
|
19
|
+
13. [Boxes and Lines Diagrams](#13-boxes-and-lines-diagrams)
|
|
20
|
+
14. [Timeline Diagrams](#14-timeline-diagrams)
|
|
21
|
+
15. [Data Charts](#15-data-charts)
|
|
22
|
+
16. [Visualizations](#16-visualizations)
|
|
23
|
+
17. [Colon Usage Summary](#17-colon-usage-summary)
|
|
59
24
|
|
|
60
25
|
---
|
|
61
26
|
|
|
@@ -96,7 +61,7 @@ tag GroupName [alias X]
|
|
|
96
61
|
- First entry is default unless another is marked `default`
|
|
97
62
|
- Must appear before diagram content
|
|
98
63
|
|
|
99
|
-
**Diagram types that support tags**: sequence, infra, org, c4, er, kanban, gantt,
|
|
64
|
+
**Diagram types that support tags**: sequence, infra, org, c4, er, kanban, gantt, sitemap, timeline, boxes-and-lines
|
|
100
65
|
|
|
101
66
|
### 1.4 Pipe Metadata
|
|
102
67
|
|
|
@@ -638,7 +603,7 @@ abstract Vessel
|
|
|
638
603
|
interface Serializable
|
|
639
604
|
Ship extends Vessel
|
|
640
605
|
Galleon implements Serializable
|
|
641
|
-
ShipType
|
|
606
|
+
enum ShipType
|
|
642
607
|
```
|
|
643
608
|
|
|
644
609
|
### 9.3 Members (Indented, Colon for Types)
|
|
@@ -661,7 +626,7 @@ Visibility: `+` public, `-` private, `#` protected
|
|
|
661
626
|
|
|
662
627
|
**Enum values:**
|
|
663
628
|
```
|
|
664
|
-
ShipType
|
|
629
|
+
enum ShipType
|
|
665
630
|
Galleon
|
|
666
631
|
Sloop
|
|
667
632
|
```
|
|
@@ -725,72 +690,15 @@ kanban [Title]
|
|
|
725
690
|
|
|
726
691
|
---
|
|
727
692
|
|
|
728
|
-
## 11.
|
|
693
|
+
## 11. Sitemap Diagrams
|
|
729
694
|
|
|
730
695
|
### 11.1 Declaration
|
|
731
696
|
|
|
732
|
-
```
|
|
733
|
-
initiative-status [Title]
|
|
734
|
-
```
|
|
735
|
-
|
|
736
|
-
### 11.2 Nodes
|
|
737
|
-
|
|
738
|
-
```
|
|
739
|
-
NodeLabel | status, key: value
|
|
740
|
-
NodeLabel | done, t: Team1
|
|
741
|
-
```
|
|
742
|
-
|
|
743
|
-
Status values and equivalences:
|
|
744
|
-
|
|
745
|
-
| User writes | Canonical | Display |
|
|
746
|
-
|------------|-----------|---------|
|
|
747
|
-
| `done` | `done` | Done |
|
|
748
|
-
| `doing` | `doing` | In Progress |
|
|
749
|
-
| `wip` | `doing` | In Progress |
|
|
750
|
-
| `blocked` | `blocked` | Blocked |
|
|
751
|
-
| `paused` | `blocked` | Blocked |
|
|
752
|
-
| `waiting` | `blocked` | Blocked |
|
|
753
|
-
| `todo` | `todo` | To Do |
|
|
754
|
-
| `na` | `na` | N/A |
|
|
755
|
-
| (omitted) | `na` | N/A |
|
|
756
|
-
|
|
757
|
-
### 11.3 Edges
|
|
758
|
-
|
|
759
|
-
```
|
|
760
|
-
Source -> Target
|
|
761
|
-
Source -label-> Target
|
|
762
|
-
Source -> Target | status
|
|
763
|
-
```
|
|
764
|
-
|
|
765
|
-
Indented shorthand (source from preceding node):
|
|
766
|
-
```
|
|
767
|
-
Captain | t: Bridge
|
|
768
|
-
-issueOrders-> CrewApp | na
|
|
769
|
-
```
|
|
770
|
-
|
|
771
|
-
### 11.4 Groups
|
|
772
|
-
|
|
773
|
-
```
|
|
774
|
-
[Group Name]
|
|
775
|
-
indented nodes...
|
|
776
|
-
```
|
|
777
|
-
|
|
778
|
-
### 11.5 Options
|
|
779
|
-
|
|
780
|
-
- `active-tag GroupName`
|
|
781
|
-
- `hide phase:Planning, phase:Review` (colon syntax for tag:value)
|
|
782
|
-
|
|
783
|
-
---
|
|
784
|
-
|
|
785
|
-
## 12. Sitemap Diagrams
|
|
786
|
-
|
|
787
|
-
### 12.1 Declaration
|
|
788
|
-
|
|
789
697
|
```
|
|
790
698
|
sitemap [Title]
|
|
791
699
|
```
|
|
792
700
|
|
|
793
|
-
###
|
|
701
|
+
### 11.2 Pages (Indentation = Hierarchy)
|
|
794
702
|
|
|
795
703
|
```
|
|
796
704
|
Home
|
|
@@ -800,7 +708,7 @@ Home
|
|
|
800
708
|
Blog
|
|
801
709
|
```
|
|
802
710
|
|
|
803
|
-
###
|
|
711
|
+
### 11.3 Arrows
|
|
804
712
|
|
|
805
713
|
```
|
|
806
714
|
Home
|
|
@@ -808,28 +716,28 @@ Home
|
|
|
808
716
|
-login-> Login
|
|
809
717
|
```
|
|
810
718
|
|
|
811
|
-
###
|
|
719
|
+
### 11.4 Containers
|
|
812
720
|
|
|
813
721
|
```
|
|
814
722
|
[Marketing]
|
|
815
723
|
Pricing | Auth: Public
|
|
816
724
|
```
|
|
817
725
|
|
|
818
|
-
###
|
|
726
|
+
### 11.5 Options
|
|
819
727
|
|
|
820
728
|
- `direction-tb` (boolean; default is LR)
|
|
821
729
|
|
|
822
730
|
---
|
|
823
731
|
|
|
824
|
-
##
|
|
732
|
+
## 12. Gantt Charts
|
|
825
733
|
|
|
826
|
-
###
|
|
734
|
+
### 12.1 Declaration
|
|
827
735
|
|
|
828
736
|
```
|
|
829
737
|
gantt [Title]
|
|
830
738
|
```
|
|
831
739
|
|
|
832
|
-
###
|
|
740
|
+
### 12.2 Options (Space-Separated, NO Colon)
|
|
833
741
|
|
|
834
742
|
```
|
|
835
743
|
start 2026-03-15
|
|
@@ -840,7 +748,7 @@ no-dependencies
|
|
|
840
748
|
sort tag:Team
|
|
841
749
|
```
|
|
842
750
|
|
|
843
|
-
###
|
|
751
|
+
### 12.3 Holidays
|
|
844
752
|
|
|
845
753
|
```
|
|
846
754
|
holiday
|
|
@@ -848,7 +756,7 @@ holiday
|
|
|
848
756
|
2024-05-27 -> 2024-05-29 Memorial Weekend
|
|
849
757
|
```
|
|
850
758
|
|
|
851
|
-
###
|
|
759
|
+
### 12.4 Workweek
|
|
852
760
|
|
|
853
761
|
```
|
|
854
762
|
workweek mon-fri
|
|
@@ -857,7 +765,7 @@ workweek sun-thu
|
|
|
857
765
|
|
|
858
766
|
Top-level directive (not nested under `holiday`).
|
|
859
767
|
|
|
860
|
-
###
|
|
768
|
+
### 12.5 Eras
|
|
861
769
|
|
|
862
770
|
**Flat form:**
|
|
863
771
|
```
|
|
@@ -871,7 +779,7 @@ era
|
|
|
871
779
|
2026-06-01 -> 2026-06-05 Sprint Review (blue)
|
|
872
780
|
```
|
|
873
781
|
|
|
874
|
-
###
|
|
782
|
+
### 12.6 Markers
|
|
875
783
|
|
|
876
784
|
**Flat form:**
|
|
877
785
|
```
|
|
@@ -885,7 +793,7 @@ marker
|
|
|
885
793
|
2026-06-15 Release (green)
|
|
886
794
|
```
|
|
887
795
|
|
|
888
|
-
###
|
|
796
|
+
### 12.7 Groups (Swimlanes)
|
|
889
797
|
|
|
890
798
|
```
|
|
891
799
|
[Backend] | t: Engineering
|
|
@@ -893,7 +801,7 @@ marker
|
|
|
893
801
|
|
|
894
802
|
Bracket syntax only.
|
|
895
803
|
|
|
896
|
-
###
|
|
804
|
+
### 12.8 Tasks
|
|
897
805
|
|
|
898
806
|
```
|
|
899
807
|
20bd Database Schema | p: Foundation, 100%
|
|
@@ -906,7 +814,7 @@ Duration units: `min`, `h`, `d`, `bd` (business days), `w`, `m`, `q`, `y`
|
|
|
906
814
|
Uncertain: `10bd?` (trailing `?`)
|
|
907
815
|
Progress: `| 80%` in pipe metadata
|
|
908
816
|
|
|
909
|
-
###
|
|
817
|
+
### 12.9 Dependencies (Indented Under Tasks)
|
|
910
818
|
|
|
911
819
|
```
|
|
912
820
|
10bd API Integration
|
|
@@ -914,7 +822,7 @@ Progress: `| 80%` in pipe metadata
|
|
|
914
822
|
-> Launch Day | offset: 10bd
|
|
915
823
|
```
|
|
916
824
|
|
|
917
|
-
###
|
|
825
|
+
### 12.10 Parallel Block
|
|
918
826
|
|
|
919
827
|
```
|
|
920
828
|
parallel
|
|
@@ -926,31 +834,29 @@ parallel
|
|
|
926
834
|
|
|
927
835
|
---
|
|
928
836
|
|
|
929
|
-
##
|
|
837
|
+
## 13. Boxes and Lines Diagrams
|
|
930
838
|
|
|
931
|
-
###
|
|
839
|
+
### 13.1 Declaration
|
|
932
840
|
|
|
933
841
|
```
|
|
934
842
|
boxes-and-lines [Title]
|
|
935
843
|
```
|
|
936
844
|
|
|
937
|
-
Requires explicit first line — no heuristic detection. Default
|
|
845
|
+
Requires explicit first line — no heuristic detection. Default direction is left-to-right.
|
|
938
846
|
|
|
939
|
-
###
|
|
847
|
+
### 13.2 Nodes
|
|
940
848
|
|
|
941
849
|
```
|
|
942
850
|
NodeLabel
|
|
943
851
|
NodeLabel | key: value, key2: value2
|
|
944
852
|
NodeLabel | description: Some text here
|
|
945
|
-
NodeLabel [type]
|
|
946
|
-
NodeLabel [type] | key: value
|
|
947
853
|
```
|
|
948
854
|
|
|
949
|
-
Nodes are created explicitly or implicitly (when referenced in edges).
|
|
855
|
+
Nodes are created explicitly or implicitly (when referenced in edges). All nodes render as uniform rounded rectangles.
|
|
950
856
|
|
|
951
|
-
|
|
857
|
+
The `description` key is extracted as a dedicated field and not stored in metadata.
|
|
952
858
|
|
|
953
|
-
###
|
|
859
|
+
### 13.3 Edges
|
|
954
860
|
|
|
955
861
|
```
|
|
956
862
|
Source -> Target
|
|
@@ -967,11 +873,19 @@ API | description: Main gateway
|
|
|
967
873
|
-routes-> ProductService
|
|
968
874
|
```
|
|
969
875
|
|
|
970
|
-
|
|
876
|
+
Pipe metadata on edges:
|
|
877
|
+
```
|
|
878
|
+
A -reads-> DB | frequency: High
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
### 13.4 Groups
|
|
971
882
|
|
|
972
883
|
```
|
|
973
884
|
[Group Name]
|
|
974
885
|
indented nodes...
|
|
886
|
+
|
|
887
|
+
[Group Name] | key: value
|
|
888
|
+
indented nodes...
|
|
975
889
|
```
|
|
976
890
|
|
|
977
891
|
Nested groups (max depth 2):
|
|
@@ -982,30 +896,36 @@ Nested groups (max depth 2):
|
|
|
982
896
|
DB
|
|
983
897
|
```
|
|
984
898
|
|
|
985
|
-
Group metadata cascades to children.
|
|
899
|
+
Group metadata cascades to children (node metadata overrides). Nodes already declared above can be referenced inside groups to assign membership.
|
|
900
|
+
|
|
901
|
+
### 13.5 Group-to-Group Edges
|
|
902
|
+
|
|
986
903
|
```
|
|
987
904
|
[Region A] -> [Region B]
|
|
905
|
+
[Region A] <-> [Region B]
|
|
988
906
|
[Region A] -VPN-> [Region B]
|
|
989
907
|
```
|
|
990
908
|
|
|
991
|
-
###
|
|
909
|
+
### 13.6 Directives
|
|
992
910
|
|
|
993
911
|
- `direction TB` — top-to-bottom layout (default: `LR`)
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
912
|
+
|
|
913
|
+
### 13.7 Options
|
|
914
|
+
|
|
915
|
+
- `active-tag GroupName` — set active tag group for coloring
|
|
916
|
+
- `hide team:Backend, team:Frontend` — hide nodes with matching tag values (colon syntax for tag:value)
|
|
997
917
|
|
|
998
918
|
---
|
|
999
919
|
|
|
1000
|
-
##
|
|
920
|
+
## 14. Timeline Diagrams
|
|
1001
921
|
|
|
1002
|
-
###
|
|
922
|
+
### 14.1 Declaration
|
|
1003
923
|
|
|
1004
924
|
```
|
|
1005
925
|
timeline [Title]
|
|
1006
926
|
```
|
|
1007
927
|
|
|
1008
|
-
###
|
|
928
|
+
### 14.2 Events
|
|
1009
929
|
|
|
1010
930
|
**Point event:**
|
|
1011
931
|
```
|
|
@@ -1030,7 +950,7 @@ timeline [Title]
|
|
|
1030
950
|
Date formats: `YYYY`, `YYYY-MM`, `YYYY-MM-DD`, `YYYY-MM-DD HH:MM`
|
|
1031
951
|
Duration units: `min`, `h`, `d`, `w`, `m`, `y`
|
|
1032
952
|
|
|
1033
|
-
###
|
|
953
|
+
### 14.3 Eras
|
|
1034
954
|
|
|
1035
955
|
**Flat form:**
|
|
1036
956
|
```
|
|
@@ -1044,7 +964,7 @@ era
|
|
|
1044
964
|
1718 -> 1720 Woodes Rogers Era (orange)
|
|
1045
965
|
```
|
|
1046
966
|
|
|
1047
|
-
###
|
|
967
|
+
### 14.4 Markers
|
|
1048
968
|
|
|
1049
969
|
**Flat form:**
|
|
1050
970
|
```
|
|
@@ -1058,7 +978,7 @@ marker
|
|
|
1058
978
|
1720-01 End of Golden Age (red)
|
|
1059
979
|
```
|
|
1060
980
|
|
|
1061
|
-
###
|
|
981
|
+
### 14.5 Groups
|
|
1062
982
|
|
|
1063
983
|
```
|
|
1064
984
|
[Royal Navy]
|
|
@@ -1067,9 +987,9 @@ marker
|
|
|
1067
987
|
|
|
1068
988
|
---
|
|
1069
989
|
|
|
1070
|
-
##
|
|
990
|
+
## 15. Data Charts
|
|
1071
991
|
|
|
1072
|
-
###
|
|
992
|
+
### 15.1 Simple Charts (bar, line, pie, doughnut, area, polar-area, radar, bar-stacked)
|
|
1073
993
|
|
|
1074
994
|
**Declaration:** `bar [Title]`, `line [Title]`, etc.
|
|
1075
995
|
|
|
@@ -1115,7 +1035,7 @@ stacked
|
|
|
1115
1035
|
era Day 1 -> Day 3 Rough Seas (red)
|
|
1116
1036
|
```
|
|
1117
1037
|
|
|
1118
|
-
###
|
|
1038
|
+
### 15.2 Scatter / Bubble Charts
|
|
1119
1039
|
|
|
1120
1040
|
**Data rows (space-separated, NO colon):**
|
|
1121
1041
|
```
|
|
@@ -1141,7 +1061,7 @@ no-labels
|
|
|
1141
1061
|
|
|
1142
1062
|
Labels are on by default. Use `no-labels` to hide point names.
|
|
1143
1063
|
|
|
1144
|
-
###
|
|
1064
|
+
### 15.3 Heatmap
|
|
1145
1065
|
|
|
1146
1066
|
**Columns:**
|
|
1147
1067
|
```
|
|
@@ -1157,7 +1077,7 @@ RowLabel 5 4 3
|
|
|
1157
1077
|
|
|
1158
1078
|
Commas between values are optional. Thousands commas supported.
|
|
1159
1079
|
|
|
1160
|
-
###
|
|
1080
|
+
### 15.4 Function Charts (Colon REQUIRED)
|
|
1161
1081
|
|
|
1162
1082
|
```
|
|
1163
1083
|
function Trajectories
|
|
@@ -1174,7 +1094,7 @@ The colon between name and expression is **required** — both sides can contain
|
|
|
1174
1094
|
**Options:**
|
|
1175
1095
|
- `shade` (boolean; off by default, shades area below curves when enabled)
|
|
1176
1096
|
|
|
1177
|
-
###
|
|
1097
|
+
### 15.5 Sankey Charts
|
|
1178
1098
|
|
|
1179
1099
|
**Tree structure (indented, space-separated):**
|
|
1180
1100
|
```
|
|
@@ -1191,7 +1111,7 @@ Source -- Target 2000
|
|
|
1191
1111
|
|
|
1192
1112
|
`->` = directed, `--` = undirected. Thousands commas supported in values.
|
|
1193
1113
|
|
|
1194
|
-
###
|
|
1114
|
+
### 15.6 Chord Charts
|
|
1195
1115
|
|
|
1196
1116
|
```
|
|
1197
1117
|
Blackbeard -- Bonnet 150 // undirected
|
|
@@ -1200,7 +1120,7 @@ Roberts -> Rackham 20 // directed
|
|
|
1200
1120
|
|
|
1201
1121
|
Thousands commas supported in values.
|
|
1202
1122
|
|
|
1203
|
-
###
|
|
1123
|
+
### 15.7 Funnel Charts
|
|
1204
1124
|
|
|
1205
1125
|
**Data rows (space-separated, NO colon):**
|
|
1206
1126
|
```
|
|
@@ -1213,9 +1133,9 @@ Thousands commas supported.
|
|
|
1213
1133
|
|
|
1214
1134
|
---
|
|
1215
1135
|
|
|
1216
|
-
##
|
|
1136
|
+
## 16. Visualizations
|
|
1217
1137
|
|
|
1218
|
-
###
|
|
1138
|
+
### 16.1 Slope Charts
|
|
1219
1139
|
|
|
1220
1140
|
```
|
|
1221
1141
|
slope Fleet Strength
|
|
@@ -1237,7 +1157,7 @@ Roberts 12 52
|
|
|
1237
1157
|
- Color annotations: `Label (color) value1 value2`
|
|
1238
1158
|
- Minimum 2 periods required
|
|
1239
1159
|
|
|
1240
|
-
###
|
|
1160
|
+
### 16.2 Wordcloud
|
|
1241
1161
|
|
|
1242
1162
|
```
|
|
1243
1163
|
wordcloud Pirate Skills
|
|
@@ -1252,7 +1172,7 @@ navigation 88
|
|
|
1252
1172
|
- Data: space-separated only (`word value`)
|
|
1253
1173
|
- Options: `rotate none|mixed|angled`, `max N`, `size min max`
|
|
1254
1174
|
|
|
1255
|
-
###
|
|
1175
|
+
### 16.3 Arc Diagrams
|
|
1256
1176
|
|
|
1257
1177
|
```
|
|
1258
1178
|
arc Pirate Alliances
|
|
@@ -1267,7 +1187,7 @@ order group
|
|
|
1267
1187
|
- Link: `Source -> Target weight` — space before optional weight
|
|
1268
1188
|
- Options: `order appearance|name|group|degree`
|
|
1269
1189
|
|
|
1270
|
-
###
|
|
1190
|
+
### 16.4 Venn Diagrams
|
|
1271
1191
|
|
|
1272
1192
|
```
|
|
1273
1193
|
venn Skill Overlap
|
|
@@ -1283,7 +1203,7 @@ sw + nav + lead Legendary Pirates
|
|
|
1283
1203
|
- Set declaration: `Name(color) alias X`
|
|
1284
1204
|
- Intersections: `Set1 + Set2 Label` — label follows the last set reference (no colon)
|
|
1285
1205
|
|
|
1286
|
-
###
|
|
1206
|
+
### 16.5 Quadrant Diagrams
|
|
1287
1207
|
|
|
1288
1208
|
```
|
|
1289
1209
|
quadrant Crew Assessment
|
|
@@ -1295,18 +1215,17 @@ top-left Train (yellow)
|
|
|
1295
1215
|
bottom-left Maroon (red)
|
|
1296
1216
|
bottom-right Watch Closely (purple)
|
|
1297
1217
|
|
|
1298
|
-
Quartermaster 0.9
|
|
1299
|
-
Navigator 0.85
|
|
1218
|
+
Quartermaster 0.9 0.95
|
|
1219
|
+
Navigator 0.85 0.8
|
|
1300
1220
|
```
|
|
1301
1221
|
|
|
1302
|
-
- Axis labels: `x-label Low, High` —
|
|
1222
|
+
- Axis labels: `x-label Low, High` — comma-separated
|
|
1303
1223
|
- Position labels: `top-right Label` — space-separated
|
|
1304
|
-
- Data points: `Label x, y` — space
|
|
1305
|
-
- Thousands commas supported in values
|
|
1224
|
+
- Data points: `Label x y` or `Label x, y` — comma or space between coordinates
|
|
1306
1225
|
|
|
1307
1226
|
---
|
|
1308
1227
|
|
|
1309
|
-
##
|
|
1228
|
+
## 17. Colon Usage Summary
|
|
1310
1229
|
|
|
1311
1230
|
### Constructs Where Colons Are REQUIRED
|
|
1312
1231
|
|
|
@@ -1318,7 +1237,7 @@ Navigator 0.85, 0.8
|
|
|
1318
1237
|
| Class field types | class | `+ name: string` |
|
|
1319
1238
|
| Class method returns | class | `+ sail(): void` |
|
|
1320
1239
|
| Function expressions | function | `f(x): x^2 + 1` |
|
|
1321
|
-
| Hide tag values |
|
|
1240
|
+
| Hide tag values | boxes-and-lines | `hide phase:Planning` |
|
|
1322
1241
|
|
|
1323
1242
|
### Colons OPTIONAL
|
|
1324
1243
|
|
package/package.json
CHANGED
|
@@ -250,7 +250,10 @@ export function parseBoxesAndLines(content: string): ParsedBoxesAndLines {
|
|
|
250
250
|
});
|
|
251
251
|
if (isDefault) currentTagGroup.defaultValue = label;
|
|
252
252
|
}
|
|
253
|
-
if (
|
|
253
|
+
if (
|
|
254
|
+
!currentTagGroup.defaultValue &&
|
|
255
|
+
currentTagGroup.entries.length > 0
|
|
256
|
+
) {
|
|
254
257
|
currentTagGroup.defaultValue = currentTagGroup.entries[0].value;
|
|
255
258
|
}
|
|
256
259
|
}
|
package/src/gantt/parser.ts
CHANGED
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
import { makeDgmoError, formatDgmoError } from '../diagnostics';
|
|
6
6
|
import type { DgmoError } from '../diagnostics';
|
|
7
7
|
import type { TagGroup } from '../utils/tag-groups';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
matchTagBlockHeading,
|
|
10
|
+
stripDefaultModifier,
|
|
11
|
+
} from '../utils/tag-groups';
|
|
9
12
|
import {
|
|
10
13
|
measureIndent,
|
|
11
14
|
extractColor,
|
package/src/infra/parser.ts
CHANGED
|
@@ -12,7 +12,10 @@ import {
|
|
|
12
12
|
parseFirstLine,
|
|
13
13
|
OPTION_NOCOLON_RE,
|
|
14
14
|
} from '../utils/parsing';
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
matchTagBlockHeading,
|
|
17
|
+
stripDefaultModifier,
|
|
18
|
+
} from '../utils/tag-groups';
|
|
16
19
|
import type {
|
|
17
20
|
ParsedInfra,
|
|
18
21
|
InfraNode,
|
package/src/kanban/parser.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { PaletteColors } from '../palettes';
|
|
2
2
|
import { makeDgmoError, formatDgmoError, suggest } from '../diagnostics';
|
|
3
3
|
import { resolveColor } from '../colors';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
matchTagBlockHeading,
|
|
6
|
+
stripDefaultModifier,
|
|
7
|
+
} from '../utils/tag-groups';
|
|
5
8
|
import {
|
|
6
9
|
measureIndent,
|
|
7
10
|
extractColor,
|