Contents

Blog 從 Hexo 移轉 Hugo 主題 LoveIt

從過去用 Logdown 到現在用 Hexo 做程式筆記,我覺得他們都是很好用工具。再更久以前有用過 Blogspot,不過那時候沒有寫 Blog。最近因為文章大概700多個,Hexo build程式都要3~5分鐘,上個廁所回來還沒跑完,我覺得太久了,有時候我覺得還卡住。以前也有觀察 Hugo 這個東西,但發現沒有像 hexo 自動 deploy 到 Github Page上面,現在 Github Action 也能做到,所以也沒有這個問題。最近想換換 Hugo 看看,build 網頁只要 3~10 秒就完成,讓我很驚訝。

建立 Hugo

這邊可以參考官網安裝 hugo,Install Hugo | Hugo。我是用 choco 來安裝的。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 新增站台
hugo new site Blog
# Add a Theme
cd Blog
git init
git submodule add https://github.com/malagege/LoveIt.git themes/LoveIt
# config.toml 下加入 theme = "LoveIt"
vim config.toml
# 從 LoveIt 的 config.toml 內容複製到 hugo 的config.toml 下
themes\LoveIt\config.toml => config.toml
# 新增一筆文章
hugo new posts/my-first-post.md

Visual Studio Code 設定圖片方法

這邊查看有什麼套件可以用圖片,但沒有完美方法,因為 Hugo 顯示圖片要放在資料夾上面,但你的markdown文件不在裡面,你放圖片只能[](xxxx),不能加圖片錄徑。這邊就沒法在 vsCode預覽,但可以在 Hugo 預覽。

設定在 blog 裡面

參考:

有兩種方法

  • 一種設定 static 資料夾
  • 在文章旁邊設定資料夾(我選擇這種)

安裝 Paste Image套件。

Paste Image: Path
${currentFileDir}/${currentFileNameWithoutExt}

Paste Image: Insert Pattern
${imageSyntaxPrefix}${imageFileName}${imageSyntaxSuffix}

https://i.imgur.com/wsKFiIo.png

接下來你可以在 VSCode 編輯文字上面按下Ctrl + Alt + v 可以貼上圖片。對應路徑會參照上方設定。但相對缺點會如上。

使用圖床空間

可以使用PicGo,但我沒用過。因為我現在很常先在 HakMD 先編寫內容再貼到 Blog 上面,所以圖片貼上都會幫我用 Imgur圖床空間,之前保哥也有建議使用 Github Gist之類東西。

搜尋文章工具選擇

官方能用搜尋的可參考Search for your Hugo Website | Hugo文章。

LoveIt 支援搜尋

  • lunr
  • Algolia

這邊我會以 Algolia 為主。

前面準備事情

簡單寫個重點。

  1. 需要注冊 Algolia 帳號。
  2. 在 Algolia 新增一個 Index。
  3. 需手動或自動產生 Index 上傳到 Algolia。這一部分好像也能用爬蟲?,但我擺在部署到 Github Pages 在研究。
  4. LoveIt 主題有幫我們用好 index.json,但需要設定打開才會產生。

參考文章:

設定 Algolia 網站

這邊可能會隨者網站更新有所不同。

註冊/登入

https://i.imgur.com/ZXJMT7G.png

填寫相關資訊。

新增 Index

https://i.imgur.com/uR1SVvN.png

上傳 Index

這邊部分有很種方法,官方用 API 上傳方法可以看Importing with the API | Algolia。這邊我們 LoveIt 主題可以產生 Index.json。我們把那個設定打開。

1
2
[outputs]
  home = ["HTML", "RSS", "JSON"]

參考: 主题文档 - 基本概念 - LoveIt

1
hugo

public/index.json就會產生 index.json。

這邊上傳限制有 10000。我 Blog 有 700多篇,但是http://localhost:1313/blog/index.json看有 3101,應該還夠用吧??
https://i.imgur.com/zg7lVGd.png

https://i.imgur.com/6vrthA0.png

上傳完成會倒去 Dashbord。
https://i.imgur.com/belKXCV.png

繼續設定搜尋

這些步驟還沒好。請點擊火箭圖案。

https://i.imgur.com/000zlev.png

這邊我大概設定這樣。

https://i.imgur.com/bbxQTeq.png

https://i.imgur.com/faBZNiw.png

排序設定我設定這樣。

https://i.imgur.com/nvNHnEE.png

