# 使用 Hugo 在 Github Pages 建立靜態網站 ## Hugo 簡介 Hugo 是使用Go語言編寫的靜態網頁生成器,基於Go語言開發,沒有像HTML5錯綜複雜的依賴關係。除此之外,還擁有活躍的社群提供多樣主題與完善的功能給使用者,支援多種類的前端語言,整體架構也靈活易懂,最大優點是編譯速度極快,建立網站時間平均不到1秒種,使用者修改時能即時預覽。 #### Hugo 安裝 * MacOS & Linux MacOS使用者可使用Homebrew安裝 ```shell brew install hugo ``` * Window Window使用者須視使用者環境下載適用的版本 https://github.com/gohugoio/hugo/releases 或者透過`chocolatey`安裝 ```shell choco install hugo -confirm ``` 安裝好後再去設定環境變數,例如: `C:\hugo`,記得將`hugo.exe`放進此路徑資料夾中 #### Hugo 指令測試 安裝好後透過CMD輸入`hugo version`可查看版本 ```shell hugo v0.81.0-59D15C97 linux/amd64 BuildDate=2021-02-19T17:07:12Z VendorInfo=gohugoio ``` ## 建立 Project 透過CMD輸入 ```shell hugo new site mysite ``` 則會在此路徑下建立`mysite`的資料夾,`mysite`可換任意名稱 資料夾結構如下: ```shell mysite/ │ ├── archetypes/ │ │ │ └─ default.md # 預設 markdown ├── content/ # 頁面、文章(markdown) ├── data/ # 資料庫 ├── layouts/ # 自定義的樣板 ├── static/ # 靜態資源 ├── themes/ # 網站的主題 └── config.toml # 網站的配置 ``` #### 加入Hugo主題 Hugo預設是沒有任何主題,因此需到 https://themes.gohugo.io/ 下載喜歡的主題,我是使用 [Erblog](https://github.com/ertuil/erblog) 記得需要先用git對初始化 ```shell git init ``` 接著將主題下載到`mysite/theme/`資料夾下,最後只需要將`mysite/theme/`中的`config.toml`取代`mysite/`中的就可以了,詳細使用`config.toml`須看者主題下方的說明! #### 新增頁面 透過以下指令可以建立基本頁面 ```shell hugo new post/hello-hugo.md ``` 此指令會在`mysite/content/`中建立`post`資料夾,並建立`hello-hugo.md`,可以透過`Markdown`語法來撰寫頁面 #### 本地端測試 預覽草稿 ```shell hugo server -D ``` 預覽無草稿 ```shell hugo server ``` 預覽路徑 `http://localhost:1313/` #### 發佈到Github Pages上 需要有安裝`git`、`Github帳號` 首先建立兩個repository 一個任意名字,另一個為 :`帳號名稱.github.io` 設定`config.toml`中的baseURL為`http://帳號.github.io/` 透過輸入 ```shell hugo ``` 建立`public`資料夾,並將`mysite`發佈到任意名字的repository,將`public`資料夾中的發佈到`帳號名稱.github.io` 發布流程 ```shell git init git add . git commit -m "mysite" git push origin master cd public git init git remote add origin https://github.com/帳號/帳號.github.io.git git add . git commit -m "mysite" git push origin master ``` 發布完後,在網址列輸入`http://帳號.github.io`即可看到自己架設的靜態網頁
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.