快速找出並解決 Pandoc 轉換問題
記住:每個錯誤都是學習的機會!解決過一次,下次就知道怎麼處理了。
找不到檔案、路徑錯誤、權限問題
YAML 語法錯誤、Markdown 格式問題
檔案編碼不正確、亂碼問題
缺少依賴、格式不支援
1. 確認檔案名稱拼寫正確
2. 使用完整路徑(如 D:\docs\input.md)
3. 用 dir 或 ls 確認檔案存在
--- 缺少或不完整---
title: 文件標題
author: 作者名
date: 2024-01-01
---
---
title:文件標題 # 冒號後沒空格
author: "作者"名 # 引號沒配對
date: 2024 # 縮排錯誤
-- # 結尾少一個 -
---
title: 文件標題
author: "作者名"
date: 2024
---
檔案不是 UTF-8 編碼(可能是 Big5、GB2312 等)
1. 用記事本開啟檔案
2. 選擇「另存新檔」
3. 編碼選擇「UTF-8」
4. 儲存後重新轉換
# 將檔案轉換為 UTF-8 編碼
$content = Get-Content "old-file.md" -Encoding Default
$content | Out-File "new-file.md" -Encoding UTF8
# 批次轉換整個資料夾
Get-ChildItem *.md | ForEach-Object {
$content = Get-Content $_.FullName -Encoding Default
$content | Out-File $_.FullName -Encoding UTF8
Write-Host "已轉換: $($_.Name)"
}
小技巧:養成習慣,建立新檔案時就使用 UTF-8 編碼!
確保圖片和 Markdown 的相對位置正確
project/
├── document.md
└── images/
└── photo.png
# 在 document.md 中使用:

系統沒有安裝 LaTeX(Pandoc 轉 PDF 需要)
1閱讀錯誤訊息 - 找出關鍵字
2確認輸入 - 檔案存在?路徑對?
3簡化測試 - 用最簡單的指令測試
4逐步增加 - 一次加一個選項
5尋求幫助 - 請 AI 分析錯誤
pandoc --version)# 顯示詳細的轉換過程
pandoc input.md -o output.docx --verbose
遇到問題時,先加上 --verbose 再執行一次!
# test.md
Hello World
pandoc test.md -o test.html
如果簡單的成功,再慢慢加入 YAML、圖片、選項等
請幫我建立一個 Pandoc 診斷腳本,
可以檢查:
1. Pandoc 是否安裝
2. 輸入檔案是否存在
3. 檔案編碼是否正確
4. YAML 標頭是否有效
5. 執行測試轉換
# diagnose.ps1
param([string]$File)
Write-Host "=== Pandoc 診斷 ===" -ForegroundColor Cyan
# 1. 檢查 Pandoc
Write-Host "`n[1] Pandoc 安裝:" -NoNewline
try {
$v = pandoc --version | Select-Object -First 1
Write-Host " OK ($v)" -ForegroundColor Green
} catch {
Write-Host " 未安裝!" -ForegroundColor Red
exit
}
# 2. 檢查檔案
Write-Host "[2] 檔案存在:" -NoNewline
if (Test-Path $File) {
Write-Host " OK" -ForegroundColor Green
} else {
Write-Host " 找不到檔案!" -ForegroundColor Red
exit
}
# 3. 測試轉換
Write-Host "[3] 測試轉換:" -NoNewline
try {
pandoc $File -o "$env:TEMP\test.html"
Write-Host " OK" -ForegroundColor Green
} catch {
Write-Host " 失敗" -ForegroundColor Red
Write-Host " 錯誤: $_"
}
| 錯誤關鍵字 | 快速解法 |
|---|---|
| does not exist | 檢查檔案路徑 |
| YAML header | 檢查 --- 標記和縮排 |
| byte sequence | 轉換為 UTF-8 編碼 |
| image | 確認圖片路徑和檔案 |
| pdflatex | 安裝 LaTeX 或改用其他格式 |
| permission | 檢查檔案/資料夾權限 |
1建立一個有 YAML 錯誤的 Markdown 檔
2嘗試轉換,觀察錯誤訊息
3使用 --verbose 查看詳細資訊
4修正錯誤,成功轉換
看到「Could not parse YAML header」錯誤,最可能的原因是?
下一步:在 Unit 02 學習環境設定問題的解決方法