Github + Hexo 免費搭建靜態博客站點#01

臨夜寫稿,將一直規劃很久遲遲沒有動筆的這一系列落實,也為今日清晨就要舉辦的前端社區活動做干貨分享準備。我的這個學習模型,每當有一個技術主題出現,常常伴隨著以下幾個

  • 線上社區宣傳主題
  • 博客寫作
  • 加班加點的制作相關 ppt
  • 微信訂閱號的文章推送配合并群發宣傳

每一次的技術分享都走遍了所有流程,回首看來,著實挺累,但也還算值得。

這一系列便來講講 Github Pages+ Hexo 搭建專屬靜態博客站點。

我的博客模板

1 博客與靜態博客?

正如我之前的這篇文章 《如何寫一篇優質的博客》 畫圖所示,網絡博客在短短的幾十年間得到了巨大的普及,傳遞著每一個故事。博客有一個最忠實的群體,那就是發明他們的人:程序員,或者叫做極客、黑客和軟件工程師更能生動的形容他們對新技術的激情。

寫博客的好處是我們用博客表達自己、升華自己。在我們學會寫博客的同時還能提升我們的演講、辯論能力。寫博客的前期準備便需要我們能夠對自己、對博客主題進行明確的定位以及對博客敘述的把控,達到最好的效果。

Weblog = Web + Log;

那靜態博客是什么?通俗來講,靜態博客站點便是沒有數據庫沒有后臺交互的純前臺博客站點,哪怕是評論系統也是由第三方提供數據支持。靜態博客站點常常作為 HTML 頁面出現,可用博客制作器制作,Hexo 便是其中之一。相比有數據庫有后臺交互的動態博客站點來說,靜態博客站點有如下好處:

  • 省錢。靜態網站占用的系統資源少。如果掛到github pages上,只要注冊一個域名就可以了。
  • 速度快。不經過php解析器,不用數據庫,速度自然比動態網站快
  • 安全。由于靜態網站的簡潔,免疫很多web攻擊方式。
  • 服務器端配置簡單。只需要一個web server(apache、nginx)。
  • 非常容易維護。

Git、Github 和 Github Pages?

Git 是一個版本控制系統,可以用來隨著時間變化跟蹤一個項目中文件的改變。Git 代表性的功能就是記錄文件有什么改變、誰做出的改、改變者對這次改變做出了怎樣的闡述和說明等。Git 主要被各類軟件開發項目所使用。

如下圖所示,每一個文件代表著一次“保存”,沒有了 Git,你就不能隨意退回到曾經的某次修改之中。

有了 Git,改變將是多方向的,每一次修改都會得到保存,每一個保存都可以引發新的時間線,版本回退、分支管理、協作開發等功能都有了發展條件。

--everything-is-local

在基于 Git 的眾多管理系統中, Github 是最突出的一個。Github 上有成千上萬激動人心的卓越項目,我們可以輕松的下載項目源代碼或
克隆這個項目到自己的倉庫并進行自己的開發。目前最火的開源項目便是 freeCodeCamp,一個 JS 全棧在線學習平臺。

Github Pages 是面向用戶、組織和項目開放的公共靜態頁面搭建托管服 務,站點可以被免費托管在 Github 上,你可以選擇使用 Github Pages 默 認提供的域名 github.io 或者自定義域名來發布站點。Github Pages 支持自動利用第三方靜態站點生成工具生成站點,也同樣支持純 HTML 文檔,將你的靜態站點托管在 Github Pages 上是一個不錯的選擇。

Hexo?

有很多靜態站點的主題可供我們選擇,根據這些主題所用的開發語言可以分為如下幾類,可見我這里選擇 Hexo 的原因在于 Hexo 基于 Node.js ,與我的前端技術棧相匹配且有一定的用戶量,主題倉庫里會得到很多及時的更新。

  • Ruby:Jekyll,Octopress、Middleman
  • Node.js:Hexo、Metalsmith、Wintersmith
  • GO:Hugo
  • Python:Pelican

