這個部落格一直以來都是用Hexo進行代碼生成,並使用了even這個主題做為配置。然而在時間的摧殘下,使用Hexo的npm生態系開始出現問題。
首先是hexo-renderer-sass
居然不支援node15了,而且眾多套件往往年久失修。
其次是也想要找時間重整一下寫技術筆記的習慣,就順勢轉換平台了。
如果已經看到這篇文章,應該就是我轉換完畢了XD。最近碩士論文寫完也比較有空來整理。
不過作為技術文章,還是寫一下我有做什麼更動。
Why hugo
Hugo 的首頁裏開宗明義寫著The world’s fastest framework for building websites
,意味著他以高效能為豪。
事實上他在渲染靜態網頁的確很快,在比較各家靜態網頁產生器時,渲染速度是很重要的關鍵。而由golang寫成的hugo在這方面可是比node好上許多。
Installation
我使用的是macOS,但在不同的系統上安裝步驟應該大同小異。這邊使用brew直接安裝。
|
|
然後建立新的blog,既然是第二代,就給他加個v2吧。
|
|
佈景主題我沿用著hexo的even主題,在hugo上也有一份even的fork能使用。
|
|
在使用even上少數要注意的就是他使用post而非官方預設的posts作為文章資料夾。以及第一次使用要記得copy一份config到blog的root。
|
|
接著就是調整config.toml
的內容使他跟原本的blog差不多。記得要看裡面的說明,我沒看到NOTE: Don't enable
highlightInClientand
chroma at the same time!
這句話,不小心開了兩個,結果就是在render code的時候炸開了。
發布的部分就跟hexo大同小異,都是publish static page到github或是自己的server上,就不敘述。
Transform from hexo
我把比較多的內容放在從hexo轉移我過去的文章到現在的平台上做了什麼事情。
首先我砍了以前的一些沒意義文章(不重要),然後放上了我的CV,祈求找到一份好工作XD。
然後就是我拿掉了Hexo有在用的Disqus,反正沒什麼人會留言,真的要的話以後再設定吧。
技術上,我遇到的第一個問題就是:
原本Hexo能用的Block Quote完全不能用。
也就是說像是{% asset_img front.png title %}
這種方式插入圖片的方式完全失效了。同理,{% blockquote %}
等等用法也要全部調整一遍。
也就是說插入圖片的方式要改回markdown的方式或是html的圖片,也就是
|
|
如果圖片要改大小也只能用
|
|
話是這麼說,hugo在官網中有提到,Shortcodes跟hexo的Block Quote真的非常像,像是插入圖片能用這樣寫取代(實際使用要拿掉左括號的-
,這是避免在這篇文章被渲染qq)
|
|
甚至也能插入youtube影片
|
|
在統合文章的時候也發現,在hexo裏居然可以用<shift+enter>
的方式來進行換行(Line Breaks)。但是在hugo裏面就很愉快的被打臉了XD,因此在轉換的時候,過去的排版全部亂套了。hugo仍然要求換行用兩個空白鍵+Enter來換行,也就是產生一個<br>
。
在網址內引用部分,也是從hexo的寫法
|
|
改寫成hugo的Shortcodes
|
|
在「閱讀更多」方面,hexo使用了<!-- more -->
做為分隔,而hugo使用了<!--more-->
。差在more左右的空格有無。並且我發現沒有寫more的話,在home preview會出現渲染錯誤的問題(我還沒找到解法)。
在引用圖片上,文章的目錄架構會是
|
|
若是要讓圖片同時在index page以及內文中出現,原本hexo語法會是
|
|
在hugo中,要用絕對路徑引用才會讓圖片同時在內文以及index page不失效
|
|
Github update
更新github上的網頁也很簡單,首先先產生靜態資料
|
|
比hexo的hexo g
少很多,耶。
接著進到public
資料夾,然後初始化,上傳
|
|
最後我直接使用了別人的deploy codeXD,但我有做了點更改。
|
|
儲存成deploy.sh
然後chmod +x deploy.sh
,執行就能動了。