Test QuickGV: Difference between revisions

From Fundamental Ramen
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf
See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf
= Colored Edge =
<quickmmd name="colored-edge">
flowchart TD
  A1(["👩🏻‍💻 Human"])
  A2(["🤖 Agent"])
  B1("HTTP<br>(Fiber v3)")
  subgraph backend handlers 
    B2("API handler")
    B3("MCP HTTP")
    B4("Streamable Handler")
    B5("SSE handler")
    B6("MCP Server")
  end
  subgraph backend services
    C1(Mermaid to SVG)
    C2(Mermaid to PNG)
    C3(XML Formatter)
  end
  subgraph frontend
    B7("Nuxt.js")
  end
  subgraph resources
    D1(Mermaid Container<br>yuzutech/kroki-mermaid)
  end
  %% human path
  A1 --> B1
  B1 --> |the rest URI| B7
  linkStyle 0,1 stroke:#0000ff,stroke-width:2px
  %% agent path
  A2 --> B1
  B1 --> |/mcp or /sse| B3
  linkStyle 2,3 stroke:#00aa00,stroke-width:2px
  %% api path
  B7 --> |axios| B1
  B1 --> |/api| B2
  linkStyle 4,5 stroke:#9900cc,stroke-width:2px
  B3 --> |/mcp| B4
  B3 --> |/sse| B5
  B4 & B5 --> B6
  B6 --> C1 & C2 & C3
  B2 --> D1
  C1 & C2 --> D1
</quickmmd>


= Dish =
= Dish =
Line 12: Line 66:


= MMD =
= MMD =
<quickmmd name="testmmd">
<quickmmd name="testmmd">
flowchart TD
flowchart LR
  A[(更新 MAINSYS_DB.md)]@{ shape: doc }
    Root("規則動詞變化<br>(play)")
  B[(`task mig-create -- xxx`<br>新增一組資料庫版本異動)]
  C[(`assets/migrations/xxx.sql`<br>修訂資料庫異動檔 )]
  D[(`task mig-up`<br>升級資料庫)]
  E[(`task mig-down`<br>降級資料庫)]
  F{{`src/main_be/internal/schema/xxx.go`<br>新增 Ent schema 定義}}
  G{{`task ent-gen`<br>生成 Ent 資料存取碼}}
  H([在 service 層寫業務邏輯])
  I([在 service 層寫單元測試])
  J([在 handler 層寫請求處理])
  K[在 main.go 組裝 client, service, handler]@{ shape: procs }


  A --> B
    Root --> Past("過去")
    Root --> Pres("現在")
    Root --> Fut("未來")


  subgraph database_layer
     Past --> P1("過去普通: played")
    direction LR
     Past --> P2("過去進行: was/were playing")
     B --> C
     Past --> P3("過去完成: had played")
     C --> D
     Past --> P4("過去被動: was/were played")
     D --Failed--> E
     E --Tunning--> C
  end


  D --Passed--> F
    Pres --> R1("現在普通: play / plays")
  F --> G
    Pres --> R2("現在進行: am/is/are playing")
  G --> H
    Pres --> R3("現在完成: have/has played")
    Pres --> R4("現在被動: am/is/are played")


  subgraph service_layer
    Fut --> F1("未來普通: will play")
      direction LR
    Fut --> F2("未來進行: will be playing")
      H --> I
    Fut --> F3("未來完成: will have played")
      I --Failed--> H
    Fut --> F4("未來被動: will be played")
      I --Passed--> J
  end 
 
  J --> K
</quickmmd>
</quickmmd>


Line 78: Line 119:
s:mh -> iq [color="#ff0000"];
s:mh -> iq [color="#ff0000"];
s:mw -> iq [color="#ff0000",dir="back"];
s:mw -> iq [color="#ff0000",dir="back"];
</quickgv>
= 建議線路 gen2 =
<quickgv name="topology_gen2" theme="warm">
subgraph cluster_clinic {
  label="診間網路";
  his[label="HIS Server"];
  nas[label="NAS"];
  opd[label="診間"];
  pt[label="復健"];
  reg[label="掛號"];
  tv[label="衛教"];
  prn[label="印表機"];
  fw[label="防火牆"];
  wan1[label="固定IP線路"];
  wan2[label="健保局 VPN"];
  cross[label="跨院病歷"];
  subgraph cluster_switch {
    label="網路交換器";
    vlan1[label="診間區虛擬網路"];
    vlan2[label="敏感區虛擬網路"];
  }
  {opd pt reg tv prn} -> vlan1;
  {his nas} -> vlan2;
  {vlan1 vlan2} -> fw;
  fw -> {wan1 wan2};
  wan1 -> cross [dir="back", color="#ff0000"];
}
// 開放網路
subgraph cluster_open {
  label="開放網路";
  gu[label="新光保全"];
  mo[label="監視系統"];
  pc1[label="外網專用PC"];
  rt[label="IP分享器"];
  wan3[label="浮動IP線路"];
  mobile[label="監視系統 App\n(僅限特定地點存取)"];
  {pc1 gu mo} -> rt -> wan3;
  wan3 -> mobile [label="tcp:3880", dir="back", color="#ff0000"];
}
</quickgv>
= A =
<quickgv name="Gff" theme="warm">
rankdir=TB;
A [label="驗證銷售權"];
B [label="驗證輸入值格式"];
C [label="驗證報價是否存在"];
D [label="產生 GDS 訂單"];
E [label="產生供應商訂單"];
A -> B -> C -> D -> E;
</quickgv>
</quickgv>



Latest revision as of 10:42, 10 September 2026

See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf

Colored Edge

Dish

MMD

WebSocket Service

testflow

test

Crawling Flow

GDS

Geomancer

Sandbox