https://i.imgur.com/bKjuNiw.png

設定 LoveIt 主題

注意,這顛要看你的主題有支援那些搜尋,依照設定做調整。

1
2
3
4
[params.search.algolia]
index
appID
searchKey
  1. index
    https://i.imgur.com/AdfBX0f.png

  2. appId
    https://i.imgur.com/ED24QYN.png

  3. searchKey
    https://i.imgur.com/p2PYGeF.png

自動更新就放在部署 Github Pages

主題選擇

試用主題

  • ananke
  • eureka
  • maupassant
  • PaperMode 普通還可以看
  • next 我的文章會bluid 失敗,所以就放棄使用
  • loveit 讚讚讚!!
  • even 精簡,但對我覺得太少功能了

所以我最後選擇 LoveIt

Hugo系列(3.0) - LoveIt主题美化与博客功能增强 · 第一章 - Yulin Lewis’ Blog

Hexo 調整 Hugo 內容

我這邊盡量讓我的舊網頁還能繼續用,雖然網站有放廣告,一個月下來大概最多才1美元,剛開始的時候每個月 0.01 美元,不太想回到過去那時候,想說讓舊網頁不引響情況下使用。最近看 LoveIt 主題有做很多優化搜尋東西,這邊也順便設定,看以後新網址搜尋分數也很高的話,再把舊網址移除也不遲。

這邊後來有看到将博客从Hexo迁移至Hugo - 老孙正经胡说,裡面有 python 程式做文章轉換,假如想用程式處理的話,可以試試看,我這邊是用 VSCode 做正規化取代掉。

解決文章沒換行問題

早期文章我沒很寫文章句子,近期有改正,但是面對以前那些文章不太想去調整,hugo預設不是 Hard Break Line,好在我找到修改方式。

config.toml

1
2
[markup.goldmark.renderer]
hardWraps = true

可參考:

文章錯誤排除

Hexo 文章有寫 bug 不會嚴格檢查格式。但換成 hugo 可能會有些編譯錯誤狀況,可能以前相關標籤寫錯之類,調整掉就能解決。這邊放上我一些錯誤調整搜尋,可以用 vsCode 或 Sublime 取代。Hugo 的 tagscategories 是要放陣列。

1
2
3
4
# regex
tags: ([^\[ ].+)
# replace
tags: [$1]
1
2
3
4
# regex
categories:\s+(.+)
# replace
categories: [$1]
1
2
3
4
# regex 
```(.+)
# replace
```$1

早期 logdown 日期時間格式調整

1
2
3
4
# regex
date: (\d{4}-\d+-\d+ \d+:\d+)
# replace
date: $1:00

hexo 特製mermaid tag 手動更換。還好不多…

1
2
\{% ?asset_img (.+) \[?(.+?)\]? *%\}
![$2]($1)
1
2
\{% ?asset_link "?([^"]+)"? \[?"?(.+?)\]?"? *%\}
[$2]($1)

mermaid 套用問題

官方有使用 MermaidJS教學,這邊官網友教學Diagrams | Hugo。但我後來用 LoveIt 主題,裡面有內建

Hexo Next theme 加入 mermaid 圖示(Diagrams) | 中文測試222

1
2
3
4
5
6
7
8
    <div class="nested-copy-line-height lh-copy {{ $.Param "post_content_classes"  | default "serif"}} f4 nested-links {{ $.Param "text_color" | default "mid-gray" }} {{ cond (eq $.Site.Language.LanguageDirection "rtl") "pl4-l" "pr4-l" }} w-two-thirds-l">
      {{- .Content -}}
      {{ if .Page.Store.Get "hasMermaid" }}
        <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
        <script>
          mermaid.initialize({ startOnLoad: true });
        </script>
      {{ end }}

不過可以直接用我的 Fork 修改主題就能用了。malagege/LoveIt: ❤️A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题

官方有說後續會調可以用,但我先用萬用方法去調整。可前後相容。

舊文章網頁完整搬移

有看到網址改成 Next 文章渲染網址,但是我發現我部分網站連結會跟之前不一樣,試了很多種方式,

因為 hexo 產生 url 規則完全不相容,嘗試很多設定。和無法解決問題,不如就直接靜態網頁搬過來繼續使用,測試上是可以的,所以考慮就聞張先這樣用。以後SEO比較好說不定可以把就網站刪掉。

https://i.imgur.com/m67UXs6.png

此方法非完美解決方法,最後殺手鐧可以試試。

