Astro Modular 內文元件參考手冊
這份手冊是 Agentic Blog 所有內文元件的完整參考,涵蓋從 Callout 方塊到 Mermaid 圖表的 25+ 個模組。無論是人工撰稿還是 AI agent 自動生成,都應以此作為排版指南。
同場加映:Obsidian 整合功能展示 示範 Obsidian 原生語法如何對應到網站渲染效果,兩篇搭配閱讀效果最佳。
1. Callout 方塊(13 種)
Callout 以 >[!type] 語法開頭,是最常用的強調元件。以下展示全部 13 種類型:
適合放入背景知識或補充資訊,不緊急但值得一讀。
分享可以提升效率的小技巧或捷徑。
必須注意的核心要點,比 note 更高一階。
操作前需要留意的風險或副作用。
比 warning 更強調謹慎行事,尚未到危險程度。
嚴重錯誤、資料遺失、不可逆操作時使用。
中性的背景說明,無情緒傾向。
引發思考的問句,或待釐清的疑點。
操作成功、驗證通過、目標達成時使用。
已知的失敗案例或錯誤示範。
記錄已知的 bug 或待修復項目。
提供具體可操作的範例或示範。
引用他人觀點或外部資源。
可折疊 Callout
在 type 後加 +(預設展開)或 -(預設折疊):
單一格式會讓文章顯得單調。混用 Callout、表格、程式碼區塊,不只讓讀者保持注意力,也讓資訊結構更清晰。建議每篇 1500 字以上的文章至少出現 3 種不同元件。
2. 表格
基本比較表
| 工具 | 用途 | 免費額度 |
|---|---|---|
| Claude Code | 程式碼生成、架構設計 | Pro 訂閱 |
| Gemini CLI | 研究查詢、批次草稿 | 1000 req/day |
| Codex CLI | 程式碼審查、第二意見 | Plus 訂閱 |
對齊示範(左、置中、右)
| 名稱 | 類型 | 費用(USD/月) |
|---|---|---|
| Claude Haiku | API | $1 / MTok |
| Claude Sonnet | API | $3 / MTok |
| Claude Opus | API | $15 / MTok |
實際範例:Claude 功能比較
| 功能 | Artifacts | Projects | Skills |
|---|---|---|---|
| 定義 | 對話中生成的獨立內容物件 | 持久化的對話工作空間 | 可複用的行為指令模組 |
| 範圍 | 單次對話 | 跨對話持久 | 全域(所有對話) |
| 典型用途 | 生成程式碼、文件草稿 | 長期專案協作 | 客製化 agent 行為 |
| EGS 分類 | Tool | Tool | Skill |
| 儲存位置 | 瀏覽器暫存 | Claude 伺服器 | .claude/skills/ |
3. 程式碼區塊
Python — 讀取環境變數並呼叫 API
import os
import anthropic
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello, Claude"}]
)
print(message.content[0].text)
TypeScript — Astro Content Collection 型別定義
import { defineCollection, z } from "astro:content";
const posts = defineCollection({
type: "content",
schema: z.object({
title: z.string(),
description: z.string(),
date: z.date(),
tags: z.array(z.string()).default([]),
draft: z.boolean().default(false),
image: z.string().optional(),
category: z.string().optional(),
articleType: z.enum(["learning-note", "tutorial", "analysis"]).optional(),
}),
});
export const collections = { posts };
Bash — 部署前檢查
#!/bin/bash
# 部署前驗證:確認 build 成功且沒有 TypeScript 錯誤
set -e
echo "Running type check..."
npx astro check
echo "Building site..."
npm run build
echo "Checking output size..."
du -sh dist/
echo "Deploy ready ✓"
YAML — Astro 專案設定
# astro.config.mjs 對應的設定結構
site: "https://agentic.superportia.dev"
base: "/"
integrations:
- mdx
- sitemap
- tailwind
markdown:
remarkPlugins:
- remark-math
rehypePlugins:
- rehype-katex
- rehype-mermaid
4. Mermaid 圖表
Flowchart — Blog 發布流程
flowchart LR
A[Obsidian Vault] -->|git push| B[GitHub Repo]
B -->|CI trigger| C[Astro Build]
C -->|npm run build| D[dist/]
D -->|wrangler pages deploy| E[CF Pages]
E --> F((agentic.superportia.dev))
style A fill:#d97757,color:#fff
style F fill:#141413,color:#fff
Sequence Diagram — VaultCMS 工作流程
sequenceDiagram
participant A as Author
participant O as Obsidian
participant G as Git
participant CF as CF Pages
participant R as Reader
A->>O: 撰寫 Markdown 文章
O->>O: 即時預覽(本地)
A->>G: git commit + push
G->>CF: Webhook 觸發 Build
CF->>CF: Astro Build (2-3 min)
CF-->>A: Build 成功通知
R->>CF: 瀏覽文章
CF-->>R: 靜態 HTML 回應
5. 數學公式(KaTeX)
行內公式 — 閱讀時間估算
文章的預估閱讀時間為 分鐘,其中 是文章總字數,200 是平均閱讀速度(中文每分鐘約 200 字)。
區塊公式 — 樣本標準差
計算一組文章長度的離散程度:
其中 是每篇文章的字數, 是平均字數, 是文章總數。標準差越大,表示文章長度差異越懸殊。
6. Wikilinks 與 Tags
Wikilink 範例
Wikilinks 用雙方括號語法建立站內連結,Astro Modular 會自動解析並生成正確的 URL:
- Obsidian 整合功能展示 — Obsidian 功能的完整展示文章
- SuperPortia 專案全景 — SuperPortia 整體架構概覽
Astro Modular 的 wikilink 解析器會在src/content/ 下搜尋符合標題的檔案。若找不到對應頁面,會渲染成純文字而非超連結。
行內 Tag
在文章中提及相關標籤:#astro-modular #formatting #reference
Tags 連結到對應的 tag 彙整頁面,讓讀者發現同主題文章。
7. 行內格式
Markdown 支援多種行內格式,各有適用場景:
- 粗體(
**text**):強調關鍵詞或重要概念 - 斜體(
*text*):書名、術語首次出現、輕度強調 - 粗斜體(
***text***):極度強調,謹慎使用 刪除線(~~text~~):已棄用的做法或已修正的錯誤inline code(反引號):函數名、指令、檔案路徑- highlight(
==text==):掃描時需要注意的關鍵資訊
實際句子範例:
在終端機執行 npm run dev 啟動開發伺服器,預設監聽 localhost:4020。若遇到 port 衝突,在 astro.config.mjs 修改 server.port 設定——不要直接改 package.json 的 script,那樣只是繞過問題而不是解決問題。
8. 清單類型
有序清單 — 部署步驟
- 確認
npm run build無錯誤 - 執行
wrangler pages deploy dist/上傳產出物 - 在 CF Dashboard 驗證 deployment 狀態為 Success
無序清單(含巢狀)
- 前端框架
- Astro 5(靜態優先)
- Tailwind CSS 4(樣式)
- MDX(進階 Markdown)
- 部署平台
- Cloudflare Pages(主站)
- GitHub Actions(CI/CD)
- 內容工具
- Obsidian(寫作環境)
- git(版本控制)
任務清單
- 建立 Astro 專案基礎架構
- 設定 Obsidian wikilink 解析
- 完成 SuperPortia 主題色彩系統
- 上線 Blog 側邊欄(graph + search + categories)
- 實作 Email push 訂閱功能
- 建立 Daily Cycle 自動發文流程
- 串接 Drive SSoT 圖片來源
9. 引用
— 改寫自 Markdown 生態系的設計哲學
Obsidian + Astro 的組合正是這個哲學的實踐:作者在熟悉的 Vault 環境裡寫作,系統在背後處理所有技術細節。
10. 圖片與 Gallery
Agentic Blog 的封面圖由generate-cover.py 從素材庫自動合成。素材庫位於 public/images/,腳本根據文章 frontmatter 的 tags 和 category 選取對應素材疊加文字。
Gallery 自動偵測
當文章中有 2 至 6 張連續圖片時,Astro Modular 會自動將其渲染為 Gallery 格式:
- 2 張:並排兩欄
- 3 張:三欄或 2+1 配置
- 4–6 張:網格排列
超過 6 張連續圖片會恢復為單張行內顯示。在圖片之間插入任何非圖片內容(如文字或空行),即可打斷 gallery 偵測。
11. 嵌入類型
Astro Modular 支援以下外部資源嵌入:
| 類型 | 語法 | 說明 |
|---|---|---|
| YouTube |  | 自動轉為 iframe embed |
| Twitter/X |  | 顯示推文卡片 |
| 影片(本地) |  | HTML5 video player |
| 音訊(本地) |  | HTML5 audio player |
 | PDF viewer(桌機)或連結(手機) |
