報告與履歷
除了簡報,同一套工具也能寫 A4 文件。一份原始檔同時產出三樣東西:可以捲動閱讀的網頁、和列印結果一致的 A4 分頁檢視,以及 PDF。
npx slidehtml paper new q3-review # 報告
npx slidehtml paper new my-cv --resume # 履歷
npx slidehtml paper dev q3-review # 預覽
npx slidehtml paper check q3-review # 型別檢查、建置、QA、PDF,最後一行是 PASS 或 FAIL
npx slidehtml paper build q3-review # 輸出 dist/q3-review.html 和 dist/q3-review.pdf
檔案放在 src/papers/<name>/index.tsx。寫完要跑到 PASS,並逐頁看過 qa/<name>/page-NN.png。
報告
ReportDef.blocks 是由上到下的一列區塊,分頁自動完成。
| 區塊 | 用途 | 跨頁規則 |
|---|---|---|
Cover | 封面,獨占一頁 | 不跨頁 |
Toc | 目錄,頁碼自動填寫 | 不跨頁 |
H1 H2 | 自動編號的標題 | 不會單獨留在頁底 |
P | 內文,支援 **粗體**、`程式碼`、[^來源]、[文字](網址) | 在行之間分開,每邊至少兩行 |
List | 清單 | 在項目之間分開 |
Stats | 2–4 個關鍵數字,source 必填 | 不跨頁 |
Figure | 帶編號的圖,source 必填 | 不跨頁 |
Table | 帶編號的表,source 必填,閱讀檢視可排序 | 超過 12 列才跨頁,並重複表頭 |
Callout | 重點框 | 不跨頁 |
SlidePage | 把任意投影片範本放進一張橫向頁 | 獨占一頁 |
SourceList | 依 [^key] 首次出現的順序產生來源清單 | 在項目之間分開 |
PageBreak | 強制換頁 |
圖表:DocLine、DocBars、DocStack、DocArea。文字永遠是真實字級,手機上也看得清楚。
投影片範本是為投影設計的,縮進 A4 直向一欄會小到看不清,所以報告裡的圖用上面四種,大圖表才用 SlidePage。
引用寫成 [^key],在 sources 裡登記,文末用 <SourceList /> 列出。引用了沒登記的來源,QA 直接判 FAIL。
履歷
ResumeDef 只有資料,換 layout 和 theme 就換了樣子,內容不用動。
layout | 適合 |
|---|---|
classic | 單欄。最穩妥,投遞系統也最容易讀取 |
sidebar | 深色側欄放聯絡方式和技能 |
banner | 彩色頁首帶關鍵數字 |
ledger | 日期放在頁邊,大字級姓名,適合設計和內容職位 |
showcase | 識別證、關鍵數字趨勢、職涯軌跡和成果對比,適合產品和營運 |
console | 真實的終端機元件放在深色頁首,加指標儀表和技術熱力格,適合工程師 |
portfolio | 第二頁放真實簡報頁面的縮圖,適合設計和內容職位 |
這三種版式用了元件,額外的區塊類型是 track(職涯軌跡,從第一段工作經歷生成)、impact(前後對比)、heat(使用年份)、gauges(指標儀表)和 projects(專案卡片)。badge 和 terminal 寫在 ResumeDef 頂層,趨勢寫在 highlights[].trend。
每份這樣的履歷都能產生投遞版:在頁面頂部切換,或開啟時加 ?plain=1。同一份資料變成單欄文字,元件內容轉成清單,放不下的區塊自動移到第二頁。paper build 會同時輸出 dist/<name>-plain.pdf,線上投遞系統請用這個檔案。
規則:放不下就刪內容,或給區塊寫 page: 2 放到第二頁,最多兩頁,字級不會自動縮小。內容少時,段距會自動放寬。不要用技能百分比條。highlights 只寫面試時講得清楚的數字。note 用來標註範例,真實履歷不要寫。
QA 檢查什麼
文字是否超出紙張或內文區、標題是否落單、引用和圖表是否都有來源、最小字級不低於 8pt、PDF 頁數與分頁檢視一致、字型已嵌入、PDF 文字可擷取、履歷不超過兩頁、閱讀檢視在手機上不橫向捲動。
已知限制
- 目前只有 A4 一種紙張。
- Chrome 產生的 PDF 把這些字型嵌成 Type 3。文字可以選取和複製,列印也是向量,但個別 PDF 閱讀器在螢幕上可能略細。
sidebar、banner、showcase、console和portfolio是多欄版式,投遞系統擷取文字的順序可能和視覺順序不同。要過自動篩選時用classic或投遞版。