檢查網站連結程式

簡單就是用來檢查之前文章 url,是不是轉移網址還能正常瀏覽。如果不在意這點可以不用做。

hugo 子目錄 URL 調整

要順利開啟 http://localhost:1313/blog/要下面這樣設定。

1
baseURL = 'http://example.org/blog'

抓取路徑

參考: C#: 使用 AngleSharp 爬蟲工具來抓取網頁內容吧 | 伊果的沒人看筆記本

不要說我程式怎麼寫得不好,可以跑就 100分。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var url = $"https://malagege.github.io/blog/";
var result = new List<string>();

var config = AngleSharp.Configuration.Default.WithDefaultLoader(
new LoaderOptions
{
	IsResourceLoadingEnabled = true
});

var browser = BrowsingContext.New(config);

var document = await browser.OpenAsync(url);
var data = document?.QuerySelectorAll(".post-title-link");
document.Close();

var matchString = data.Select(s => s.GetAttribute("Href")).ToList();//(s => s.BaseUrl.Origin + s.GetAttribute("Href")).ToList();

result.AddRange(matchString);

for (int i = 2; i < 75; i++)
{
	Thread.Sleep(3000);
	document = await browser.OpenAsync(url + "page/" + i);
	data = document?.QuerySelectorAll(".post-title-link");
	document.Close();

	matchString = data.Select(s => s.GetAttribute("Href")).ToList();

	result.AddRange(matchString);
	Console.WriteLine($"i:{i}, cnt: {matchString.Count}");
}

result.Dump();

結果還發現我有些頁面會有問題。

https://i.imgur.com/oSJBfth.png

檢查網站路徑程式

參考:

準備路徑 urls.txt 就可以執行。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash

BASE_URL="${BASE_URL:-http://localhost:8080}"

ERRORS=0

for path in $(grep ^/ urls.txt)
do
  url="$BASE_URL$path"
  echo -n "Checking $url... "

  STATUS_CODE=$(curl \
      --output /dev/null \
      --silent \
      --write-out "%{http_code}" \
      "$url")

  if (( STATUS_CODE == 200 ))
  then
    echo "$STATUS_CODE"
  else
    echo -e "\033[0;31m$STATUS_CODE !!!\033[m"
    ERRORS=$(( ERRORS + 1 ))
  fi
done

if (( ERRORS != 0 ))
then
  echo -e "\033[0;31m!!! Errors checking URLs!\033[m"
  exit 1
fi

更換 Github Pages 專案網址

更改專案就能改網址,可先設定別的名子把 blog 上傳上去,當設定錯誤還能救回來。

https://i.imgur.com/Z1eIQh4.png

Google Adsense 設定

網路上看到很多都是在 theme 設定的,但我認為不應該在上面設定。之前這篇Hexo NexT 主題遇到連結 %20 空白問題,新版設定 Google Adsense 方法 | 程式狂想筆記有紀錄在主blog 裡面設定。我找了很久看到某日本大大文章這樣做,大部分文章都是在 theme 修改,但在未來更新上會比較麻煩,我用 Google 翻譯免強看得懂。

參考文章

設定

我把以前設定拿來用。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<div align="center">
  <script
    async
    src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1439458814178865" crossorigin="anonymous"
  ></script>
  <ins
    class="adsbygoogle"
    style="display:block; text-align:center;"
    data-ad-layout="in-article"
    data-ad-format="fluid"
    data-ad-client="ca-pub-xxxxxxxxxx"
    data-ad-slot="xxxxxxxxxx"
  ></ins>
  <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
  </script>
</div>

我看日本那篇對應檔案跟我主題不一樣,所以我這邊自己看LoveIt主題,發現themes\LoveIt\i18n\zh-TW.toml這個檔案有大概寫那些檔案是什麼。這邊挑個幾個去 Include。

  • partials/header.html
  • posts/single.html (建議)
  • partials/footer.html
  • partials/comment.html
  • layouts_default\summary.html

在你想加的地方加上

  • layouts\posts\single.html
  • layouts_default\summary.html

ads.txt

ads.txt 設定。因為我日誌設定 /blog,所以不用設定這個。

廣告類型(番外)

一直都不知道廣告類型要怎麼調整,結果查資料有找到廣告類型名稱。

https://i.imgur.com/3IYSnrw.png

