使用 Hexo-abbrlink 產生永久連結

起因

因為是在建置部落格的同時整理並撰寫 Hexo 筆記,內容的更動導致常常需要修改多篇文章的檔名,permalink 自動產生網址的設定也連帶造成了我一些困擾,所以想用 Hexo-abbrlink 來一勞永逸。

我原本 permalink 的設定是直接從檔名產生網址。網路上的教學建議檔案用日期 + 英文標題命名,所以修改的同時也讓同一篇文章的網址不斷改動。

備註: 建議檔案用日期 + 英文標題命名原因

  1. 日期方便作檔案排序。
  2. 中文網址在台灣及大陸外的地區必須以編碼方式來呈現, URL 被轉碼後會變得很長(長得像亂碼),這對 SEO 來說也較為不利。

1. 網址固定,不再因修改檔名或日期變動
Hexo-abbrlink 會依照文章標題產生永久連結,並保存在 Front-matter (檔案最上方以 — 分隔的區域),之後即使更改檔名也不會再變動。
abbrlink存入Front-matter20211227-001

舊文章(已經部署)會在下一次 hexo g 時產生 abbrlink 。
新文章(還沒部署)會在 hexo s 時就產生 abbrlink 。

2. 檔名可依自己方便取了
再也不用想英文標題了!!

3. 降低因網址變動產生的404問題
據說404錯誤會影響網站在SEO上的排名,讓其他人較不容易搜尋到自己的頁面。

本篇設定的 Hexo 及 NexT 版本如下,不同版本可能會有功能或設定方式上的差異!
Hexo 版本: hexo: 6.0.0
Next 版本: hexo-theme-next-8.8.2

1. 安裝套件

1
npm install hexo-abbrlink --save

2. 修改 root\_config.yml 文件

1
2
3
4
permalink: posts/:abbrlink/
abbrlink:
alg: crc32 # support crc16(default) and crc32
rep: hex # support dec(default) and hex
  • 也可以自己修改 permalink 參數(把 post 刪掉或增減其他參數)
  • alg 是雜湊編碼產生方式, rep 是雜湊編碼表示方式(預設十進位),兩種參數的搭配結果如下:
    1
    2
    3
    4
    crc16 & hex    https://XXXX.com/posts/66c8/
    crc16 & dec https://XXXX.com/posts/65535/
    crc32 & hex https://XXXX.com/posts/8ddf18fb/
    crc32 & dec https://XXXX.com/posts/1690090958/

參考資料

文章內容如有錯誤,歡迎留言討論!


本 Blog 上的所有文章除特别聲明外,均採用 CC BY-SA 4.0 協議 ,轉載請註明出處!