Test QuickGV: Difference between revisions

From Fundamental Ramen
Jump to navigation Jump to search
 
(263 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Sandbox =
See: https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf
 
= Test =
<quickmmd name="main" dump-env="true">
flowchart TD
  A --> C4
</quickmmd>
 
= 認知負荷 =
 
<quickmmd name="cognitive-load">
mindmap
  ((認知負荷))
    ((熟能生巧<br>有效認知負荷<br>germane))
      --> 數學解題突破盲腸
      --> 游泳換氣成功了
      --> 繞口令不吃螺絲
    ((錯綜複雜<br>內在認知負荷<br>intrinsic))
      --> 教材太難, 越級打怪
      --> 基礎知識沒學好
    ((莫名其妙<br>外在認知負荷<br>extraneous))
      --> 教材太多雜訊
      --> 光罰寫就寫不完
</quickmmd>
 
= Colored Edge =
 
<quickmmd name="colored-edge" dump-env="true">
flowchart TD
  A1(["👩🏻‍💻 Human1"])
  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 =
<quickmmd name="dish">
mindmap
  A[Dish2]
    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">
<quickgv name="G4" theme="warm">
B1 [label="A A A abcd"];
rankdir=TB;
B2 [label="B B B abcd"];
 
B3 [label="測 測 測 abcd"];
A1 [label="Website"];
B4 [label="Convert filter_default.ini => filter_default.json."];
A2 [label="Proxy Server"];
B5 [label="C filter_ => filter_default.json."];
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>
</quickgv>


= ASRC pattern =
= GDS =
<quickgv name="G3" theme="warm">
<quickgv name="G3" theme="warm">
rankdir=TB;
rankdir=TB;


A1 [label="Convert filter_default.ini => filter_default.json."];
A [label="[Product]\nAquaduck Tours Surfers Paradise"];
A2 [label="Convert filter_default.json => asrcPattern.plain.json."];
 
A3 [label="Encrypt asrcPattern.plain.json => asrcPattern.json."];
B1 [label="[Product Type]\n11:15am Tour"];
A4 [label="Archive."];
B2 [label="[Product Type]\n01:45pm Tour"];
A5 [label="Install this archive."];
B3 [label="[Product Type]\n01:00pm Tour (Peak Season and Weekends Only)"];
A6 [label="Set released=1 for this archive."];
 
A7 [label="Generate list.json and detail-x.x.x.json for released patterns."];
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"];


A1 -> A2 -> A3 -> A4 -> A5 -> A6 -> A7;
A -> {B1 B2 B3};
B1 -> {C1 C2 C3};
</quickgv>
</quickgv>


= Architecture of Geomancer  =
= Geomancer  =
<quickgv name="G2" theme="warm">
<quickgv name="G2" theme="warm">
rankdir=BT;
rankdir=BT;
Line 35: Line 243:


C1 [label="凶宅資料\nGeoJSON"];
C1 [label="凶宅資料\nGeoJSON"];
C2 [label="凶宅資料\nSQLite"];
C2 [label="凶宅資料\nSQLite 3"];


subgraph cluster_convertion {
subgraph cluster_convertion {
Line 66: Line 274:
D [label="Convert to land-polygons-taiwan.osm"];
D [label="Convert to land-polygons-taiwan.osm"];
E [label="Convert to taiwan-merged-YYYYMMDD.osm.pbf"];
E [label="Convert to taiwan-merged-YYYYMMDD.osm.pbf"];
F [label="Convert to taiwan-merged-YYYYMMDD.map"];
F [label="Convert to taiwan-merged-YYYYMMDD.map "];


B -> C [label="ogr2ogr (gdal)"];
B -> C [xlabel="ogr2ogr (gdal)"];
C -> D [label="python3 shp2osm.py"];
C -> D [xlabel="python3 shp2osm.py"];
{A D} -> E [label="osmosis"];
{A D} -> E [xlabel="osmosis"];
E -> F [label="osmosis with mapsforge writer"];
E -> F [xlabel="osmosis with mapsforge writer"];
</quickgv>
</quickgv>

Latest revision as of 03:25, 7 October 2026

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

Test

File Path/images/quickmmd/Test_QuickGV-main.svg
File Size10.54 KB
Last modified06:37:33
Time of SVG loading1.35 second(s)
Time of SVG convertion0.00 second(s)
Cache DetectedNo
MD5 of incoming syntaxe538eeeb07fcd747c3803c494398d21e
MD5 of cached syntax4537a9182d13375d53fc4fc20a27e7fe
SVG EngineKroki API
Kroki API URLhttp://kroki:8000
Mermaid syntax Referencehttps://mermaid.js.org/intro/syntax-reference.html
QuickMMD Version1.0.0 - About QuickMMD
flowchart TD
  A --> C4

認知負荷

File Path/images/quickmmd/Test_QuickGV-cognitive-load.svg
File Size34.96 KB
Last modified14:11:01
Time of SVG loading0.00 second(s)
Time of SVG convertion0.00 second(s)
Cache DetectedYes
SVG EngineKroki API
Kroki API URLhttp://kroki:8000
Mermaid syntax Referencehttps://mermaid.js.org/intro/syntax-reference.html
QuickMMD Version1.0.0 - About QuickMMD
mindmap
  ((認知負荷))
    ((熟能生巧<br>有效認知負荷<br>germane))
      --> 數學解題突破盲腸
      --> 游泳換氣成功了
      --> 繞口令不吃螺絲
    ((錯綜複雜<br>內在認知負荷<br>intrinsic))
      --> 教材太難, 越級打怪
      --> 基礎知識沒學好
    ((莫名其妙<br>外在認知負荷<br>extraneous))
      --> 教材太多雜訊
      --> 光罰寫就寫不完

Colored Edge

File Path/images/quickmmd/Test_QuickGV-colored-edge.svg
File Size116.67 KB
Last modified06:37:36
Time of SVG loading1.77 second(s)
Time of SVG convertion0.00 second(s)
Cache DetectedNo
MD5 of incoming syntax025a23753e43a4496b40921ec22e30ea
MD5 of cached syntax408505206076f708bfed45012d89f430
SVG EngineKroki API
Kroki API URLhttp://kroki:8000
Mermaid syntax Referencehttps://mermaid.js.org/intro/syntax-reference.html
QuickMMD Version1.0.0 - About QuickMMD
flowchart TD
  A1(["👩🏻‍💻 Human1"])
  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

Dish

File Path/images/quickmmd/Test_QuickGV-dish.svg
File Size24.54 KB
Last modified06:37:37
Time of SVG loading0.73 second(s)
Time of SVG convertion0.00 second(s)
Cache DetectedNo
MD5 of incoming syntaxbffa092b18db3c705015a242faf28bdd
MD5 of cached syntax1fa3bcb2c904abf84867a8d38efc4906
SVG EngineKroki API
Kroki API URLhttp://kroki:8000
Mermaid syntax Referencehttps://mermaid.js.org/intro/syntax-reference.html
QuickMMD Version1.0.0 - About QuickMMD
mindmap
  A[Dish2]
    B1[Sauce Dish]
    B2[Shark's Fin Soup Dish]
    B3[Divided Dish]
    B4[Cassesrole Dish]

MMD

File Path/images/quickmmd/Test_QuickGV-testmmd.svg
File Size27.08 KB
Last modified15:48:35
Time of SVG loading0.00 second(s)
Time of SVG convertion0.00 second(s)
Cache DetectedYes
SVG EngineKroki API
Kroki API URLhttp://kroki:8000
Mermaid syntax Referencehttps://mermaid.js.org/intro/syntax-reference.html
QuickMMD Version1.0.0 - About QuickMMD
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")

WebSocket Service

testflow

test

Crawling Flow

GDS

Geomancer

Sandbox