但我花很多時間,可能之後做廣告優化可以再回來看這篇,再額外寫一篇筆記筆記。尤其錨定廣告看很多網站都有用,還有用手機點連結會看到的廣告,這邊都可以做很多優化。

參考:

部署 Github Pages

參考文章

搜尋一些網路解決方法,最終實作出來。

Blog From Hexo To Hugo -

Hugo / 如何使用 Github Actions 自動部署 Hugo | sujingjhong.com

For newbies of GitHub Actions: Note that the GITHUB_TOKEN is NOT a personal access token. A GitHub Actions runner automatically creates a GITHUB_TOKEN secret to authenticate in your workflow. So, you can start to deploy immediately without any configuration.

相關文章:

實作

網路上主要很多種做法,這邊主要參考這篇Hugo + GitHub Action,搭建你的博客自动发布系统 · Pseudoyu修改。

準備:

  • 一個 hugo-blog Github Repo(private)
  • 一個 blog Github Repo(public)
  • 設定 ACTION_ACCESS_TOKEN
  • 在 secrets 設定 ACTION_ACCESS_TOKEN
  • 設定 .github\workflows\deploy.yml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
name: deploy # 名字自取

on:
  push:
    branches:
      - master  # 这里的意思是当 main分支发生push的时候,运行下面的jobs,这里先改为github-actions

jobs:
  deploy: # 任务名自取
    runs-on: ubuntu-18.04	# 在什么环境运行任务
    steps:
      - uses: actions/checkout@v2	# 引用actions/checkout这个action,与所在的github仓库同名
        with:
          submodules: true  # Fetch Hugo themes (true OR recursive) 获取submodule主题
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

      - name: Setup Hugo	# 步骤名自取
        uses: peaceiris/actions-hugo@v2	# hugo官方提供的action,用于在任务环境中获取hugo
        with:
          hugo-version: 'latest'	# 获取最新版本的hugo
          extended: true          # 最新版沒有extended,因為 LoveIt 有用到 SCSS,新版要加上去

      - name: Build
        run: hugo --minify	# 使用hugo构建静态网页

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3	# 一个自动发布github pages的action
        with:
          # github_token: ${{ secrets.GITHUB_TOKEN }} 该项适用于发布到源码相同repo的情况,不能用于发布到其他repo
          external_repository: malagege/blog	# 发布到哪个repo
          personal_token: ${{ secrets.ACTION_ACCESS_TOKEN }}	# 发布到其他repo需要提供上面生成的personal access token
          publish_dir: ./public	# 注意这里指的是要发布哪个文件夹的内容,而不是指发布到目的仓库的什么位置,因为hugo默认生成静态网页到public文件夹,所以这里发布public文件夹里的内容
          publish_branch: master	# 发布到哪个branch

Personal Access Token 要怎麼取得,可以看這篇Creating a personal access token - GitHub Docs

Google Search Console

如何讓 Google 搜尋到自己的部落格 | AnnKuoQ Blog備份圖,我參照這個教學做的,老實多寫這篇有點累了,一樣東西就不繼續用。orz

我看到有 Google Analytics 驗證,因為我 Blog 之前就有用,所以我使用這個方法。 LoveIt設定在 Body下面,所以我就不用這個方式,我用檔案方式驗證,這邊只要放在static裡面就可以,驗證檔案也不能刪掉。

https://i.imgur.com/QvU166n.png

提交 Sitemap

前往 Search Console 主控台
點擊左側欄位中的 Sitemap
輸入 sitemap.xml
點擊 提交

LoveIt 主題也幫你搞定 sitemap.xml 這個東西,你直接設定就可以了。

sujingjhong.com/dispatch-sitemap.yml at master · lisez/sujingjhong.com,看到這個還滿有趣的,有空再看看要不要試試。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
name: Dispatch sitemap to google

on:
  push:
    branches: 
      - master

jobs:
  upload_sitemap:
    runs-on: ubuntu-latest
    steps:
      - name: Wait / Sleep
        uses: jakejarvis/wait-action@v0.1.0
        with:
          time: '30s'
      - name: curl
        uses: wei/curl@v1.1.1
        with:
          args: http://www.google.com/ping?sitemap=https://sujingjhong.com/sitemap.xml

相關選單設定

參考:主题文档 - 基本概念 - LoveIt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# 是否使用 robots.txt
enableRobotsTXT = true
# 是否使用 git 信息
enableGitInfo = true
# 是否使用 emoji 代碼
enableEmoji = true

