CONTRIBUTE

開發

介紹

您可以通過以下方式參與 Hugo 項目:

  • 在 [論壇] 回答問題
  • 改進 [文檔]
  • 監控 [問題排程]
  • 創建或改進 [主題]
  • 修復 [錯誤]

請將文檔問題和拉取請求提交至 [文檔儲存庫]。

如果您有增強或新功能的想法,請在 [論壇] 的「功能」類別創建一個新話題。這將幫助您:

  • 確定該功能是否已經存在
  • 測量興趣
  • 精煉概念

如果有足夠的興趣,請 [創建提案]。在專案負責人接受提案之前,請勿提交拉取請求。

欲了解完整的貢獻指南,請參見 [貢獻指南]。

前置條件

為了從原始碼構建擴展版或擴展/部署版,您必須:

  1. 安裝 Git
  2. 安裝 Go 版本 1.23.0 或更高版本
  3. 安裝 C 編譯器,可以是 GCCClang
  4. 更新您的 PATH 環境變數,如 [Go 文檔] 中所述

GitHub 工作流程

使用此工作流程來創建和提交拉取請求。

步驟 1
Fork [專案儲存庫]。
步驟 2
克隆您的 fork。
步驟 3
創建一個具有描述性的分支名稱,並包括對應的問題號碼。

對於新功能:

git checkout -b feat/implement-some-feature-99999

對於錯誤修復:

git checkout -b fix/fix-some-bug-99999
步驟 4
進行更改。
步驟 5
編譯和安裝。

要編譯和安裝標準版:

go install

要編譯和安裝擴展版:

CGO_ENABLED=1 go install -tags extended

要編譯和安裝擴展/部署版:

CGO_ENABLED=1 go install -tags extended,withdeploy
步驟 6
測試您的更改:
go test ./...
步驟 7
提交您的更改,並寫上描述性提交訊息:
  • 在第一行提供摘要,通常 50 個字元或更少,之後是空行。
  • 可選地,提供詳細描述,每行不超過 80 字元,並且以空行結尾。
  • 在每個參考解決的 [問題] 的行中添加一個或多個 “Fixes” 或 “Closes” 關鍵字。

例如:

git commit -m "tpl/strings: Create wrap function

The strings.Wrap function wraps a string into one or more lines,
splitting the string after the given number of characters, but not
splitting in the middle of a word.

Fixes #99998
Closes #99999"

請參見 [提交訊息指南] 以獲取詳細資訊。

步驟 8
將新分支推送到您自己的文檔儲存庫 fork。
步驟 9
訪問 [專案儲存庫] 並創建拉取請求 (PR)。
步驟 10
專案維護者將審查您的 PR,並可能要求進行更改。合併您的 PR 後,您可以刪除分支。

從原始碼構建

您可以在 Hugo 開發的任何階段構建、安裝並測試 Hugo。以下範例構建並安裝 Hugo 的擴展版本。

要構建並安裝最新版本:

CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@latest

要構建並安裝特定版本:

CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@v0.137.1

要構建並安裝 master 分支上的最新提交:

CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@master

要構建並安裝特定的提交:

CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@0851c17