· 3 min read draft
怎麼在這個站發文(給我自己看的)
新增一篇文章的完整流程、frontmatter 欄位說明,以及所有可用的 Markdown 語法示範:程式碼、數學式、表格、註腳。
這篇是操作手冊,draft: true 所以不會出現在文章列表和 RSS,但用網址還是打得開。
發一篇新文章
cd ~/website
# 1. 建檔(檔名就是網址:/blog/my-post-slug)
vim src/content/blog/my-post-slug.md
# 2. 發布
./publish.sh
publish.sh 會 build 然後同步到 nginx 的目錄,大概十幾秒。
想邊寫邊看:
cd ~/website && npm run dev
# 開 http://127.0.0.1:4321 (或從外面連 http://192.168.31.87:4321)
Frontmatter 欄位
每篇開頭這一段是必要的:
---
title: '標題' # 必填
description: '一到兩句話的摘要' # 必填,會出現在列表、SEO、RSS
pubDate: 2026-08-28 # 必填
updatedDate: 2026-09-01 # 選填,有改過再加
tags: ['zh-tw', 'tokenizer'] # 選填,會自動產生 /tags/xxx 頁
lang: 'zh-Hant' # 選填,預設 zh-Hant,英文文章寫 'en'
draft: true # 選填,true = 不進列表 / RSS / 搜尋引擎
featured: true # 選填,保留欄位
---
欄位打錯或少填,build 會直接失敗並告訴你哪一篇哪一行——這是故意的,比默默發出壞掉的頁面好。
程式碼
三個反引號加語言名稱,會自動上色(淺色深色主題都有處理):
from transformers import AutoTokenizer
tok = AutoTokenizer.from_pretrained("lianghsun/tw-tokenizer-v1")
ids = tok("行政院農業委員會今日公告").input_ids
print(len(ids))
行內程式碼用單個反引號:per_device_train_batch_size=4。
數學式
行內用 $...$:模型的 loss 是 。
獨立一行用 $$...$$:
表格
| Model | TMMLU+ | tw-legal | 壓縮率 |
|---|---|---|---|
| baseline | 41.2 | 33.8 | 1.00× |
| + CPT | 44.7 | 39.1 | 1.00× |
| + 新 tokenizer | 44.5 | 39.6 | 1.46× |
表格太寬會自己變成可橫向捲動,不會撐破版面。
引用與重點
分數看起來漂亮的時候,先去看 per-question 的 jsonl,再決定要不要相信它。
粗體、斜體、刪除線、連結 都照 Markdown 標準走。
圖片
圖放 public/img/,文章裡用絕對路徑引用:

圖片會自動加圓角和邊框。
標題與目錄
## 和 ### 會自動進右邊的目錄(超過兩個標題才顯示),捲動時會跟著高亮。# 不要用——文章標題已經是 h1 了。
改設計或內容
| 想改什麼 | 檔案 |
|---|---|
| 顏色、字體、間距 | src/styles/global.css(最上面的 tokens) |
| 名字、簡介、社群連結 | src/data/site.ts |
| Work 頁面的模型 / 資料集 / 專案 | src/data/work.ts |
| About 頁面內文 | src/pages/about.astro |
| 首頁排版 | src/pages/index.astro |
改完一樣跑 ./publish.sh。