1 / 21
📝

Part 05 Unit 03

自訂模板

建立可重複使用的文件模板

統一風格、提升效率

2 / 21

學習目標

完成本單元後,你將學會:

  • 建立 Word 參考模板
  • 建立 HTML 模板
  • 使用 YAML 元資料
  • 組織和管理模板檔案
3 / 21

為什麼需要模板?

模板的優點

  • 🎨 統一文件風格
  • ⚡ 節省格式設定時間
  • 📋 確保品質一致
  • 🔄 方便團隊協作

💡 一次設定,永久使用!

4 / 21

Word 參考模板

什麼是參考文件 (Reference Doc)?

一個 .docx 檔案,定義了標題、段落、表格等樣式

Pandoc 會讀取參考文件的「樣式」

套用到輸出的 Word 文件

5 / 21

步驟 1:產生預設模板

使用 Pandoc 匯出預設參考文件

pandoc -o reference.docx --print-default-data-file reference.docx

💡 這會建立一個包含所有預設樣式的 Word 檔案

6 / 21

步驟 2:編輯模板樣式

在 Word 中修改樣式

  1. 用 Word 開啟 reference.docx
  2. 選取「標題 1」文字
  3. 右鍵 → 修改樣式
  4. 設定字體、顏色、大小
  5. 儲存檔案

⚠️ 只需修改樣式,不用改變內容文字!

7 / 21

常用樣式名稱

MarkdownWord 樣式名稱
# 標題Heading 1
## 標題Heading 2
### 標題Heading 3
一般段落Body Text / First Paragraph
程式碼Source Code
> 引用Block Text
表格Table
8 / 21

步驟 3:使用自訂模板

pandoc input.md -o output.docx --reference-doc=reference.docx

輸出的 Word 檔案會:

  • 套用 reference.docx 的標題樣式
  • 套用 reference.docx 的段落樣式
  • 套用 reference.docx 的字體設定
9 / 21

HTML 模板

匯出預設 HTML 模板

pandoc -o template.html --print-default-template=html5

💡 這會產生一個可自訂的 HTML 模板檔案

10 / 21

HTML 模板結構

<!DOCTYPE html> <html$if(lang)$ lang="$lang$"$endif$> <head> <meta charset="utf-8"> <title>$if(title)$$title$$endif$</title> $for(css)$ <link rel="stylesheet" href="$css$"> $endfor$ </head> <body> $if(toc)$ <nav id="TOC">$toc$</nav> $endif$ $body$ </body> </html>

💡 $variable$ 是 Pandoc 的變數語法

11 / 21

自訂 HTML 模板

<!-- my-template.html --> <!DOCTYPE html> <html lang="zh-Hant"> <head> <meta charset="UTF-8"> <title>$title$</title> <style> body { font-family: 'Microsoft JhengHei'; max-width: 800px; margin: 0 auto; padding: 40px; } h1 { color: #11998e; border-bottom: 3px solid #11998e; } </style> </head> <body> <header> <h1>$title$</h1> <p>作者:$author$ | 日期:$date$</p> </header> <main>$body$</main> <footer><p>© 2025 我的公司</p></footer> </body> </html>
12 / 21

使用自訂 HTML 模板

pandoc input.md -o output.html --template=my-template.html

搭配 YAML 元資料

--- title: 我的報告 author: 王小明 date: 2025-01-01 --- # 這是正文
13 / 21

YAML 元資料

在 Markdown 開頭加入 YAML 區塊

--- title: 專案報告 author: 張小美 date: 2025-01-15 keywords: [報告, 專案, 分析] abstract: | 這是摘要內容, 可以跨多行書寫。 ---

💡 YAML 區塊以 --- 開始和結束

14 / 21

常用 YAML 欄位

欄位說明
title文件標題
author作者
date日期
abstract摘要
keywords關鍵字
lang語言(zh-TW)
toc是否顯示目錄(true/false)
15 / 21

模板資料夾結構

📁 templates/ ├── 📁 word/ │ ├── 📄 report.docx │ ├── 📄 memo.docx │ └── 📄 letter.docx ├── 📁 html/ │ ├── 📄 blog.html │ └── 📄 docs.html └── 📁 css/ ├── 📄 style.css └── 📄 print.css

💡 建立專門的模板資料夾,方便管理和重複使用

16 / 21

模板轉換腳本

# template-convert.ps1 param( [string]$Input, [string]$Template = "report", [string]$Format = "docx" ) $templatePath = "D:\templates" $baseName = [IO.Path]::GetFileNameWithoutExtension($Input) switch ($Format) { "docx" { $ref = "$templatePath\word\$Template.docx" pandoc $Input -o "$baseName.docx" --reference-doc=$ref } "html" { $tpl = "$templatePath\html\$Template.html" $css = "$templatePath\css\style.css" pandoc $Input -o "$baseName.html" --template=$tpl --css=$css } } Write-Host "✅ 輸出: $baseName.$Format"
17 / 21

使用 AI 產生模板

讓 AI 幫你設計模板

請幫我建立一個 Pandoc HTML 模板,需求如下: - 使用繁體中文 - 現代簡潔風格 - 包含頁首(標題、作者、日期) - 包含側邊目錄 - 響應式設計,手機也能閱讀 - 程式碼區塊有語法高亮

💡 AI 可以快速產生符合需求的模板

18 / 21

動手練習

練習任務

  1. 建立 Word 參考模板(修改標題顏色)
  2. 建立一個包含 YAML 元資料的 Markdown
  3. 使用模板轉換成 Word
  4. 確認樣式已套用
19 / 21

練習答案

🔒 輸入密碼查看答案

# 1. 產生預設模板 pandoc -o reference.docx --print-default-data-file reference.docx # 2. 用 Word 開啟修改標題樣式(改成藍色) # 3. 建立 test.md --- title: 測試報告 author: 我的名字 date: 2025-01-01 --- # 這是標題 # 4. 轉換 pandoc test.md -o test.docx --reference-doc=reference.docx
20 / 21

模板參數速查

參數說明
--reference-doc=file.docxWord 參考模板
--template=file.htmlHTML/LaTeX 模板
--print-default-template=format匯出預設模板
--print-default-data-file=file匯出預設資料檔
--metadata key=value設定元資料
21 / 21

本單元總結

你學會了:

  • 建立和使用 Word 參考模板
  • 建立自訂 HTML 模板
  • 使用 YAML 元資料
  • 組織管理模板檔案

🎉 Part 05 完成!下一個:AI 輔助文件處理