# 忽略一些構建錯誤
# ignoreErrors = ["error-remote-getjson", "error-missing-instagram-accesstoken"]

# 作者配置
[author]
  name = "malagege"
  email = ""
  link = ""

# 菜單配置
[menu]
  [[menu.main]]
    weight = 1
    identifier = "posts"
    # 你可以在名稱 (允許 HTML 格式) 之前添加其他信息, 例如圖標
    pre = ""
    # 你可以在名稱 (允許 HTML 格式) 之後添加其他信息, 例如圖標
    post = ""
    name = "文章"
    url = "/posts/"
    # 當你將鼠標懸停在此菜單鏈接上時, 將顯示的標題
    title = ""
  [[menu.main]]
    weight = 2
    identifier = "tags"
    pre = ""
    post = ""
    name = "標籤"
    url = "/tags/"
    title = ""
  [[menu.main]]
    weight = 3
    identifier = "categories"
    pre = ""
    post = ""
    name = "分類"
    url = "/categories/"
    title = ""

Algolia 自動更新 Index

前面有手動上傳 index,但這邊我看網路上很多種方法都不太一樣,這邊要注意的事我們已經有index.json,所以怎麼讓 index.json 上傳到 Algolia 是一個重要課題。

嘗試

星星數最高都不能用,後來有看到官網出algolia/setup-algolia-cli@v1.0.0就嘗試看看,用官網方式也比較讓人安心。卡個好幾個問題最後解決了。官網上傳不能用 json格式。這邊要用 jsonlndjson 才能上傳,好險有找到轉 ndjson方法,不然我也無法度。

最後測試一個文章上去有順利解決問題。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
name: deploy # 名字自取

on:
  push:
    branches:
      - master  # 这里的意思是当 main分支发生push的时候,运行下面的jobs,这里先改为github-actions

jobs:
  deploy: # 任务名自取
    runs-on: ubuntu-18.04	# 在什么环境运行任务
    steps:
      - uses: actions/checkout@v2	# 引用actions/checkout这个action,与所在的github仓库同名
        with:
          submodules: true  # Fetch Hugo themes (true OR recursive) 获取submodule主题
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

      - name: Setup Hugo	# 步骤名自取
        uses: peaceiris/actions-hugo@v2	# hugo官方提供的action,用于在任务环境中获取hugo
        with:
          hugo-version: 'latest'	# 获取最新版本的hugo
          # extended: true

      - name: Build
        run: hugo --minify	# 使用hugo构建静态网页

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3	# 一个自动发布github pages的action
        with:
          # github_token: ${{ secrets.GITHUB_TOKEN }} 该项适用于发布到源码相同repo的情况,不能用于发布到其他repo
          external_repository: malagege/blog	# 发布到哪个repo
          personal_token: ${{ secrets.ACTION_ACCESS_TOKEN }}	# 发布到其他repo需要提供上面生成的personal access token
          publish_dir: ./public	# 注意这里指的是要发布哪个文件夹的内容,而不是指发布到目的仓库的什么位置,因为hugo默认生成静态网页到public文件夹,所以这里发布public文件夹里的内容
          publish_branch: master	# 发布到哪个branch


      - uses: algolia/setup-algolia-cli@v1.0.0
        with:
          version: 1.2.0

      - name: Algolia Set Profile
        env:
          ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
          ALGOLIA_ADMIN_API_KEY: ${{ secrets.ALGOLIA_ADMIN_API_KEY }}

        run: algolia profile add --name "my-profile" --app-id $ALGOLIA_APPLICATION_ID --admin-api-key $ALGOLIA_ADMIN_API_KEY --default

      - name: json2nd
        run: go install github.com/draxil/json2nd@latest

      - name: json to ndjson(jsonl)
        run: |
          ~/go/bin/json2nd ./public/index.json > ./public/index.ndjson          

      - name: Algolia Upload Index
        env:
          FILE_PATH: "./public/index.ndjson"
          INDEX_NAME: "malagege_blog"
        run:
          algolia objects import $INDEX_NAME -F $FILE_PATH

      - uses: sarisia/actions-status-discord@v1
        if: always()
        with:
          webhook: ${{ secrets.DISCORD_WEBHOOK }}
          title: "deploy"
          description: "Blog Build and deploy to GitHub Pages!"
          username: GitHub Actions

去 Github Actions 等待奇蹟。
https://i.imgur.com/twM6kjd.png

