HUGO
Menu
GitHub 87548 stars Mastodon

基本用法

使用命令行界面(CLI)執行基本任務。

測試安裝

安裝 Hugo 後,通過運行以下命令測試您的安裝:

hugo version

您應該看到類似這樣的輸出:

hugo v0.155.3-8a858213b73907e823e2be2b5640a0ce4c04d295+extended linux/amd64 BuildDate=2026-02-08T16:40:42Z VendorInfo=gohugoio

顯示可用命令

查看可用命令和標志的列表:

hugo help

要獲取子命令的幫助,使用 --help 標志。例如:

hugo server --help

構建站點

要構建站點,進入項目目錄並運行:

hugo

hugo 命令構建您的站點,將文件發布到 public 目錄。要將站點發布到不同的目錄,使用 --destination 標志或在站點配置中設置 publishDir

Hugo 在構建站點之前不會清除 public 目錄。現有文件會被覆蓋,但不會被刪除。這種行為是有意為之,以防止意外刪除您在構建後可能添加到 public 目錄的文件。

根據您的需求,您可能希望在每次構建之前手動清除 public 目錄的內容。

草稿、未來和過期內容

Hugo 允許您在內容的 front matter 中設置 draftdatepublishDateexpiryDate。默認情況下,Hugo 在以下情況下不會發布內容:

  • draft 值為 true
  • date 在未來
  • publishDate 在未來
  • expiryDate 在過去

Hugo 會發布草稿、未來和過期 節點 頁面的子頁面。要防止發布這些子頁面,使用 cascade front matter 字段將 構建選項 級聯到子頁面。

運行 hugohugo server 時,可以使用命令行標志覆蓋默認行為:

hugo --buildDrafts    # 或 -D
hugo --buildExpired   # 或 -E
hugo --buildFuture    # 或 -F

雖然您也可以在站點配置中設置這些值,但除非所有內容作者都了解並理解這些設置,否則可能會導致不需要的結果。

如上所述,Hugo 在構建站點之前不會清除 public 目錄。根據上述四個條件的 當前 評估,在構建之後,您的 public 目錄可能包含來自以前構建的多余文件。

常見的做法是在每次構建之前手動清除 public 目錄的內容,以刪除草稿、過期和未來內容。

開發和測試站點

在開發布局或創建內容時查看您的站點,進入項目目錄並運行:

hugo server

hugo server 命令構建您的站點並使用最小化的 HTTP 服務器提供頁面。運行 hugo server 時,它將顯示您本地站點的 URL:

Web Server is available at http://localhost:1313/

服務器運行時,它會監視項目目錄中資產、配置、內容、數據、布局、翻譯和靜態文件的變化。當檢測到變化時,服務器會重新構建站點並使用 LiveReload 刷新瀏覽器。

大多數 Hugo 構建速度非常快,除非您直接看著瀏覽器,否則可能注意不到變化。

LiveReload

服務器運行時,Hugo 將 JavaScript 注入到生成的 HTML 頁面中。LiveReload 腳本通過 WebSocket 在瀏覽器和服務器之間創建連接。您不需要安裝任何軟件或瀏覽器插件,也不需要任何配置。

自動重定向

在編輯內容時,如果您希望瀏覽器自動重定向到最後修改的頁面,運行:

hugo server --navigateToChanged

部署站點

如上所述,Hugo 在構建站點之前不會清除 public 目錄。在每次構建之前手動清除 public 目錄的內容,以刪除草稿、過期和未來內容。

當您准備部署站點時,運行:

hugo

這將構建您的站點,將文件發布到 public 目錄。目錄結構看起來像這樣:

public/
├── categories/
│   ├── index.html
│   └── index.xml  <-- 此分類的 RSS 源
├── posts/
│   ├── my-first-post/
│   │   └── index.html
│   ├── index.html
│   └── index.xml  <-- 此分類的 RSS 源
├── tags/
│   ├── index.html
│   └── index.xml  <-- 此標簽的 RSS 源
├── index.html
├── index.xml      <-- 站點的 RSS 源
└── sitemap.xml

在簡單的托管環境中,您通常通過 ftprsyncscp 將文件復制到虛擬主機的根目錄,public 目錄的內容就是您需要的所有文件。

我們的大多數用戶將站點部署到 CI/CD 平台,推送到遠程 Git 倉庫會觸發構建和部署。在 托管和部署 部分了解更多信息。


Last updated: January 1, 0001
Improve this page