一、前言
這篇文章僅僅是自己對這段時間玩Hexo的個人意見,同時也算是某一個階段的記錄。
二、我爲什麼想要搭建一個博客
首先,現在已經有非常多的博客平臺,如CSDN、簡書、博客園、知乎······等等等等,開箱即用的功能,良好的SEO,我爲什麼還想要自己折騰呢?如果說是想要提升一點什麼或者學到一些什麼,其實可以說是反其道而行之了。或者說可以簡而言之:不甘於平凡,但又沒什麼能力。
外觀
想搭建一個博客平臺的念頭是從Typecho主題開始的——小姐姐的博客很好看(Windows Terminal終端安裝與美化),對這樣一個這麼好看的博客系統,有哪個對小姐姐沒有抵抗力的男孩子能不心動呢!
大部分博客平臺雖然可以一定程度上的定製化,但是相比之下可以說簡直沒有可比性。
- 論佈局,可以說是·······一言難盡。兩邊有太多繁雜而又用處不是很大的信息,特別是廣告如果不用插件可能······,而可能是剛需的“跟隨式”側邊欄目錄卻又不夠完善或者說······。
- 論主題,我目前最喜歡的md主題是vue的主題配色,具體什麼樣的可以參見Vue官網,這款主題清新、優雅、簡約·······等等等等列舉不完。而除了GitHub的README.md,別的主題都不是太好看個人感覺,尤其是行內代碼塊。
功能
大部分博客平臺發現其實都只有歸檔和分類這兩個管理博客的維度,而大佬們搭建的博客裏,起碼有歸檔、分類、標籤這三個維度。其中對教主來說比較剛需的是分類維度和標籤維度:分類約束了一篇文章應該屬於的範疇,類比類,而標籤反映了一篇文章可能具有的性質,類比接口。
如果說換一個角度思考,歸檔是爲了查找更新和維護,分類是爲了管理,那標籤則是爲了吸引人。對於歸檔教主並不是剛需,我不是太擅長於根據時間線來進行查找(這裏的“不是很擅長”應該理解爲 “be not very goog at”)。
需求
所以說我是非常迫切的想要搭建一個自己的博客的,而且僅僅希望滿足如下的功能:
- 外觀簡潔美觀
- 自動跟隨的側邊欄目錄
- 完全的md語法支持
- 至少具有分類和標籤兩個文章維度
- 類 Vue 主題
- ···
三、靜態站點生成器的選擇
VuePress
因爲比較喜歡Vue的主題,那麼第一個嘗試的肯定也是這款了撒,雖然之前就根本不知道尤大佬還開發了這麼一款博客系統。但是VuePress似乎對開箱即用做的還不是很好,而且我在渲染任務列表時還出現了問題,以下的md內容居然無法正常渲染:
- [x] 已完成
- [ ] 未完成
但不得不說這款站點是好看,真的好看,真的好看,真的好看!
目前比較好看的主題教主目前所知有:
- vuepress-theme-ting,小姐姐寫的主題,是非常nice的,但是對對小姐姐沒有抵抗力的孩子來說還是有點太過唯美。
- vuepress-theme-reco,這款主題感覺還是挺好的,提供了一些VuePress本身沒有的開箱即用的功能,並且配有比較完善的文檔。
對於在VuePress官網中的標籤:
簡潔至上
以 Markdown 爲中心的項目結構,以最少的配置幫助你專注於寫作。
以及尤大佬在和Hexo做對比時提到的:
Hexo
Hexo 一直驅動着 Vue 的文檔 —— 事實上,在把我們的主站從 Hexo 遷移到 VuePress 之前,我們可能還有很長的路要走。
至少在目前而言,我感覺如果需要用VuePress來搭建個人博客,還是需要經歷不少的折騰的。而從另一個角度講,教主還是非常喜歡這款博客的就像初戀對象一樣。單純就主題本身而言:
- 高度自由——甚至可以用Vue本身來寫文章。
- 主題依賴——個人感覺VuePress使用主題要比Hexo主題麻煩不少。
Hexo
Hexo是教主體驗時間最長的一款博客系統,文檔完善,主題豐富,開箱即用·······所以也就單單就主題而談。
其中教主嘗試過的主題比較喜歡的有:
- hexo-theme-butterfly,首先這款主題恰好符合了我所有的需求,其次即便切換成中文簡體但部分地方還是有點那個啥,最後就是配色的對比度不太高(其實折騰起來也不是太困難,只是懶)。
- hexo-theme-sakura,這款主題是在B站上看到的,就封面而言簡直美的無話可說。
- hexo-theme-matery,matery目前的使用歡迎度還是非常高的,就一手README.md就堪比文檔,羣裏也十分熱鬧並有大佬非常完善的保姆級教程,可以說“談笑有鴻儒,往來無白丁”~
對比
相比之下教主折騰Hexo+matery的時間更長一些。
VuePress | Hexo | |
---|---|---|
優勢 | 1. Vue驅動,可頂制度非常高。 2. 清新自然,配色養眼。 |
1. 開箱即用,配置簡單。 2. 文檔完善,主題豐富。 |
不足 | 1. 文檔不太全,主題不太多。 2. 配置不是十分方便。 |
1. 不是特別的清新唯美。 2. 個性化定製需要一些基礎。 |
以配置的方式舉例:
VuePress的配置通常需要導出爲一個JSON對象,而Hexo只需要在Yaml文件中配置即可。起初教主也並不是很喜歡Yaml格式的,認爲相較於properties或者xml而言總感覺Yaml不夠規範不敢接受。但是當配置一旦多起來後,JSON簡直是一種災難不忍直視,而Yaml文件卻依舊可讀性很高。或者說JSON天生適合數據的傳輸。
以md渲染舉例:
vue主題清新唯美,不接受反駁。
四、博客的部署
一鍵部署
VuePress和Hexo都提供了簡單方便的一鍵部署且配有完整的文檔支持。
教程
hexo-matery主題的羣裏面有位大佬提供了從使用Git到博客優化的保姆級教程:https://yafine-blog.cn/。
注意事項:
- GitHub的Pages服務需要的倉庫名爲:
<USERNAME>.github.io
,而Gitee的Pages服務需要的倉庫名爲:<USERNAME>
。 - Gitee的Pages服務免費版需要手動部署(倒也不是多麻煩的事),而且不支持綁定自定義域名(適合作備用站點)。
備案
備案也不是剛需,只是圖牀總是需要的吧,而大部分的可提供免費對象存儲的空間和流量的圖牀,如七牛雲、又拍雲等等等等都需要已備案的域名。
教主趁去年優惠的時候買過阿里雲的ECS和域名,只需要備案接入即可。而且就目前來看,有一個服務器和域名起碼可玩性要高很多的。
源碼上傳
將源碼保存到倉庫中總是非常有必要的,爲了避免和項目雜糅,教主在Gitee的Pages倉庫下新建遠程分支source
,並且在本地切換(新建)source
分支,然後本地使用瞭如下的目錄結構:
/.../source/ # 源碼目錄
|-- .git/ # 倉庫信息
|-- hexo-matery-icefery # 項目目錄
| |-- .deploy_git/ # 部署信息
| |-- scaffolds/
| |-- source/
| |-- themes/
| |-- _config.yml
| |-- package.json
|-- README.md # README
在git push
時要保證本地分支和遠程分支一致。
git branch <BRANCH_NAME> # 查看或新建本地分支
git checkout <BRANCH_NAME> # 切換本地分支
五、總結
很遺憾的是,教主已決定刪除用於Pages的主分支,僅保留源碼分支。
收穫
如果說就博客系統而言那還的確沒啥收穫,因爲保姆級的教程是現成的,畢竟對於玩hexo來說,教主難以深入、無法淺出。但是折騰的過程中必然伴隨着要接觸很多有的沒的,比如對象存儲、CDN、防盜鏈、SSL證書、評論交互······等等等等的,畢竟跟大佬交流時知識的廣度總是指數型增長的。
遺憾
其實不想再折騰的主要原因還是太懶,然後就不想再維護。對於目前而言,有些地方折騰所需要的成本,對教主來說還是蠻高的。另一方面教主目前還是太菜了真的太菜了,連個.ejs
文件都不知道是什麼,哎太難了。摘錄B站評論區看到一句話:
若無力駕馭,自由便是負擔。
就比如說上網課,課是自己選的總不能······,教主也不得不把在回家前在學校好不容易裝的Arch又重新換回了Win10。如果說接下來的時間必然要忍受Win的什麼什麼倒也不必,只能說就算是生活也總也有它不得已的地方吧,而且教主也的確沒有駕馭Linux的能力,只能說是好玩吧。
或者說,等課結束了也應該不會再裝Arch了吧,折騰完了也該找個中下游的發行版穩定下來,就比如聽說好像Manjaro最新版已經能夠完全不用去管N卡了。
又或者說接踵而來的還有其它一些不得不用Win的因素,總之也都是在提醒我:條件不足以使用Mac,能力不足以駕馭自由。