開始實戰

搭建 Node.js 開發環境

官網下載:https://nodejs.org/zh-cn/

Node.js?是一個基于Chrome V8 引擎的 JavaScript 運行環境。 Node.js 使用高效、輕量級的事件驅動、非阻塞 I/O 模型。Node.js 之生態系統是目前最大的開源包管理系統。Hexo 博客制作器需要 node 和 npm 的環境。

安裝 Git 客戶端

官網下載:https://git-scm.com/

一般來說,Linux 和 MaxOS 都會默認集成 Git 的功能,進行版本控制。而在 Windows 下,常常需要下載 Git 客戶端 -- Git Bash 來進行命令行操作。

安裝過程中一路默認即可。

解決 git bash 中 node、npm 命令不存在的問題

安裝完 Node.js 和 Git,發現在 Git Bash 中輸入 node -vnpm -v 提示命令不存在的報錯信息,是我們在 Windows 下沒有鏈接環境變量的緣故。打開環境變量的設置,在 PATH 變量后加入 Node 安裝的目錄即可。

安裝初始化 Hexo

現在有了 Node 的 js 環境和 Git Bash 提供的命令行環境,開始著手安裝 Hexo。

npm install -g hexo

以上命令會用 npm 的 node 包管理器將 hexo 安裝到本地,-g 參數表明安裝目錄為本地的全局 npm 包中,而不是某個項目的 npm 包中。這時我們就可以使用 hexo 命令了。

新建一個文件夾,并在這個文件夾中初始化 Hexo 站點。

mkdir test
cd test
hexo init

初始化過程較為緩慢,hexo 將會把核心站點倉庫從遠程服務器拉到本地,并默認配置好 landscape 主題,這個主題可以根據自己的愛好來去官網主題倉庫挑選。hexo init 命令會在當前文件夾下生成如下目錄:

.
├── .deploy #需要部署的文件
├── node_modules #Hexo插件
├── public #生成的靜態網頁文件
├── scaffolds #模板
├── source #博客正文和其他源文件,404、favicon、CNAME 都應該放在這里
| ├── _drafts #草稿
| └── _posts #文章
├── themes #主題
├── _config.yml #全局配置文件
└── package.json

有了 Hexo 的本地博客站點,在可以進行快速的博客發布前,我們還得配置當前目錄下的 _config.yml 文件,具體配置及簡介如下。

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

# Site # 站點信息
title: 韓亦樂の博客集 # 標題
subtitle: 做最好的自己,影響該影響的人 # 副標題
description: 韓亦樂の博客集 # 站點描述,給搜索引擎看的
author: 韓亦樂 # 作者
email: hylerrix@gmail.com # 電子郵箱
language: zh-cn # 語言
timezone:

# URL # 鏈接格式
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://hylerrix.github.io/Blog # 網址
root: /Blog/ # 根目錄
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: false # 在新選項卡中打開連接
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:

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

# Archives
# 2: 開啟分頁
# 1: 禁用分頁
# 0: 全部禁用
archive: 2
category: 2
tag: 2

# Server # 本地服務器
# port: 4000 # 端口號
# server_ip: localhost # IP 地址
# logger: false
# logger_format: dev

# 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 # 每頁文章數,設置成 0 禁用分頁
pagination_dir: page

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: freemind.386 # 主題
plugins: # 插件,例如生成 RSS 和站點地圖的
- hexo-generator-feed
- hexo-generator-sitemap

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: git@github.com:hylerrix/Blog.git
  branch: gh-pages

配置好

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy
hexo init Blog
cd Blog
npm install hexo-server --save
npm install hexo-deployer-git --save
git clone git@github.com:blackshow/hexo-theme-freemind.386.git themes/freemind.386
rm -rf themes/landscape
vim _config.yml

選擇 Hexo 主題

Hexo 拓展

  • 插件之向百度主動提交鏈接
  • Hexo 第三方評論系統

Hexo插件之百度主動提交鏈接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容