YouTube 和 Twitter 嵌入會增加頁面載入時間。如非必要,優先使用截圖 + 連結的方式,保持靜態頁面的速度優勢。
12. 元件選擇指南
不確定該用哪個元件?參考這張決策表:
| 你想要… | 用這個元件 |
|---|---|
| 強調重要資訊 | Callout (note / tip / warning) |
| 比較多個選項 | Table |
| 展示操作步驟 | Code block + Callout(tip) |
| 說明系統架構 | Mermaid flowchart |
| 展示時序互動 | Mermaid sequence |
| 列出待辦事項 | Task list |
| 標記關鍵詞 | Highlight |
| 引用他人觀點 | Blockquote |
| 連結站內文章 | Wikilink |
| 展示多張圖片 | 連續圖片(2-6 張 auto gallery) |
| 嵌入外部影片 | YouTube embed |
| 展示數學公式 | KaTeX(行內 $...$ 或區塊 $$...$$) |
每 500 字至少搭配一個視覺元件(表格、程式碼、圖表、callout)。純文字長段落不只閱讀疲勞,也讓掃描型讀者找不到錨點。
結語:模組統計
這篇文章本身就是一份完整展示。以下是 Agentic Blog 可用的內文模組總覽:
| 類別 | 模組數量 | 說明 |
|---|---|---|
| Callout 類型 | 13 種 | note / tip / important / warning / caution / danger / info / question / success / failure / bug / example / quote |
| Callout 行為 | 2 種 | 可折疊展開(+)/ 預設折疊(-) |
| 表格 | 3 種配置 | 基本 / 對齊控制 / 複雜資料 |
| 程式碼區塊 | 8+ 語言 | Python / TypeScript / Bash / YAML / JSON… |
| Mermaid 圖表 | 4+ 類型 | Flowchart / Sequence / Gantt / Class |
| KaTeX 公式 | 2 種 | 行內 $...$ / 區塊 $$...$$ |
| 圖片 Gallery | 自動偵測 | 2-6 張連續圖片觸發 |
| 嵌入類型 | 5 種 | Video / Audio / PDF / YouTube / Twitter |
| 清單類型 | 3 種 | 有序 / 無序(巢狀)/ 任務清單 |
| 行內格式 | 6 種 | 粗體 / 斜體 / 刪除線 / inline code / highlight / 組合 |
| Wikilinks | 站內連結 | 自動解析到對應頁面 |
| 總計 | 25+ 模組 |
書籤這篇文章,下次撰稿時直接跳到對應章節複製語法。如果發現新的元件或有更好的範例,歡迎提交 PR 更新這份手冊。