使用hexo+github pages 搭建靜態博客(從jekyll遷移到hexo)

筆者以前使用的 jekyll+github pages 的方式搭建博客, 后來從jekyll 遷移到了 hexo, 并不是說 jekyll 比 hexo 差.技術沒有好壞, 只有合不合適, 我完全是自己折騰著玩兒. 在遷移的過程中也遇到一些問題, 下面就簡要說明一下 hexo + github pages 的搭建步驟. 認真閱讀原文, 你將能獨立搭建一個靜態博客.

我們分為兩個步驟講解然后講解一下如何使用主題(next):

一, 使用hexo建站

二, 部署到 github pages

三, next 主題的使用

使用hexo建站

根據官方文檔你可以很輕松的搭建一個靜態博客網站.

幾個hexo常用的命令:

hexo new "postName" #新建文章
hexo new page "pageName" #新建頁面
hexo generate #生成靜態頁面至public目錄
hexo server #開啟預覽訪問端口(默認端口4000,'ctrl + c'關閉server)
hexo deploy #將.deploy目錄部署到GitHub
hexo help  # 查看幫助
hexo version  #查看Hexo的版本

命令簡寫如下:

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy
hexo g -d == hexo g + hexo d

部署到 github pages

部署到 github pages 也非常簡單(后面會講到), 再部署之前我們還有很多準備工作要做.

申請github賬號.

申請步驟按照提示完成即可

新建倉庫

ssh0.png

倉庫名稱有著嚴格的規范,如下:

自己的github賬號名稱.github.io

例如,我的github賬號為 zhangsan, 那么倉庫的命名<mark>一定是</mark>: zhangsan.github.io

配置SSH

首先我們普及一下 SSH和https的區別:

  1. SSH可以隨意克隆github上的項目,而不管是誰的;而后者則是你必須是你要克隆的項目的擁有者或管理員,且需要先添加 SSH key ,否則無法克隆。
  1. https url 在push的時候是需要驗證用戶名和密碼的;而 SSH 在push的時候,是不需要輸入用戶名的,如果配置SSH key的時候設置了密碼,則需要輸入密碼的,否則直接是不需要輸入密碼的。
配置的SSH的方式

如下圖:

ssh1.png

在左側功能區選擇SSH and GPG keys, 在右側 點擊 add new SSH 按鈕.會出現如下圖

ssh2.png

title: ssh的名稱, 可以隨便寫.
key: 公鑰.

如何生成公鑰呢? 步驟如下:

1、首先需要檢查你電腦是否已經有 SSH key

運行 git Bash 客戶端,輸入如下代碼:

$ cd ~/.ssh
$ ls

這兩個命令就是檢查是否已經存在 id_rsa.pubid_dsa.pub文件,如果文件已經存在,那么你可以跳過步驟2,直接進入步驟3。

2、創建一個 SSH key

$ ssh-keygen -t rsa -C "your_email@example.com"

代碼參數含義:

-t 指定密鑰類型,默認是 rsa ,可以省略。
-C 設置注釋文字,比如郵箱。
-f 指定密鑰文件存儲文件名。

3、添加你的 SSH key 到 github上面去

首先你需要拷貝 id_rsa.pub 文件的內容,你可以用編輯器打開文件復制,也可以使用終端打開, 這里就是用終端打開.

cat id_rsa.pub

終端會顯示該公鑰的密文, 賦值之后粘貼到上圖中的key中即可.

4、測試一下該 SSH key

在git Bash 中輸入以下代碼

$ ssh -T git@github.com

如果出現如下信息則證明操作成功:

Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

至此第二步中添加 SSH 完成.下面開始將第一步建的站部署到github pages 上. 只需一步即可完工:

<mark>切換到hexo博客根目錄, 運行hexo g -d即可</mark>

如何使用 next主題

終端切換到hexo博客根目錄,然后執行如下命令:

$ git clone https://github.com/theme-next/hexo-theme-next themes/next

然后在站點配置文件中做如下修改:

theme: next

然后重啟 hexo 服務(先停止: ctrl + c, 然后運行 hexo s), 重新生成靜態頁面(hexo g)

hexo 的 next主題的配置, 在next官網上介紹的十分詳細.

搭建博客過程中遇到的問題

一. 博客中的圖片無法顯示.

解決方式:
將圖片資源全部存放在 source 目錄下的 assets(自己建的文件夾)文件夾中. 在博客中使用md語法引用圖片 [圖片上傳失敗...(image-c2877-1562033829045)] 如果有下級目錄, 按照目錄結構寫即可.

二. 按照next官網教程配置local_search無法搜索.

原因:發布的博文中有特殊字符(非utf-8字符集),主要是由于在直接復制網上資料時錯誤的將特殊字符復制進來了, 你可以將博文先全部刪除, 只留一篇測試博文, 然后重新發布一下,試試搜索功能是否正常. 或者直接訪問 http://localhost:4000/search.xml, 然后打開元素檢查來查看具體的錯誤.(錯誤定位有可能不準確).

解決方法:找到特殊字符集, 然后刪除

三. 如何在文章列表中顯示摘要.

在 next主題中配置顯示摘要, 配置如下, 但是不起作用.

auto_excerpt:
  enable: true
  length: 150

解決方法: 使用``來隔斷摘要和正文, 在博文中之前的會被自動顯示成摘要, 之后的要在點擊read more之后才會顯示

四. 寫完博客之后, 發布但是不顯示最新發布的博客

經過分析, 錯誤原因是博客開始的寫法不對, 錯誤寫法如下:

---
layout:post
title:"使用hexo+github pages 搭建靜態博客(從jekyll遷移到hexo)"
date:2019-05-20 10:10:03
categories:
 - Skills
tags:
 - Hexo
---

以上寫法是錯誤的, 在layout:post 冒號后要加空格, 正確的寫法如下:

layout: post
title: "使用hexo+github pages 搭建靜態博客(從jekyll遷移到hexo)"
date: 2019-05-20 10:10:03
categories:
 - Skills
tags:
 - Hexo
---
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容