1. 程式人生 > >使用Hexo + GitHub Pages 搭建個人博客

使用Hexo + GitHub Pages 搭建個人博客

博客 tor eight edi ted 裏的 狀態 process 公鑰

一.前言

  之前是在CSDN上寫博客的,但是無奈其廣告滿天飛,還有因為個人不太喜歡CSDN博客裏的一些東西,加上看到很多技術大牛都有自己的個人博客,於是乎!便想著搭建一個自己的個人博客。其實之前寫博客還是追求於有很多人來看,以滿足自己這樣的一個欲望,後來慢慢覺得寫博客無非是記錄一下自己成長的歷程,別人看不看其實也是無關緊要的。

  就在這各樣的原因驅使下,便開始了搭建個人博客之路,第一次使用Hexo+碼雲搭建了一次博客,但是因為其總是加載不了我的博客樣式,沒辦法只好放棄了,但是過了幾天,之前的動力又突然出現了,所以就再一次踏上了搭建個人博客之路,不過這次是GitHub+Hexo了,沒想到這次是一次成功,感覺良好,並沒有像搭建時感覺那麽復雜。想著或許也有人和我一樣,所以想著寫一篇簡單的搭建教程,和大家分享一下。


二.搭建前準備

 1).安裝Git

  1.首先是下載Git(此教程中所有軟件下載安裝僅以Mac為例),下載文件的下載地址是:https://git-scm.com/download/mac ,打開頁面找到這個位置,可以在這裏選擇自己所想要的下載版本。如下圖:

技術分享圖片

  2.下載完成後,便開始安裝,安裝完成之後,可以在終端輸入命令查看版本,如果顯示則說明安裝成功。至於Git的學習資料,大家可以去官網。命令如下:

  

git --version

  3.然後創建一個全局用戶名、全局郵箱作為配置信息,這裏的user.name是你Github上的名字,user.email也是你Github註冊的郵箱。

git config --global user.name "***"
git config --global user.email "***@example.com"

 2).安裝Node

  1.首先是下載node,打開弄的官網:https://nodejs.org/en/download/ ,在官網頁面找到這個位置,選擇你所需要的系統及版本下載即可。如下圖:

  技術分享圖片

  

  2.在官網中下載完成之後,點擊安裝,然後一路next即可。安裝完成後,打開終端輸入node -v 會返回當前安裝的版本號,如下:

****MacBook-Pro:~ vincent$ node -v
v10.11.0

  然後再輸入npm -v 驗證,如下:

****MacBook-Pro:~ vincent$ npm -v
6.4.1

  如以上,便是已安裝成功。


三.搭建 Hexo 博客

  1.安裝 Hexo,在電腦中新建一個 blog 文件夾,用來存放自己的博客文件,然後在終端進入你所創建的文件夾路徑下,執行以下代碼(因為我這裏之前已經安裝了,就不展示結果了):

npm install -g hexo-cli

  2.初始化 Hexo,得到 hexo 文件夾,用於存放 Hexo 博客所有的文件,包括下面會講到的主題文件,都是在終端執行以下代碼:(如果無特別提示,以下代碼基本都在終端窗口執行相關命令)

hexo init hexo

  結果如圖:

技術分享圖片

  3. 配置 Hexo,進入 hexo 文件夾安裝依賴,部署形成的文件,分別執行以下代碼:

cd hexo
npm install
hexo generate

  結果如圖:

技術分享圖片

  4. 啟動服務器:執行以下代碼,可以看到服務器代碼是 4000

hexo server

  結果如下:

****MacBook-Pro:hexo vincent$ hexo server
INFO  Start processing
INFO  Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

  5. 打開瀏覽器輸入http://localhost:4000/ ,結果如下圖,可以看到初始化的 Hexo 博客已經搭建成功。

技術分享圖片


四.將初始化的 Hexo 博客部署到 GitHub Pages

  1. 在Github上,新建一個倉庫,倉庫名為:hexo.github.io ,如下圖所示:(這個倉庫的名稱必須嚴格按照 username.github.io 的格式來命名)

  技術分享圖片

  2. 配置 Git 個人信息:打開一個終端窗口,進入到blog路徑下,輸入下面的命令:

git config --global user.name " GitHub 用戶名 "
git config --global user.email " GitHub 郵箱 "

  3. 生成 SSH KEY,其實就是生成一個公鑰和密鑰,因為 GitHub 需要一個密鑰才能與本地相連接。執行以下命令,並連續按 3 次回車生成密鑰:

ssh-keygen -t rsa -C " 郵箱地址 "

  因為我之前已經生成了這個密鑰,這裏就不展示了。

  4.SSH KEY 生成之後會默認保存在 /Users/電腦名用戶名/.ssh 目錄中,打開這個目錄,打開名為“id_rsa.pub”文件,復制全部內容,即復制密鑰。

  5.打開 GitHub ,依次點擊 頭像-->Settings-->SSH and GPG keys-->Add SSH key,將復制的密鑰粘貼到 key 輸入框,最後點擊 Add Key ,SSH KEY 配置成功,如下圖所示:

技術分享圖片

  6.修改 hexo 文件夾下的 _config.yml 全局配置文件,修改 deploy 屬性,然後將本地 hexo 項目托管到 GitHub 上,如下圖所示:

  

deploy:
 type: git    #部署的類型
 repository: [email protected]:compassblog/compassblog.github.io.git # 倉庫地址
 branch: master    #分支名稱
 message: hexo deploy  #提交信息

技術分享圖片

技術分享圖片

  7. 執行下面的命令,安裝 hexo-deployer-git 插件,快速把代碼托管到 GitHub 上

npm install hexo-deployer-git --sava

  執行結果如下:

****MacBook-Pro:hexo vincent$ npm install hexo-deployer-git --sava
npm WARN deprecated swig@1.4.2: This package is no longer maintained
+ hexo-deployer-git@0.3.1
added 31 packages from 36 contributors and audited 5870 packages in 9.085s
found 1 low severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details

  8.執行下面的代碼命令,將 hexo 項目托管到 GitHub 上

hexo clean && hexo generate && hexo deploy

  執行結果如下:

技術分享圖片

  8.在瀏覽器中輸入 https://username.github.io/ 訪問,可以正常訪,說明博客已經部署到 GitHub 上,如下圖所示:

技術分享圖片


五.配置個人博客信息

  這一步是我覺得很重要的,因為我之前在搭建個人博客時,很多教程只是截止到上面第四步而已,但是也有比較細心的人寫了後面步驟的文章,所以還是非常感謝的(後面我會貼出這兩篇文章的地址的)。

  1.打開博客目錄,修改Hexo 全局配置文件 _config.yml,這個在第四大步的第六小步已經截圖了,這裏我只貼一下我搭建完成部署到GitHub上的此文件內容(不過有一些私人信息可能並不完全展示),內容如下:

# Hexo Configuration
## Docs: https://hexo.io/docs/configuration.html
## Source: https://github.com/hexojs/hexo/

# Site
title: 寒山道
subtitle: 合抱之木,生於毫末;九層之臺,起於累土;千裏之行,始於足下。
description: Who has seen the wind? Neither you nor I !
keywords:
author: vincent
language: zh-Hans
timezone: Asia/Shanghai

# URL
## If your site is put in a subdirectory, set url as http://yoursite.com/child and root as /child/
url: https://hsdy.github.io
root: /
permalink: :year/:month/:day/:title/
permalink_defaults:

# Directory
source_dir: source
public_dir: public
tag_dir: tags
archive_dir: archives
category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:

# Writing
new_post_name: :title.md # File name of new posts
default_layout: post
titlecase: false # Transform title into titlecase
external_link: true # Open external links in new tab
filename_case: 0
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight:
  enable: true
  line_number: true
  auto_detect: false
  tab_replace:

# Home page setting
# path: Root path for your blogs index page. (default = ‘‘)
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
  path: ‘‘
  per_page: 7
  order_by: -date

# Category & Tag
default_category: uncategorized
category_map:
tag_map:

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD
time_format: HH:mm:ss

# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repository: https://github.com/github的name/hsdy.github.io.git
  branch: master    #分支名稱
  message: hexo deploy  #提交信息


search:
  path: search.xml
  field: post
  format: html
  limit: 10000

  友情提示:如果真的想搭建一個博客,建議要動起手來,一步一步,只有真正行動了,才會發現自己錯在哪裏,本人就是在這樣的錯誤中慢慢搭建好博客的。

  特別註意:配置 *.yml 文件有嚴格的格式要求,文件裏所有的配置都是:冒號 空格 值,並且冒號是英文狀態下的輸入。而 *.yml 格式的文件是 Java 模板引擎 thymeleaf 文件,想了解的可以前往thymeleaf官網學習一下。

  3.到這裏我們在終端進入到hexo目錄下,執行以下命令來本地啟動服務器預覽博客,然後去瀏覽器地址欄訪問就會發現,Hexo 博客的基本站點信息已經配置完畢。

hexo server

六.切換博客主題

  1.安裝主題命令,在終端中運行到hexo項目目錄下執行:

  • Next 主題官方下載地址:https://github.com/iissnan/hexo-theme-next
  • Hexo 博客其他主題下載地址:https://hexo.io/themes/
  • Next 主題官方使用文檔地址:http://theme-next.iissnan.com/
 git clone https://github.com/theme-next/hexo-theme-next themes / next

  2.修改 hexo 文件夾下的主配置文件 _config.yml ,將 theme 屬性修改為 next ,修改代碼代碼如下:

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next

  4.打開hexo目錄中的 themes 文件夾下的主題文件夾next,打開主題配置文件 _config.yml,如下圖所示:

  技術分享圖片

  5.在主題文件中配置 Hexo 博客演示外觀,默認的 Hexo 樣式是 Muse ,我這裏選的是 Pesces 樣式,如下所示:

# Schemes
#scheme: Muse
#scheme: Mist
scheme: Pisces
#scheme: Gemini

  6.配置網站底部基本信息,具體配置代碼如圖:

技術分享圖片

  7.配置菜單按鈕,在主題配置文件中,找到 menu 屬性,具體配置如圖:

技術分享圖片

  8.到這裏,網站基本信息的配置基本完成,但這時候本地測試時我們會發現,打開分類、標簽、關於等幾個頁面時會顯示 404 錯誤,這是因為我們還沒有創建相應的頁面。在終端中hexo文件夾目錄下的source文件夾目錄下執行下面的命令,創建相應的頁面即可,這時候我們會發現博客目錄的 source 文件夾下已經生成了跳轉頁面的生成,如圖所示:

hexo new page categories
hexo new page tags
hexo new page about

技術分享圖片

  9.每一個分類菜單都生成了一個 index.md 初始文件,默認包含了 title 和 date 字段,我們需要給每一 index.md 文件添加上 type 字段,如下圖所示:

技術分享圖片

技術分享圖片

技術分享圖片

  10、配置搜索菜單

    (1).安裝 hexo-generator-searchdb ,在hexo項目目錄下執行下面命令:

npm install hexo-generator-searchdb --save

    (2).打開全局配置文件,新增下面代碼

search:
  path: search.xml
  field: post
  format: html
  limit: 10000

    (3).打開主題配置文件,找到 local_search 屬性,開啟本地搜索功能,如下圖所示:

技術分享圖片

  

  註:至此,算是配置的差不多了,可以執行:hexo s命令來預覽博客。


七.在 Hexo 博客發布文章並托管到 GitHub 上

  1.這也是我覺得比較重要的一步,在hexo博客目錄下執行如下命令,新建一篇博客,執行完命令後可以發現在source/_posts文件夾下多了一個你所新建的md文件。如下所示:

hexo new "Hello Hexo"

技術分享圖片

  

特別提示:Hexo 發布的文章是 Markdown 格式的文件,如沒使用過 Markdown 編輯器的同學,可以自行去學習一下 Markdown 語法,半小時基本可以掌握基本的語法了,推薦一個學習 Markdown 基本語法的網址:http://wowubuntu.com/markdown/

2.給文章添加分類和標簽,直接在所要編輯文章的頭部添加如下代碼即可,多個分類和標簽可以使用英文狀態下的句號分隔。

---
title: tags
date: 2018-10-19 12:23:21
type: tags
categories: [Hexo]
---

  3.本地啟動,在瀏覽器測試預覽文章,如圖所示:

技術分享圖片

  4.添加閱讀全文按鈕:在文章的任意位置添加下面命令即可.

<!--more-->

  5.所要發表的文章在本地預覽無誤後,在終端中執行以下命令,發布到 GitHub Pages 上,或者在WebStorm中執行。

hexo clean && hexo g && hexo d

  6、上傳成功後,在瀏覽器地址欄直接訪問自己的域名,即可看到自己編寫的文章已經發布到了 GitHub 上。並且每次發布文章到 GitHub 都需要在終端中執行下面的命令:

  • Hexo clean
  • Hexo g
  • Hexo d

八.總結

  至此,博客也已經搭建的差不多了,筆者博客地址是:https://zfy-zhang.github.io , 之前也在網上搜索了不少關於hexo + github搭建博客的文件,但大多幫助不大,但是總有比較細心的博主,這裏比較感謝孔乙己 的兩篇博文,給我帶來了很大的幫助,所以我最後博客的搭建成功還是非常感謝這位博主的。

  搭建完博客之後的感受,還是認為很多事情要自己親手去做,這樣才能發現更多的問題,紙上談兵永遠解決不了問題。就像看書一樣,不動筆的看書或許很多時候意義並不大,當你用筆記錄了你看書後的一些問題,或者做一個學習筆記,其效果也是完全不一樣的,這或許就是所謂的:好記性不如爛筆頭吧。

  如果有讀者搭建博客中遇到問題,可以聯系筆者,聯系方式在我個人博客中的關於我中可見。

參考:基於 Hexo + GitHub Pages 搭建個人博客,基於 Hexo + GitHub Pages 搭建個人博客(二)

版權聲明:尊重博主原創文章,轉載請註明出處 https://www.cnblogs.com/hsdy


使用Hexo + GitHub Pages 搭建個人博客