CONTENT MANAGEMENT

Diagrams

GoAT 圖表 (ASCII)

Hugo 原生支援 GoAT 圖表,並使用 嵌入式程式碼區塊渲染掛鉤。這意味著這段程式碼:

```goat
      .               .                .               .--- 1          .-- 1     / 1
     / \              |                |           .---+            .-+         +
    /   \         .---+---.         .--+--.        |   '--- 2      |   '-- 2   / \ 2
   +     +        |       |        |       |    ---+            ---+          +
  / \   / \     .-+-.   .-+-.     .+.     .+.      |   .--- 3      |   .-- 3   \ / 3
 /   \ /   \    |   |   |   |    |   |   |   |     '---+            '-+         +
 1   2 3   4    1   2   3   4    1   2   3   4         '--- 4          '-- 4     \ 4

```

將會被渲染為:

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

Mermaid 圖表

Hugo 沒有內建的 Mermaid 圖表模板。您可以使用 程式碼區塊渲染掛鉤 來創建自己的模板:

layouts/_default/_markup/render-codeblock-mermaid.html
  
<pre class="mermaid">
  {{- .Inner | htmlEscape | safeHTML }}
</pre>  
{{ .Page.Store.Set "hasMermaid" true }}  

然後在內容模板的底部加入此片段:

{{ if .Store.Get "hasMermaid" }}
  <script type="module">
    import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';
    mermaid.initialize({ startOnLoad: true });
  </script>
{{ end }}

這樣您就可以在 Markdown 程式碼區塊中使用 mermaid 語言:

sequenceDiagram
    participant Alice
    participant Bob
    Alice->>John: Hello John, how are you?
    loop Healthcheck
        John->>John: Fight against hypochondria
    end
    Note right of John: Rational thoughts 
prevail! John-->>Alice: Great! John->>Bob: How about you? Bob-->>John: Jolly good!

Goat ASCII 圖表範例

圖形

1 5 0 4 2 6 3 7 + z + y + x v 1 v P 0 X v 3 E y v e 2 R e f r a c t i o n R e f l e c t i o n

複雜

& A M S i o i q f b B x u j o e a ( - x d r a > e f R > c o C n u o b ( n r ) ) d n e e J d r o s i n N o R D t o i u a a n g d d l o i t n e D i a g o n a l s C V u e r r v t e i d c a l n o t A N C : o u l d r r i A a / I v n s i n e e h s t d - e - t r l B i h i i s i o n ' s r e q n . u * o o b t t o e l a s d ' * l i n e D o n S e e ? a r c 3 h

流程圖

O L _ D F _ K I _ B O _ O L _ A N _ U N _ O _ Y E _ T E _ Y W _ , _ S _ I O _ L _ Y _ U C _ Y A _ O L _ L H H _ O B _ U A _ I A U A _ _ U E _ _ B _ S T N R _ L _ S E _ T E D T _ n _ S E _ n _ E L _ n E E S _ o _ E D _ o _ E E _ o N Y R ? _ _ E _ _ D _ . O S _ _ ' _ _ T _ U T _ _ T Y _ _ H ' _ A _ _ H E _ _ E N _ N _ _ E S _ _ O _ D _ _ ' _ _ ' _ _ ? _ _ ? _ _ y _ e _ y _ y _ s _ e _ e _ _ s _ s _ _ _ _ W _ _ A _ _ I _ _ T _ _ , _ _ _ _ W _ _ H _ _ A _ _ T _ _ ? _ _ _ _ _ T _ _ H _ B F _ _ E _ U O _ _ _ T L _ _ A O _ L _ _ N N _ Y O _ _ D E _ O W _ _ S _ U E _ _ Y _ D _ _ O L _ _ J _ _ U A _ U T _ _ B _ n _ S H _ n _ C E _ o _ T E _ o ( A _ A L _ _ M _ T _ N E _ _ _ H Q S _ D _ _ T _ A U C _ S _ _ W _ T E R _ E ' _ _ I _ S E _ E N _ _ C _ W T W _ O _ _ E _ A I _ ' _ _ ? _ S O I _ ? _ N N T H I _ ' ) E N _ _ y T L Y S _ _ y _ e E , T _ _ e _ s T A _ _ s ' I L _ S L _ G S I _ O G H N _ O O O G _ D U _ D L F R D R G I E O N T E O G R B D Y S ! D !

表格

S P E T F I L Y R X E A D I N O P R C E T T D R M T N E A U E O T R X C S R I A T S F L I I I O O E N N R | | | | = = = = = = = L " " " { I T F I I [ ( { l " D E A D T " " " e " P E R C E E t " R N M T N R E E E t " O T O T A X X X e D I { R I L P P P r c U F F R R R h C I " { I E E E { a T E | E S S S r I R " F R S S S l a O A I I I e c N " T C O O O t t = E T N N N t e } " R O e r M R " " " r . E ] ) } { X } } " " " } P c R . . . . h E a S r S a I c O t N e r " . } " " . " " " .