在 Mac 上使用 Hugo 運行個人網站
先安裝 Homebrew,再透過 Homebrew 安裝 hugo brew install hugo
。
|
|
下載 Stack 主題,解壓縮後:
- 在 exampleSite 裡新建資料夾 themes
- 將 exampleSite 資料夾拉出來放外層
- 去掉 master,將 hugo-theme-stack-master 改名為 hugo-theme-stack 放入 themes 中。
在終端機,於 exampleSite 資料夾路徑下輸入 hugo server
運行網站
出現 http://localhost:1313/ 時,表示個人網站已經成功運行起來,將這行網址貼到瀏覽器,就會發現 Stack 這個主題的個人網站,已經成功在電腦上執行。
[!note] 如果無法執行,可用無痕視窗開啟
Config 參數設定
Config 格式若為 toml
檔時,使用 VSCode 安裝 TOML 插件。
基本參數
修改 config.yaml 檔中的預設參數設定
- baseURL 網站網址
- paginate 分頁連結,每頁顯示文章數。
- title 網站標籤
在終端機上輸入 hugo server
將網站運行起來,可以看到標籤已經變成 Reno’s Blog。
permalinks
自訂每篇文章的網址:
在每篇文章裡加 slug
,會用自定義的 fish-shell
作為網址。
.yaml
中的設定
Site creation time 站點建立時間
social site
社交網站的連結設定
新增文章
|
|
會在 /content/post
資料夾中建立 fish-shell.md。
分類文章、為文章加上標籤
頭字段(Front Matter)
line1~13 是 hugo 的文章設定,新建立的文章最前面都需貼上 Fron Matter 設定。 Hugo Content - Front Matter
title: 文章標題 description: 負標題,這篇文章的簡短介紹。 date: 撰寫日期,Hugo 預設會把最新的文章放在最前面。 draft: 可以指定這篇文章是不是草稿,Hugo 不會把標註為草稿(true)的文章顯示在網站上。 image: 標題圖片 pinned = true: 文章置頂
line6~11: 可為文章進行分類(categories),以及加上標籤(tags)。
部署到 Github Pages
cd 到 Hugo 專案底下,執行 hugo
指令,打包 Hugo Site。
回到 Finder 上,會發現在 example Site 裡面多了一個 public 的資料夾,就是 Hugo 新產生出來的個人網站的程式碼。
複製 public 裡面全部的檔案跟資料夾放到==本地端== reiohuang.github.io
資料夾的 repository 裡,最後再把它上傳到遠端 Github 的 reiohuang.github.io
資料夾上。
git 初始化本地端 reiohuang.github.io
資料夾準備與遠端的 repository 綁定:
|
|
在 Github 中點擊 New repository,創建一個新的 repository。如果要使用 Github Pages 來架設個人網站,repository 的名字有命名規則,Github 帳號.github.io
。
若使用 token 連接遠端時,需切換到 HTTPS
Github 在 2021/08/13 時,做了一次安全性更新,將密碼認證移除了。所以當本地 push 到遠端時,出現了以下提示訊息,表示需要重新調整設定,以 token 取代密碼,設定方式請參照 [[GitHub 改版使用個人令牌(token)]]。
本地端的資料夾與遠端儲存庫綁定,並 push 資料到 GitHub 遠端,Password 請輸入申請的 token。
成功上傳到 GitHub
開啟瀏覽器,網址列輸入 reiohuang.github.io
,即可看到 Github Pages 已經成功地幫我們把 Hugo 的個人網站程式碼轉換成網站。
每次新增、修改文章時,記得最前面要貼上 Hugo 的文章設定,才能正常顯示。
添加評論功能
需要依靠其他的第三方網站才能達成,原理是因為 Github Pages 他是屬於靜態網頁,而評論功能是需要後端資料庫儲存,如果只使用 Github Pages 是沒有辦法加入評論功能。
進入 Hugo 首頁,Search the Docs 輸入 comments,點擊第一個連結,Hugo 預設支持的評論功能網站是 Disqus,所以要先進到 Disqus 這個網站申請一個帳號,在 Disqus 創建一個評論功能之後再回頭修改程式碼,把 Disqus 的帳號跟個人網站連結在一起。
注意:雖然 Hugo 預設支持的評論功能是 Disqus 網站,但是有的 Hugo 主題可能沒有開啟這個功能,所以要先檢查主題有沒有辦法加入評論功能。
在 config.yaml
設定檔裡面有找到 disqusShortname 的設定的話,就表示你使用的 Hugo 主題是支持 Disqus 評論功能,把申請的 Disqus 評論功能帳號填在這裡即可。
Disqus 評論功能
註冊 Disqus 後,點選 Add Disqus To Site 後,頁面拉到最下面點擊 GET STARTED 按鈕。
選擇下面 I want to install Disqus on my site
註冊網站
選取最下面 Basic 免費方案,點擊 Subscribe Now 按鈕。
因為 Hugo 平台沒有在選項裡面,所以選取最下面的 Universal Code
拉到最下面點擊 Configure 按鈕
設定 Disqus
Website URL: 打上 Github Pages 幫我們架設的個人網站的網址
Appearance: 可以選擇在個人網站上面呈現的評論系統要是什麼顏色,如果是 Auto 就會自動偵測你網站的顏色選擇適合的主題。
Comment and Moderation Settings 評論和審核設置
依喜好選擇,點擊 Complete Setup 按鈕後,最後再點擊 Dismiss Setup。
config.yaml 設定
disqusShortname 改成剛剛在 Disqus 上面申請的 Website Name 的值。不知道的可以點擊右上角 Edit Settings,回去看 Shortname。
將 Shortname 貼到 config.yaml 設定檔後存檔
執行 hugo server
,隨選一篇文章,拉到最下面。看到此段表示你的 Disqus 設定已經設定好。Disqus 評論功能只有在你將設定上傳到 Github 之後才會生效。
回到終端機,按 Ctrl+C
停止 hugo server
運行,輸入 hugo
產生個人網站的程式碼。
將 exampleSite > public 資料夾裡全部內容複製到 reiohuang.github.io
資料夾中,勾選全部套用並取代。
提交 commit(add disqus) 並 push 到 Github
Utterances 評論功能
捨棄 Disqus 的理由:如何在hugo上安裝utterances?
把個人網站的評論跟 Github issues 討論區的功能結合在一起,別人只要來個人網站上留下評論,實際上就是在 Github repository 裡面開啟一個 issue,就可以在 issue 裡面看到所有的評論紀錄。如果要在 Hugo 上加入這個 Utterances 的評論功能,需要有 html 程式碼的基礎。
Utterances 評論產生的 issues 可以選擇你想放的 Repository 中:
issues 放在個人網站 Repository
- repository 選個人網站的 repository
- 修改 config.yaml 如下圖紅框處
- 登入 Github 帳號後即可留言
留言會上傳到個人網站的 issue 區,別人只要來我的個人網站評論,就是在我的 Github repository 裡面開啟一個 issue。
issues 放在新創的 Repository
-
Create a new repository
-
安裝 Github App utterances
-
選擇剛剛新創建的 Github repo
reiohuang/comment-utterances
。 -
修改 config.yaml 如下圖紅框處
-
登入 Github 帳號後即可留言
留言測試
留言會上傳到個人網站的 issue 區
添加 Google Analytics
進到 Google Analytics (分析)網站,點擊開始量測,開始 GA 的設定。
帳戶名稱可以隨意填,全部都打勾。
資源名稱填 Github 帳號,報表時區和幣別不用改。
點擊顯示進階選項,開啟「建立通用 Analytics 分析資源」的開關,在網站網址裡面 填上個人網站的網址。
如下圖點選:
都打勾
建議把「成效建議與最新消息」打勾,這樣可以收到每個月 GA 傳來的報表。
成功創建一個資源後,會出現一個評估 ID,先複製下來。回到 VS Code,打開 Hugo 設定檔,找到 Google Analytics 的 ID 設定,貼上剛剛複製的追蹤 ID。
註:從 GA4 開始,使用 G-
開頭的評估 ID,而不是 GA3 以 UA-
開頭的追蹤 ID。
在 config.yaml
加上
|
|
GA 的 ID 設定好之後,必須把這個改動上傳到 Github 才會生效。
接著使用 Hugo 產生個人網站的程式碼,終端機輸入 hugo,產生個人網站的程式碼,public 資料夾產生了新的程式碼。把新產生出來的程式碼複製到 GitHub/reiohuang.github.io
資料夾,最後 push 到 GitHub 上,進到自己的個人網站。
回到 Google Analytics 頁面查看,狀態已被改成「已順利啟用資料收集功能」,表示個人網站已經成功跟 GA 連結,這樣以後就可以使用 GA 來分析個人網站的數據。
主題無 googleAnalytics 設定
若主題裡面找不到 googleAnalytics 的設定,是因為主題本身沒有開啟 GA 設定的關係,所以在設定檔才找不到可以填上 GA ID 的地方。
解決辦法:自己刻,需要一點 html 的程式碼基礎。 進入 Hugo 首頁,Search the Docs 輸入 google analytics,點擊第一個連結。
複製這行程式碼
回到 VS Code,以本主題 Stack 為例,進到 themes 去更改主題裡面的設定,路徑:themes > hugo-theme-stack > layouts > partials > head > head.html
,把剛剛複製的程式碼貼到裡面。
再回到 Hugo 的官方網站,選擇 yaml 格式,複製這行程式碼,貼到 config.yaml 設定檔。
config.yaml 設定檔, 填上你的評估 ID(G-MEASUREMENT_ID)。
這樣就能讓沒有 googleAnalytics 設定的主題也支持 GA 設定,只要把自己的評估 ID 填在 G-MEASUREMENT_ID 即可。
添加 Google Search Console
可以透過 Google 搜尋找到個人網站,如果想要讓文章可以通過 Google 搜尋被找到,就必須要為你的個人網站加上 Google Search Console 的功能。
有一個簡單的方法可以驗證自己的個人網站是否已經可以被 Google 查詢到,在 Google 首頁搜尋列中輸入 site:個人網站網址
查詢。
如果你的 Google 搜尋結果只有出現「請使用 Google Search Console」,就表示別人目前還沒有辦法在 Google 搜尋裡找到你的個人網站。
新增資源
點擊新增資源
選擇右邊的這個網址前置字元,輸入個人網站的網址。
設定 Google Search Console 的功能,點擊左邊的 Sitemap 把我們的個人網站的 Sitemap 加到 Google Search Console 裡面,直接在後面填上 sitemap.xml
,點擊提交按鈕。
Google 之後會自己定期的去查看我們的 Sitemap,看看有沒有新的頁面出現,以後新增一篇文章,Google 就會自己發現,不用每次都還要重新上傳新的 Sitemap。
客製化現有主題
修改程式碼樣式
這個修改的方式跟其他的比較不一樣,需要從 Hugo 的設定檔 config.yaml 去修改,而不是改 css 樣式。
在 Hugo 網頁搜尋列輸入 markup
,往下找到 Highlight。
style 就是去設定程式碼的呈現樣式,這邊預設的是使用 monokai。
回到 Hugo 官方文件,在設定檔的下面有兩個連結,可以看目前 Hugo 支持的程式碼主題樣式有哪一些,可以找出個人網站比較匹配的風格。
把 style 主題名字替換成 dracula