這個站在技術文章裡可以用的元件,全部列在這裡,也記下做不到的事1。 每一項都是實際渲染出來的,不是截圖 —— 圖可以點右上角放大,程式碼可以複製, 文字都選得起來。寫新文章時我自己也會回來翻這頁。
數學式 Link to heading
建置期就用 KaTeX 渲染完成,訪客端不需要 JavaScript,關掉 JS 也看得到。
不用在 front matter 寫 math = true。
行內用 \( \):雜湊碰撞的生日界大約在 次查詢,
所以 SHA-256 的碰撞抗性是 而不是 。
區塊用 $$ $$:
多行對齊:
矩陣與大型運算子:
為什麼行內不用
$ $開了之後「這台設備要價 $50000 到 $60000 台幣」裡的$50000 到 $會被當成一條行內數學式吃掉。價格在技術文章裡太常見,所以行內一律用\( \)。 行內程式碼與程式碼區塊裡的$不受影響。
圖表 Link to heading
主力是 D2(MPL-2.0)。跟 Mermaid 最大的差別是它在建置期產生 SVG, 所以訪客端零 JavaScript、沒有 CDN 依賴,關掉 JS 也看得到圖。 深色是 SVG 內建的,切換主題會跟著換。
流程圖 Link to heading
循序圖 Link to heading
類別圖 Link to heading
ER 圖 / 資料表 Link to heading
狀態機 Link to heading
D2 沒有專用的狀態機語法,用一般有向圖表達,效果一樣。
巢狀容器 / 網路架構 Link to heading
layout="elk" 換成另一個佈局引擎,階層深的圖會比較整齊。
網格佈局 Link to heading
形狀庫 Link to heading
樣式與強調 Link to heading
連線樣式 Link to heading
圖形內嵌 Markdown Link to heading
檢查順序
- 驗證來源 IP
- 比對簽章
- 檢查時間戳
手繪風 Link to heading
Mermaid(備援) Link to heading
D2 沒有的圖型才用 Mermaid。用到才會載入那 2.5 MB,其他頁面不受影響。
gantt
dateFormat YYYY-MM-DD
axisFormat %m/%d
title 研究時程
section 前期
文獻回顧 :done, a1, 2026-09-01, 30d
環境建置 :active, a2, 2026-09-20, 20d
section 實作
原型開發 : a3, after a2, 45d
實驗與量測 : a4, after a3, 30d
D2 做不到的 Link to heading
實測過的限制,寫下來免得下次再試一遍:
| 項目 | 狀況 | 怎麼辦 |
|---|---|---|
| 甘特圖 | 沒有這個語法,gantt 只會被當成節點名稱 | 用 Mermaid |
| 圓餅圖 / 長條圖 | 同上 | 用 Mermaid,或直接用表格 |
| mindmap | 同上 | 用一般樹狀圖近似 |
|latex 區塊 | 直接 panic,會讓建置失敗 | 數學式寫在圖外面 |
|go 等程式碼區塊 | 文字會超出方框 13–24px | 改用 |md 或放圖外 |
icon: 指向外部網址 | 網址會寫進 SVG,訪客瀏覽器會去抓 | 用本地檔案 |
程式碼 Link to heading
一般區塊 Link to heading
import hashlib, hmac
def verify(secret: bytes, payload: bytes, signature: str) -> bool:
"""用固定時間比較,避免以時間差推回簽章。"""
expected = hmac.new(secret, payload, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature)
行號與標記重點行 Link to heading
在 code fence 後面加 {linenos=true, hl_lines=[3-4]}:
| |
很長的行 Link to heading
超出版面時只有程式碼區塊自己橫向捲動,整頁不會跑版:
openstack server create --flavor m1.large --image ubuntu-24.04 --network lab-net --security-group default --key-name gamma4-lab-key --availability-zone nova my-instance
行內程式碼 Link to heading
設定在 config.toml 的 [markup.highlight],
noClasses 要是 false 配色才會由主題的 _syntax.scss 提供。
等寬字是自帶的 JetBrains Mono。
其他 Link to heading
| 元件 | 語法 | 渲染時機 |
|---|---|---|
| 數學式 | \( \) / $$ $$ | 建置期 |
| D2 圖表 | {{% d2 %}} | 建置期 |
| Mermaid | {{% mermaid %}} | 瀏覽器端 |
| 程式碼 | code fence | 建置期 |
引言:
不被觀測的東西,會安靜地不見。
註腳會自動收到文章最後面。引用點刻意放在文章開頭 —— 來源與註腳離得近的話,點下去畫面幾乎不動,看不出到底跳了沒。 跳到之後那一條會短暫亮起,回去的箭頭也一樣。 ↩︎