最近覺得自己用 WordPress 架的部落格因為功能太多了,也不支持 Markdown,寫 blog 的成本變得挺高的,所以想要來建一個單純一點的地方放自己的筆記。一切精簡化,所以也不想煩惱域名之類,最後選了沒有用過的 Hugo 架在 GitHub 上。

使用 hugo 建立部落格

需求

  1. brew
  2. Git

安裝 hugo

  1. 安裝

    1
    
    brew install hugo
    
  2. 確認安裝狀況

    1
    
    hugo version
    

    印出版本代表有安裝成功

    1
    
    Hugo Static Site Generator v0.80.0/extended darwin/amd64 BuildDate: unknown
    
  3. 用 hugo 生成 blog

    1
    
    hugo new site {blog name}
    

    這時候用 ls 可以發現有一個你的 blog name 的資料夾, cd 到裡面看大概有這些東西,你現在在的這個資料夾就是 blog 的根目錄

    1
    2
    3
    4
    5
    6
    7
    
    drwxr-xr-x  3 username  staff  96 Jan 24 15:01 archetypes
    -rw-r--r--  1 username  staff  82 Jan 24 15:01 config.toml
    drwxr-xr-x  2 username  staff  64 Jan 24 15:01 content
    drwxr-xr-x  2 username  staff  64 Jan 24 15:01 data
    drwxr-xr-x  2 username  staff  64 Jan 24 15:01 layouts
    drwxr-xr-x  2 username  staff  64 Jan 24 15:01 static
    drwxr-xr-x  2 username  staff  64 Jan 24 15:01 themes
    
  4. 下載主題

    hugo themes 選一個主題。 跟著該主題在 download 裡的教學下載。這裡以我選的主題 meme 為例。

    1
    2
    3
    
    ~ $ cd blog  // 剛剛 hugo 幫你用 blog name 創建的資料夾
    ~/blog $ git init
    ~/blog $ git submodule add --depth 1 https://github.com/reuixiy/hugo-theme-meme.git themes/meme
    

    下載完成後可以 cd themes/ 去確認你有下載完成。

  5. 設置主題

    提示: 每一個主題的設置部分可能會有不同,請參考 GitHub 上面的教學。 meme 提供簡單的配置檔,可以直接拿這個檔案取代掉原本的 toml 檔案。

    1
    
    ~/blog $ rm config.toml && cp themes/meme/config-examples/zh-cn/config.toml config.toml
    

    如果有進行其他設定,或者不想直接用這個檔案,可以手動修改主題欄位。

開始寫文章

  1. 建立文章
    1
    
    ~/blog $ hugo new "posts/hello-world.md"
    

    這時 hugo 會在 blog/content/ 底下創建 posts/hello-world.md,想確認的話可以自己 cd 進去用 ls 確認。 然後我會用 VScode 打開檔案寫文章。 寫完之後存擋就可以了

  2. 預覽自己寫好的文章
    1
    
    ~/blog $ hugo server
    

    這個指令會跑一個在本地的 server,可以方便我們預覽文章。 如果你的檔案還是草稿,但你想要預覽,可以在後面加上 flag -D 來檢視還是草稿的文章。

部署到 GitHub

  1. 到你自己的 GitHub 上去,點開 Create a new repository,Repository name 一定要寫全小寫的自己 GitHub 名字+github.io 這個我沒有深究原因,大概是因為網址地址會長這樣所以直接這樣命名吧。如果有人知道詳細原因可以再留言和我說。

  2. Build

    1
    
    hugo --baseUrl="https://keronscribe.github.io/"
    

    這個指令會在根目錄下生成一個 public 資料夾,裡面是把 content 得東西轉成 html 的檔案。這就是我們要推上 GitHub 的東西們。

  3. git init 本地 public 資料夾 到 /public/ 裡,init 一個 git repo

    1
    2
    3
    
    git init
    git add .
    git commit -m "my 1st commit"
    
  4. 連到遠端

    1
    
    git remote add origin https://github.com/{github account}/{github repo}.git // 這一行在 GitHub 的初始 repo 裡應該也有
    

    推上去

    1
    
    git push -u origin master
    
  5. 完成。現在就可以透過你的 baseURL 連到你的 blog 了。 有時候 deploy 可能需要花一些些時間,另外有可能 GitHub page 也要打開。

Hugo 還有不少相關指令可以使用,有興趣的朋友可以自己上官方網站看。 感謝你的閱讀,希望大家架 Blog 順利。

※後記,我後續也有機會換主題樣式,不一定是繼續採用 MemE ,如果有需要,大家可以看頁腳取得目前的主題資訊。