由於 Logdown 疑似久未維護:
使用 Symantec/GeoTrust/RapidSSL 憑證(最近好像修好了)- 官方部落格 2014 後即無更新
所以改用其他靜態網站產生器 (static-site generator, SSG)。
SSG 選擇
常見的 SSG 有 Jekyll (Ruby), Octopress (Ruby), Hexo (Js), Hugo (Go) 等,但由於我筆電的 CPU 是 2009Q2 的 Intel SU3500,所以編譯速度很重要。就之前的經驗而言,Ruby 很慢(不過最近 v2.6 加上了 JIT),聽說 Hexo 比前兩者快,但 Hugo 更快,所以選用 Hugo。
搬遷
Logdown 基本上是使用 Jekyll/Octopress,所以需要一個 Jekyll/Octopress to Hugo 的文章轉換工具。官方教學中列出了以下幾項:
- octohug (Octopress, Go):無法保留文章詮釋資料的順序,這是 Golang 及其套件的問題,無法客製反序列化及序列化。
hugo import jekyll
(內建):壞了- JekyllToHugo (Python)
- ConvertToHugo (Python):看起來功能比上面的多
所以選用 ConvertToHugo 將完章轉成 Hugo 的格式。
然而,ConvertToHugo 功能有所缺失,部份是因為 Logdown 的匯出檔缺少了一些必要資訊:
所以我 fork 了一份,利用 Javascript 在瀏覽器中撈出匯出檔中缺失的詮釋資料,除修正上面的問題外,再加上 Hugo 中才有的功能:
- 設定
slug
,aliases
等欄位,讓後續遷移網域只要改網址中網域的部份。 - 匯出新舊網址的對應表,方便使用 Disqus URL Mapper 遷移留言。
- 用 Hugo 的
highlight
shortcode 顯示 Octopress fenced-code-block 的 info string 欄位。
這樣就完成了 Logdown 到 Hugo 的遷移。
然而實際上還有一些其他問題需要手動修正: