跳至主要內容
Astro Modular Component Reference

Astro Modular 內文元件參考手冊

4 分

這份手冊是 Agentic Blog 所有內文元件的完整參考,涵蓋從 Callout 方塊到 Mermaid 圖表的 25+ 個模組。無論是人工撰稿還是 AI agent 自動生成,都應以此作為排版指南。

同場加映:Obsidian 整合功能展示 示範 Obsidian 原生語法如何對應到網站渲染效果,兩篇搭配閱讀效果最佳。


1. Callout 方塊(13 種)

Callout 以 >[!type] 語法開頭,是最常用的強調元件。以下展示全部 13 種類型:

Note — 補充說明

適合放入背景知識或補充資訊,不緊急但值得一讀。

Tip — 實用技巧

分享可以提升效率的小技巧或捷徑。

Important — 重要事項

必須注意的核心要點,比 note 更高一階。

Warning — 注意

操作前需要留意的風險或副作用。

Caution — 謹慎

比 warning 更強調謹慎行事,尚未到危險程度。

Danger — 危險

嚴重錯誤、資料遺失、不可逆操作時使用。

Info — 資訊

中性的背景說明,無情緒傾向。

Question — 問題

引發思考的問句,或待釐清的疑點。

Success — 成功

操作成功、驗證通過、目標達成時使用。

Failure — 失敗

已知的失敗案例或錯誤示範。

Bug — 已知問題

記錄已知的 bug 或待修復項目。

Example — 範例

提供具體可操作的範例或示範。

Quote — 引用

引用他人觀點或外部資源。

可折疊 Callout

在 type 後加 +(預設展開)或 -(預設折疊):

寫文章時至少使用 3 個不同的內文模組

單一格式會讓文章顯得單調。混用 Callout、表格、程式碼區塊,不只讓讀者保持注意力,也讓資訊結構更清晰。建議每篇 1500 字以上的文章至少出現 3 種不同元件。

折疊示範(點擊展開)

2. 表格

基本比較表

工具用途免費額度
Claude Code程式碼生成、架構設計Pro 訂閱
Gemini CLI研究查詢、批次草稿1000 req/day
Codex CLI程式碼審查、第二意見Plus 訂閱

對齊示範(左、置中、右)

名稱類型費用(USD/月)
Claude HaikuAPI$1 / MTok
Claude SonnetAPI$3 / MTok
Claude OpusAPI$15 / MTok

實際範例:Claude 功能比較

功能ArtifactsProjectsSkills
定義對話中生成的獨立內容物件持久化的對話工作空間可複用的行為指令模組
範圍單次對話跨對話持久全域(所有對話)
典型用途生成程式碼、文件草稿長期專案協作客製化 agent 行為
EGS 分類ToolToolSkill
儲存位置瀏覽器暫存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)

行內公式 — 閱讀時間估算

文章的預估閱讀時間為 t=w/200t = \lceil w / 200 \rceil 分鐘,其中 ww 是文章總字數,200 是平均閱讀速度(中文每分鐘約 200 字)。

區塊公式 — 樣本標準差

計算一組文章長度的離散程度:

s=1n1i=1n(xixˉ)2s = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2}

其中 xix_i 是每篇文章的字數,xˉ\bar{x} 是平均字數,nn 是文章總數。標準差越大,表示文章長度差異越懸殊。


Wikilinks 用雙方括號語法建立站內連結,Astro Modular 會自動解析並生成正確的 URL:

Wikilink 解析規則

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. 清單類型

有序清單 — 部署步驟

  1. 確認 npm run build 無錯誤
  2. 執行 wrangler pages deploy dist/ 上傳產出物
  3. 在 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. 引用

Quote

— 改寫自 Markdown 生態系的設計哲學

Obsidian + Astro 的組合正是這個哲學的實踐:作者在熟悉的 Vault 環境裡寫作,系統在背後處理所有技術細節。


圖片生成來源

Agentic Blog 的封面圖由generate-cover.py 從素材庫自動合成。素材庫位於 public/images/,腳本根據文章 frontmatter 的 tagscategory 選取對應素材疊加文字。

當文章中有 2 至 6 張連續圖片時,Astro Modular 會自動將其渲染為 Gallery 格式:

  • 2 張:並排兩欄
  • 3 張:三欄或 2+1 配置
  • 4–6 張:網格排列

超過 6 張連續圖片會恢復為單張行內顯示。在圖片之間插入任何非圖片內容(如文字或空行),即可打斷 gallery 偵測。


11. 嵌入類型

Astro Modular 支援以下外部資源嵌入:

類型語法說明
YouTube![](https://youtu.be/VIDEO_ID)自動轉為 iframe embed
Twitter/X![](https://twitter.com/user/status/ID)顯示推文卡片
影片(本地)![描述](video.mp4)HTML5 video player
音訊(本地)![描述](audio.mp3)HTML5 audio player
PDF![描述](document.pdf)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 更新這份手冊。