使用Github Pages和Hexo構建個人博客


Github Pages可以創建免費的靜態站點,支持自帶主題、支持自制頁面等,並且可以使用Jekyll或者Hexo等靜態博客框架進行管理。 獨立博客是博客園等博客平台之外的一個良好補充,相比使用虛擬主機或者雲服務器搭建站點,靜態博客管理和使用簡潔,使用Github Pages搭建博客不失為一個好選擇。

使用Github很快就可以搭建一個站點,可以分為以下幾步:

  • 在Github創建對應倉庫

  • 配置Jekyll或者Hexo環境

  • 設置主題,安裝評論等插件

 

一、使用Github創建站點

1.創建一個新的倉庫

創建Github Pages比較簡單,只要在Github創建一個倉庫就可以,這個倉庫命名需要遵循一定規則,其格式必須為:yourusername.github.io。

現在新建一個repository,名稱設置為bingyue.github.io。

2.添加一個頁面

Github Pages支持使用master分支或者gh-pages分支,如果是某個倉庫的wiki頁面,需要設置文檔到gh-pages 分支中,個人站點使用默認的master分支就可以。

把工程Clone 到本地,在根目錄創建一個index.html

<!DOCTYPE html>
<html>
<body>
<h1>Hello World</h1>
<p>I'm hosted with GitHub Pages.</p>
</body>
</html>

 

3.發布並預覽站點

提交新建的頁面,push到遠程倉庫,然后訪問你的站點地址就可以預覽了。

 

4.設置默認主題等

在Repository的設置頁面,可以配置域名,更改默認的主題等。

 

二、使用靜態博客框架管理站點

Gitpages支持使用Jekyll或者Hexo等靜態博客框架進行管理,與github pages綁定,可以編輯博文,生成靜態博客等。

1.選擇jekyll還是hexo

目前主流的靜態博客框架是Jekyll和Hexo, Jekyll基於Ruby實現,安裝Jekyll需要搭建Ruby環境,Hexo基於Node.Js實現。 這兩個靜態程序功能基本類似,兩個程序都有博文預覽功能,可以在本地啟動服務,默認都使用Markdown語法,另外Jekyll是Github推薦的管理程序。

實際應用中,我第一次安裝的是Jekyll,在Mac環境下配置中發現Ruby安裝繁瑣,配置Jekyll主題等需要對Ruby的基本應用有些了解,比如Gemfile/Rails等的作用,看了一下論壇的吐槽,如果是Windows環境可能會更加棘手。相比之下,Node.Js在類Uinx系統和Windows系統下的安裝和應用都比較簡單,開發同學也會比較熟悉JavaScript 。

除非對Ruby比較熟悉,推薦大家使用Hexo進行站點管理。

2.安裝Hexo環境

這里跳過了安裝Node環境的步驟。

使用下面的命令安裝Hexo:

sudo npm install -g hexo-cli

查看是否安裝:

hexo version 

初始化工程目錄:

 hexo init <yourFolder>

一些常用命令:

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

  

3.發表一篇文章

hexo new "第一篇文章"

會提示相應的輸出:

INFO Created: ~/Work/bingyue.github.io/source/_posts/第一篇文章.md

接下來編輯這篇文章:

---
title: 第一篇文章
date: 2017-03-08 11:28:45
tags:
---

歡迎來到我的博客!

  

然后發布博客,進行本地預覽:

hexo server

  

4.配置你的Hexo

Hexo默認會讀取根目錄的config.yml獲得站點信息,另外在themes/landscape中也有一份config.yml文件,配置的是站點的主題和一些個人設置。

新建一個_config.yml,更改Title等站點信息,可以參考這份說明:

# Site
title: 邴越的博客 #標題
subtitle: 紙上得來終覺淺 #副標題
description: 邴越 博客 架構 寫作 #描述
author: 邴越 #作者
language: zh-CN #語言
timezone:  Asia/Shanghai #時區

# URL 
url: https://bingyue.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 #新文章標題
default_layout: post #默認模板(post page photo draft)
titlecase: false #標題轉換成大寫
external_link: true #新標簽頁里打開連接
filename_case: 0 #把文件名稱轉換為 (1) 小寫或 (2) 大寫
render_drafts: false
post_asset_folder: false
relative_link: false
future: true
highlight: #語法高亮
  enable: true
  line_number: true #顯示行號
  auto_detect: true
  tab_replace:

# Category & Tag
default_category: uncategorized #默認分類
category_map:
tag_map:

# Date / Time format
date_format: YYYY-MM-DD
time_format: HH:mm:ss

# Pagination 
per_page: 10 #每頁文章數, 設置成 0 禁用分頁
pagination_dir: page #分頁目錄

 

具體的配置可以查看這個說明:https://hexo.io/zh-cn/docs/configuration.html

截止目前,我們所做的修改都是在本地,並沒有推送到遠程倉庫,接下來怎么讓其他人看到我們發布的博客呢?

 

5.關聯Hexo與Github

(1)安裝擴展

需要安裝hexo-deployer-git擴展:

npm install hexo-deployer-git --save

  

(2)修改_config.yml文件

添加類似如下的部署配置:

deploy:
  type: git
  repo: git@github.com:bingyue/bingyue.github.io.git
  branch: master

  

執行

hexo clean  
hexo gegerate
hexo deploy

  

這時候你再查看,會發現相關的文件已經被push到對應的git分支上。

重新訪問https://bingyue.github.io,會發現已經更新為新的主題。

 

 

三、更改博客主題,設置評論插件等

1.選擇主題

以安裝Next主題為例, 從Next的Gihub倉庫中獲取最新版本:

cd your-hexo-site
git clone https://github.com/iissnan/hexo-theme-next themes/next

  

打開_config.yml做如下修改:

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

  

2.配置評論插件

Hexo默認使用的評論插件是Disqus,Disqus在國內可能不太穩定,這里配置使用多說的評論框,具體參考多說文檔

在_config.yml中添加多說的配置:

  duoshuo_shortname: 站點的short_name

這里的short_name可能會讓人困惑,這是你注冊多說賬戶時的二級域名,多說二級域名是指你注冊多說時,填寫的abc.duoshuo.com中的abc部分。 

多說作為一個社會化評論系統,是有自己管理后台的,需要進行開發者注冊,點進這個注冊頁面你就知道了:http://duoshuo.com/create-site/

接下來修改themes\landscape\layout_partial\article.ejs模板,替換下面的文件

 <% if (!index && post.comments && config.disqus_shortname){ %>
  <section id="comments">
    <div id="disqus_thread">
      <noscript>Please enable JavaScript to view the <a href="//disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    </div>
  </section>
  <% } %>

  

改為

<% if (!index && post.comments && config.duoshuo_shortname){ %>
  <section id="comments">
    <!-- 多說評論框 start -->
    <div class="ds-thread" data-thread-key="<%= post.layout %>-<%= post.slug %>" data-title="<%= post.title %>" data-url="<%= page.permalink %>"></div>
    <!-- 多說評論框 end -->
    <!-- 多說公共JS代碼 start (一個網頁只需插入一次) -->
    <script type="text/javascript">
    var duoshuoQuery = {short_name:'<%= config.duoshuo_shortname %>'};
      (function() {
        var ds = document.createElement('script');
        ds.type = 'text/javascript';ds.async = true;
        ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
        ds.charset = 'UTF-8';
        (document.getElementsByTagName('head')[0] 
         || document.getElementsByTagName('body')[0]).appendChild(ds);
      })();
      </script>
    <!-- 多說公共JS代碼 end -->
  </section>
  <% } %>

 

重新發布站點,點開一篇文章會看到評論框已經加載出來了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM