Test QuickGV: Difference between revisions

From Fundamental Ramen
Jump to navigation Jump to search
No edit summary
 
(231 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Fuck =
See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf
 
= Colored Edge =
 
<quickmmd name="colored-edge">
flowchart LR
  A1([🤖 Agent])
  A2([👩🏻‍💻 Human])
 
  subgraph backend handlers
    B1("HTTP<br>(Fiber v3)")
    B2("API handler")
    B3("MCP HTTP")
    B4("Streamable Handler")
    B5("SSE handler")
    B6("MCP Server")
    B7("Nuxt.js")
  end
 
  subgraph backend services
    C1(Mermaid to SVG)
    C2(Mermaid to PNG)
    C3(XML Formatter)
  end
 
  subgraph resources
    D1(Mermaid<br>Docker Container<br>yuzutech/kroki-mermaid)
  end
 
  A1 --> B1
  A2 --> B1
  B1 --> |/api| B2
  B1 --> |/mcp or /sse| B3
  B1 --> |otherwise| B7
  B3 --> |/mcp| B4
  B3 --> |/sse| B5
  B4 & B5 --> B6
  B6 --> C1 & C2 & C3
  B2 --> D1
  C1 & C2 --> D1
 
  linkStyle 0,3 stroke:#0066cc,stroke-width:2px
</quickmmd>
 
= Dish =
<quickmmd name="dish">
mindmap
  A[Dish]
    B1[Sauce Dish]
    B2[Shark's Fin Soup Dish]
    B3[Divided Dish]
    B4[Cassesrole Dish]
</quickmmd>
 
= MMD =
 
<quickmmd name="testmmd">
flowchart LR
    Root("規則動詞變化<br>(play)")
 
    Root --> Past("過去")
    Root --> Pres("現在")
    Root --> Fut("未來")
 
    Past --> P1("過去普通: played")
    Past --> P2("過去進行: was/were playing")
    Past --> P3("過去完成: had played")
    Past --> P4("過去被動: was/were played")
 
    Pres --> R1("現在普通: play / plays")
    Pres --> R2("現在進行: am/is/are playing")
    Pres --> R3("現在完成: have/has played")
    Pres --> R4("現在被動: am/is/are played")
 
    Fut --> F1("未來普通: will play")
    Fut --> F2("未來進行: will be playing")
    Fut --> F3("未來完成: will have played")
    Fut --> F4("未來被動: will be played")
</quickmmd>
 
= WebSocket Service =
 
<quickgv name="123" theme="warm" usage="ram">
subgraph cluster_client {
  label="WebSocket Client"
  c1[label="var ws = new WebSocket('/foo')"];
  c2[label="ws.onerror = function (ev) ..."];
  c3[label="ws.onopen = function (ev) ..."];
  c4[label="ws.onmessage = function (ev) ..."];
  c5[label="ws.send()"];
}
 
subgraph cluster_server {
  label="";
  s[label="Service Unit | <rh> Request Handler | <ph> Push Handler | <pw> Push Worker | <mh> Message Handler | <mw> Message Worker"];
  iq[label="Inbound Queue"];
  oq[label="Outbound Queue"];
}
 
c1 -> s:rh [color="#ff0000"];
c2 -> s:rh [color="#0000ff",dir="back"];
c3 -> s:rh [color="#0000ff",dir="back"];
c4 -> s:ph [color="#0000ff",dir="back"];
s:ph -> oq [color="#0000ff",dir="back"];
s:pw -> oq [color="#0000ff"];
c5 -> s:mh [color="#ff0000"];
s:mh -> iq [color="#ff0000"];
s:mw -> iq [color="#ff0000",dir="back"];
</quickgv>
 
= testflow =
<quickgv name="G51" theme="warm">
label="五環境佈署流程";
rankdir=TB;
 
A [label="Local\n開發新功能"];
B [label="Development\n測試模擬交易"];
C [label="Staging\n測試真實交易"];
D [label="Sandbox\n供分銷商測試"];
E [label="Production\n實際營運"];
 
A -> B;
B -> C;
B -> D;
C -> E;
</quickgv>
 
<quickgv name="G52" theme="warm">
label="三環境佈署流程";
rankdir=TB;
 
A [label="Local\n開發新功能"];
B [label="Sandbox\n升級新功能"];
C [label="Production\n升級新功能"];
 
A -> B -> C;
</quickgv>
 
test
 
= Crawling Flow =
<quickgv name="G4" theme="warm">
rankdir=TB;
 
A1 [label="Website"];
A2 [label="Proxy Server"];
A3 [label="Daily Cache"];
A4 [label="Hash Cache"];
 
B [label="Requests Session"];
C [label="Crawler"];
 
D1 [label="BeautifulSoup\n(HTML)"];
D2 [label="json\n(JSON)"];
D3 [label="Pandas\n(CSV)"];
D4 [label="Custom Datasource", fillcolor="#ffffff:#00c000"];
 
E1 [label="Handler", fillcolor="#ffffff:#00c000"];
E2 [label="Models", fillcolor="#ffffff:#00c000"];
 
F1 [label="SQLAlchemy"];
F2 [label="Console"];
F3 [label="GeoJSON"];
F4 [label="Elastic Search", fillcolor="#ffffff:#aaaaaa"];
 
G1 [label="SQLite"];
G2 [label="PostgreSQL", fillcolor="#ffffff:#aaaaaa"];
G3 [label="MySQL", fillcolor="#ffffff:#aaaaaa"];
G4 [label="MongoDB", fillcolor="#ffffff:#aaaaaa"];
 
 
A1 -> A2;
{A1 A2} -> B;
{B A3 A4} -> C;
C -> {D1 D2 D3 D4} -> E1 -> {F1 F2 F3 F4};
E2 -> F1;
F1 -> {G1 G2 G3 G4};
</quickgv>
 
= GDS =
<quickgv name="G3" theme="warm">
<quickgv name="G3" theme="warm">
rankdir=TB;
rankdir=TB;


A [label="Aquaduck Tours Surfers Paradise\n(UUID: addb0949-0783-4d93-96a1-e7d0a3a41722)"];
A [label="[Product]\nAquaduck Tours Surfers Paradise"];
B1 [label="11:15am Tour"];
 
B2 [label="01:45pm Tour"];
B1 [label="[Product Type]\n11:15am Tour"];
B3 [label="01:00pm Tour (Peak Season and Weekends Only)"];
B2 [label="[Product Type]\n01:45pm Tour"];
B3 [label="[Product Type]\n01:00pm Tour (Peak Season and Weekends Only)"];
 
C1 [label="[Product Option & Date]\nAdult @ 2019-07-03\n38.49 AUD"];
C2 [label="[Product Option & Date]\nChild (2-16yrs) @ 2019-07-03\n19.99 AUD"];
C3 [label="[Product Option & Date]\nStudent @ 2019-07-11\n25.49 AUD"];


A -> {B1 B2 B3};
A -> {B1 B2 B3};
B1 -> {C1 C2 C3};
</quickgv>
</quickgv>



Latest revision as of 10:21, 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