hexo搭建個人博客

hexo搭建個人博客

微信公衆號:IT程序猿進化史


前言

最近突然心血來潮想要搭建自己的博客,就去調研了幾種方案:

  • 租個服務器。在上面搭建網站,數據庫,優點是可以自己隨時備份修改,很方便;缺點是花銷比較大,不適合學生黨,同時需要自己維護,而自己主要目的是去寫文章,而沒有精力去維護,所以這種方案Pass.
  • 使用國內CSDN, 博客園都知名博客網站。這種方法的優點是隨時隨地都可以寫文章,而且只要專注於文章就可以,不用考慮維護的事情,缺點的話就是他們的網站總是摻雜着各種廣告,視覺效果。。。差強人意。
  • 使用github, 利用一些現有的博客平臺,比如node.js的Hexo,直接將本地.md文檔生成靜態的html文件作爲靜態頁面,並將其部署到gihub pages服務器上。本文采用了這種方法。

環境

  • 安裝git
  • 安裝node.js
  • 安裝hexo

安裝 hexo

  1. 新建目錄blog(此處存放你的博客工程)
  2. 進入該目錄下並執行命令

    
    
    1
    
    
    npm install -g hexo-cli
  3. 在blog目錄下新建目錄hexo,並在裏面進行hexo初始化

    
    
    1
    
    
    hexo init hexo
  4. 等一切安裝成功之後,執行命令

    
    
    1
    
    
    hexo server

出現下圖所示,即爲成功

可以看到已經成功運行在了本地


1

http://localhost:4000/

打開網站即可預覽到我們的頁面

Hexo 配置

_config.yml 文件配置

關於這個配置文件裏的內容,官網有詳細介紹,本人在這裏只介紹比較重要的幾個:

  1. deploy, 配置這部分是爲了能夠將博客內容發佈到線上。

    deploy:
        type: git
        repository: [email protected]:你的git用戶名/你的git用戶名.github.io.git 
        branch: master
    
  2. url, 由於在blog下又建立了一個hexo,所以如果實在本地的話需要將url設置成

    url: http://你的git網址/hexo
    root: /hexo/ 
    

    但是當你上傳到服務器時,需要改回

    url: http://你的git網址/
    root: /
    
  3. 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.

後來經過在網上查了很多資料發現有兩種可能的原因:

  1. git版本過高,將版本改成git 1.9版本的即可解決(但是本人沒有解決,但是對其他很多人有效)
  2. 由於當時生成公鑰的命令是

    ssh-keygen -t rsa -C “你的git用戶名@github.com”
    

    沒有加sudo, 生成的公鑰是當前用戶的,然而,自己在部署到服務器時爲了避免文件訪問權限問題直接使用了

    sudo hexo deploy
    

    該命令在執行的時候會去讀取root 用戶的公鑰,然而顯然,root用戶下還沒有生成對應的公鑰信息,所以一直會報公鑰權限問題。
    解決方法是生成公鑰的時候也在前面加上sudo

    sudo 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程序猿進化史


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章