次世代 Hugo

無駄を削ぎ、本質を研ぐ

建立 Hugo 編譯 Bash Script

Sam Xiao's Avatar 2025-06-27

Hugo 有一些參數特別適合 編譯 時使用,但由於參數太多,可將其統一寫在 Bash Script 內,再由 NPM Script 呼叫。

Version

Hugo 0.147

Build Script

dev.sh

#!/bin/bash

echo "🏗️ Building Hugo site..."
hugo \
  --cleanDestinationDir \
  --minify

將 markdown 編譯成 HTML/CSS/JavaScript:

  • cleanDestinationDir:在 編譯 前先刪除 public 目錄
  • minify:在 編譯 時將 HTML/CSS/JavaScript 加以壓縮
$ chmod +x build.sh
  • chmod +x:設定 build.sh 有可執行權限

NPM Script

{
  "name": "hugo-theme",
  "version": "1.0.0",
  "license": "MIT",
  "scripts": {
    "dev": "./dev.sh",
    "build": "./build.sh"
  },
  "devDependencies": {
    "prettier": "^3.5.3",
    "prettier-plugin-go-template": "^0.0.15"
  }
}

Line 5

"scripts": {
  "dev": "./dev.sh",
  "build": "./build.sh"
},
  • dev:開發時執行 dev.sh
  • build:編譯時執行 build.sh

Conclusion

  • 傳統會將 Hugo 參數直接寫在 NPM Script 內,但由於 Hugo 參數太多,建議先寫在 Bash Script 內,再由 NPM Script 呼叫