hexo搭建個人博客
微信公衆號:IT程序猿進化史
前言
最近突然心血來潮想要搭建自己的博客,就去調研了幾種方案:
- 租個服務器。在上面搭建網站,數據庫,優點是可以自己隨時備份修改,很方便;缺點是花銷比較大,不適合學生黨,同時需要自己維護,而自己主要目的是去寫文章,而沒有精力去維護,所以這種方案Pass.
- 使用國內CSDN, 博客園都知名博客網站。這種方法的優點是隨時隨地都可以寫文章,而且只要專注於文章就可以,不用考慮維護的事情,缺點的話就是他們的網站總是摻雜着各種廣告,視覺效果。。。差強人意。
- 使用github, 利用一些現有的博客平臺,比如node.js的Hexo,直接將本地.md文檔生成靜態的html文件作爲靜態頁面,並將其部署到gihub pages服務器上。本文采用了這種方法。
環境
- 安裝git
- 安裝node.js
- 安裝hexo
安裝 hexo
- 新建目錄blog(此處存放你的博客工程)
-
進入該目錄下並執行命令
1npm install -g hexo-cli -
在blog目錄下新建目錄hexo,並在裏面進行hexo初始化
1hexo init hexo -
等一切安裝成功之後,執行命令
1hexo server
1
|
http://localhost:4000/
|
打開網站即可預覽到我們的頁面
Hexo 配置
_config.yml 文件配置
關於這個配置文件裏的內容,官網有詳細介紹,本人在這裏只介紹比較重要的幾個:
-
deploy, 配置這部分是爲了能夠將博客內容發佈到線上。
deploy: type: git repository: [email protected]:你的git用戶名/你的git用戶名.github.io.git branch: master
-
url, 由於在blog下又建立了一個hexo,所以如果實在本地的話需要將url設置成
url: http://你的git網址/hexo root: /hexo/
但是當你上傳到服務器時,需要改回
url: http://你的git網址/ root: /
-
theme, 主題設置
在hexo路徑下有一個叫做themes的文件夾,裏面存放了你所擁有的themes主題模版文件,這些模版都可以從git上進行下載,剛開始創建項目的時候默認是是landscape。如果想要更改博客主題,只要把對應的主題模版下載到該目錄並將_config.yml中的themes設置如下theme: landscape(你下載的模版文件夾名)
相關命令
靜態文件生成
每次修改博客或配置文件後記得執行以下命令進行更新
hexo generate
部署到服務器
部署到遠程服務器執行以下命令
hexo deploy
如果失敗,有可能是因爲沒有安裝git部署器,即hexo/node_moudles下沒有hexo-deployer-git,如果是這種情況,可以進入hexo後執行以下命令
npm install hexo-deployer-git –save
配置過程中遇到的坑
權限問題
在往git上部署過程中一直出現
Error: Permission denied (publickey). fatal: Could not read from remote repository.
後來經過在網上查了很多資料發現有兩種可能的原因:
- git版本過高,將版本改成git 1.9版本的即可解決(但是本人沒有解決,但是對其他很多人有效)
-
由於當時生成公鑰的命令是
ssh-keygen -t rsa -C “你的git用戶名@github.com”
沒有加sudo, 生成的公鑰是當前用戶的,然而,自己在部署到服務器時爲了避免文件訪問權限問題直接使用了
sudo hexo deploy
該命令在執行的時候會去讀取root 用戶的公鑰,然而顯然,root用戶下還沒有生成對應的公鑰信息,所以一直會報公鑰權限問題。
解決方法是生成公鑰的時候也在前面加上sudosudo ssh-keygen -t rsa -C “你的git用戶名@github.com”
hexo generate問題
在hexo generate中出現了
TypeError: Cannot read property 'offset' of null
原因是因爲hexo 目錄下的_confing.yml 和 主題模版文件中的_confing.yml 有關時區配置不一致或者主題模版文件中沒有配置時區
解決辦法如下:
timezone: Asia/Shanghai
建議
備份
由於git上上傳的是通過hexo生成的靜態文件,並不是原生的.md文件,這意味着一旦你的本地工程文件丟失,很有可能無法找回你的文章。所以本人建議將/hexo/source目錄下的文件進行備份,無論是自己本地備份還是上傳的git備份都是可行的辦法。
擴展
打賞功能
在主題模版配置文件中,添加如下:
reward_comment: 堅持原創技術分享,您的支持將鼓勵我繼續創作!
wechatpay: /圖片路徑/微信支付二維碼圖片
alipay: /圖片路徑/支付寶支付二維碼圖片
閱讀全文
有的時候我們希望在主頁不要全部顯示文章內容,希望在合適的地方截斷,並提示顯示閱讀全文,如下圖所示
我們可以在文章內部希望截斷的地方添加
//主頁顯示內容
<!--more-->
//隱藏內容
瞭解詳情請到:daryl's blog
微信公衆號:IT程序猿進化史