這邊特別說明一下,我前面失敗是主題忘記做 commit。git submodule還是需要把 module 再 commit一次才抓地到,修改完就成功了。

我看到官方 cli 工具要用 ndjson 或 jsonl 來上傳,json 不能用,不知道這個文章能不能跑?
最後我看到這篇, ndjson - How to Convert JSON to NDJSON?這幾個方法也能轉,這邊就不嘗試了。

https://i.imgur.com/j8mTl5Z.png

跟 Hexo 一樣,直接搬移就可以。

https://i.imgur.com/iY5ygNe.png

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
  [[menu.main]]
    weight = 1
    identifier = "/"
    # 你可以在名稱 (允許 HTML 格式) 之前添加其他信息, 例如圖標
    pre = ""
    # 你可以在名稱 (允許 HTML 格式) 之後添加其他信息, 例如圖標
    post = ""
    name = "首頁"
    url = "/"
    # 當你將鼠標懸停在此菜單鏈接上時, 將顯示的標題
    title = ""
  [[menu.main]]
    weight = 5
    identifier = "links"
    pre = ""
    post = ""
    name = "好站連結"
    url = "/links/"
    title = "覺得不錯好站都會放在這邊"

整個選單設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[menu]
  [[menu.main]]
    weight = 1
    identifier = "/"
    # 你可以在名稱 (允許 HTML 格式) 之前添加其他信息, 例如圖標
    pre = ""
    # 你可以在名稱 (允許 HTML 格式) 之後添加其他信息, 例如圖標
    post = ""
    name = "首頁"
    url = "/"
    # 當你將鼠標懸停在此菜單鏈接上時, 將顯示的標題
    title = ""
  [[menu.main]]
    weight = 2
    identifier = "posts"
    # 你可以在名稱 (允許 HTML 格式) 之前添加其他信息, 例如圖標
    pre = ""
    # 你可以在名稱 (允許 HTML 格式) 之後添加其他信息, 例如圖標
    post = ""
    name = "文章"
    url = "/posts/"
    # 當你將鼠標懸停在此菜單鏈接上時, 將顯示的標題
    title = ""
  [[menu.main]]
    weight = 3
    identifier = "tags"
    pre = ""
    post = ""
    name = "標籤"
    url = "/tags/"
    title = ""
  [[menu.main]]
    weight = 4
    identifier = "categories"
    pre = ""
    post = ""
    name = "分類"
    url = "/categories/"
    title = ""
  [[menu.main]]
    weight = 5
    identifier = "links"
    pre = ""
    post = ""
    name = "好站連結"
    url = "/links/"
    title = "覺得不錯好站都會放在這邊"

結論

雖然花了很多時間寫這篇,最近雖然沒以往更新 Blog 頻率沒這麼高,一部分最近都在 HackMD 寫筆記,一部分最近也在囤文章,由於最近換工作,工作都是接觸 ASP.NET Core,所以把之前 Java 筆記區沒寫完的文章丟出來,因為工作上不會用到,所以應該不會在更新。在把 ASP.NET Core 文章 PO 出來前,我打算把 Hexo 換到 Hugo,但一直沒時間處理,用假日時間搞了2~3個禮拜,今天終於用好了。

Hexo 我覺得還是很好的工具,用他在 Next 我很少花時間在調整 Blog 設定,但 Hugo 真的花很多,Hexo 部署到 Github Pages 一行程式可以搞定,就算少許時間我都能接受。但文章到700多篇就真的開始會卡,然後我看到有些 Blog 也開始用 Hugo,所以才決定轉向 Hugo。

Hugo 也沒想像中難,但花的時間真的還滿多,尤其部署 Github Pages 每一篇寫的都不太一樣,搜尋功能也花滿多時間參考大大寫的文章,加以調整內容執行。原本想找 Next 主題用,但我使用執行文章會有問題,到處找找推薦的主題文章,最後找到 LoveIt主題,我的文章 Mermaid 流程圖也支援,程式碼也有快速複製快捷鍵,但竟然不支援 markdown 顯示,所以我 Fork 出來使用,最後調整成功。開始執行我要轉換 Blog 計畫。

希望看的這篇的你也能順利轉換:D

其他文章

Hugo 貼身打造個人部落格 :: 第 12 屆 iThome 鐵人賽

再见Hexo,你好Hugo - Kiosk’s 个人编程技术分享

Hexo 迁移至 Hugo - 腾讯云开发者社区-腾讯云