開發
介紹
您可以通過以下方式參與 Hugo 項目:
- 在 [論壇] 回答問題
- 改進 [文檔]
- 監控 [問題排程]
- 創建或改進 [主題]
- 修復 [錯誤]
請將文檔問題和拉取請求提交至 [文檔儲存庫]。
如果您有增強或新功能的想法,請在 [論壇] 的「功能」類別創建一個新話題。這將幫助您:
- 確定該功能是否已經存在
- 測量興趣
- 精煉概念
如果有足夠的興趣,請 [創建提案]。在專案負責人接受提案之前,請勿提交拉取請求。
欲了解完整的貢獻指南,請參見 [貢獻指南]。
前置條件
為了從原始碼構建擴展版或擴展/部署版,您必須:
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