作為第一篇記錄,圖片等之後確認圖床再補上。
官網 https://hexo.io/
安裝 Git 和 Node.js
主要參者作者:lyyybz、Xuanwo
必需先裝好 Git 和 Node.js 。
安裝和設定 Git
Git 是一款免費、開源的分佈式版本控制系統。
Git 的安裝詳細可參考 在 Windows 平台必裝的三套 Git 工具 一文,在此簡述必要的動作。
到 官網,點擊 Download 下載,預設安裝即可
,安裝好後開啟 CMD ,輸入 git --version
確認安裝版本。
設定使用者名稱及電子郵件。 Git 的提交會使用這些資訊,而且提交後不能再被修改。
詳細可參考 開始-初次設定-Git
git config --global user.name "名稱"
git config --global user.email Email地址
可用 git config --global --list
確認是否設定正確
安裝 Node.js
Node.js 是一款開源且跨平台的伺服器端和網路應用,使用 JavaScript 開發。
到官網下載 https://nodejs.org/en/ ,默認安裝即可。
完成後可以在 cmd 輸入以下指令確認
node -v
npm -v
配置 Github
至 https://github.com/ 申請一個帳號。
登陸之後,點擊頁面右上角的加號,選擇New repository (建立儲存庫)
Repository name 下填寫 yourname.github.io
(yourname 是 github 帳號)
Description (optional) 下填寫一些簡單的描述(不寫也沒有關係)
開啟 gh-pages 功能
點擊界面右側的 Settings,你將會打開這個庫的 setting 頁面,向下拖動,直到看見GitHub Pages
點擊 Automatic page generator
,Github 將會創建出一個 gh-pages 的頁面。 如果配置沒有問題,那麼大約 15 分鐘之後,yourname.github.io這個網址就可以正常訪問了~ 如果yourname.github.io已經可以正常訪問了,那麼 Github 一側的配置已經全部結束了。
配置 SSH Key
來源
輸入指令
ssh-keygen -t rsa -C "your_email@your_mail.com"
過程中需要輸入一個 passphrase,如不想輸入直接按下 Enter 鍵即可。
此時顯示的是你 SSH Key 的 randomart image,開啟 C:\Users\使用者名/.ssh/id_rsa.pub
,複製全部內容,到 Github ,點帳號頭像→setting→SSH and GPG keys→New SSH key ,貼上即可。
配置 Hexo
先決定好要放置 blog 文件的資料夾,此文均假設是 D://Github/blug
,建立好後該資料後在位置列輸入 cmd ,用當前目錄開啟 CMD
於 CMD 中輸入
npm install hexo-cli -g
npm install hexo --save
npm install hexo-deployer-git --save
安裝好後輸入以下指令確認安裝結果
hexo -v
初始化 Hexo
輸入以下指令在當前資料夾初始化 Hexo 相關檔案
hexo init
npm install
生成靜態網頁
hexo g
本機測試
hexo s
打在 http://localhost:4000/ ,可以看到當前的網頁
使用 Hexo
可以在 _config.yml 中修改大部份的配置。
配置 Deployment
用文字編輯器修改 D://Github/blog (範例用)下的 _config.yml ,找到 Deployment ,按照如下
在該目錄下開啟CMD,輸入
hexo d
開始佈署
添加新文章
打開 Hexo 目錄下的source文件夾,所有的文章都會以 md 形式保存在_post文件夾中,只要在_post文件夾中新建 md 類型的文檔,就能在執行hexo g的時候被渲染。 新建的文章頭需要添加一些 yml 資訊,如下所示:
顯示閱讀全文按鈕
在文章中添加 more 標籤即可,形式如下:
<!--more-->
標籤以上的內容將以摘要的形式在首頁顯示,並出現閱讀全文的按鈕。
Markdown 記錄
編輯格式是用 markdown ,留一下參考連結
http://markdown.tw/
https://hyxxsfwy.github.io/2016/01/15/Hexo-Markdown-%E7%AE%80%E6%98%8E%E8%AF%AD%E6%B3%95%E6%89%8B%E5%86%8C/
HTML 錨點跳轉
來源:Charlotte.HonG
在文章中可用以下放式建立跳轉
相對應的跳轉方式就是
添加代碼折疊功能
themes/next/source/js/src/post-details.js,
在裡面找合適的位置,添加如下代碼:
在主題scripts下添加一個tags.js, 位於themes/next/scripts/tags.js
再繼續添加一個fold.js
最後,添加幾個自定義樣式,位置themes/next/source/css/_custom/custom.styl
最後,在文章中我們需要摺疊的地方前後添加便簽,示例用法:
增加注解功能
安裝 hexo-footnotes
npm install hexo-footnotes --save
安裝完成即自動啟用,如果沒啟用,可以修改 _config.yml
添加以下資料:
使用方法為(去除反除線)
[^\1]
[^\1]: 注解1
文章連結唯一化
Hexo 的文章連結預設是採用發佈時間或標題來使用,如果變更會導至連結改變,不利分享或 SEO,可安裝 hexo-abbrlink 解決
作者
npm install hexo-abbrlink --save
更改主文牛的 _config.yml
再 config.yml 下加上
效果如下
crc16 & hex
https://post.zz173.com/posts/66c8.html
crc16 & dec
https://post.zz173.com/posts/65535.html
crc32 & hex
https://post.zz173.com/posts/8ddf18fb.html
crc32 & dec
https://post.zz173.com/posts/1690090958.html
crc16 最大的數量為 65535 ,對一個個人部落格而言是非常足夠
部署時保證 README.md 不被渲染
來源:Godlike
一般 Git 倉庫下面都有一個README.md來表現這個倉庫設立的目的,但是運用 hexo 佈置的時候會被自動渲染,接下來要介紹部署時保證README.md不被渲染的方法。
在 Hexo 目錄下的source根目錄下添加一個,README.md。修改 Hexo 目錄下的_config.yml。將skip_render參數的值設置上。skip_render: README.md保存退出即可。
修改主題為 Next
作者:zhiho
在 blog 資料夾下使用命令下載 Next 主題到 themes 目錄中
git clone https://github.com/iissnan/hexo-theme-next themes/next
修改站點配置文件_config.yml 中的 theme 標籤:
修改成功後,重新啟動 Server 就能夠看到修改後的效果。
Next 主題一共有三種樣式,可以通過修改 Next 主題的配置文件_config.yml 來修改:
Gitalk 評論系統
作者:asdfv1020
一個基於 Github Issue 和 Preact 開發的評論插件,所有要修改的檔案都是在 D:\GitHub\blog\themes\next (範例目錄的\themes\next) 之下
詳情 Demo 可見:https://gitalk.github.io/
註冊新應用
在 GitHub 上註冊新應用,鏈結:https://github.com/settings/applications/new
參數說明:
Application name: # 應用名稱,隨意
Homepage URL: # 網站 URL,如 https://ppundsh.github.io ,不是 repo
Application description # 描述,隨意
Authorization callback URL:# 網站 URL,https://ppundsh.github.io ,不是 repo
點擊註冊後,頁面跳轉,其中Client ID
和Client Secret
在後面的配置中需要用到,到時複製粘貼即可
comments.swig
修改 /layout/_partials/comments.swig,添加內容在最下面:
index.swig
修改layout/_third-party/comments/index.swig,在最後一行添加內容:
gitalk.styl
新建/source/css/_common/components/third-party/gitalk.styl文件,添加內容:
third-party.styl
修改/source/css/_common/components /third-party/third-party.styl,在最後一行上添加內容,引入樣式:
Md5 加密 id 避免中文編碼過長
參考資料與作者:qhh0205、uolcano
post 檔名為中文時,容易造成編碼出 github issue lables 50 字符限制而出現 Error: Validation Failed. ,解決方法為使用 md5 加密 id 來縮短長度。
在此把 md5 加密的 js 放在 gist 上托管,在主頁面上右上角的頭像,點一下選 your gist
Gist description :說明,選填
Filename including extension :md5.min.js
內容請貼上以下 js 源碼點開後的內容:點我
完成後點右下的 Create public gist 以創建。
創建成功後,點擊右邊的 RAW ,將網址的 gist.githubusercontent.com 替換為 rawgit.com ,即 https://rawgit.com/ppundsh/f359785730acb0fbfdee07eb12522623/raw/15ce7e5ea97e7afb71792d58a21978f225195a12/md5.min.js
以上即為 md5 js gist 嵌入鏈結
gitalk.swig
新建 /layout/_third-party/comments/gitalk.swig
文件,並添加內容:
第二行 <scrip scrc= 替換為自已的 md5 js gist 嵌入鏈結
關閉不須要的評論
D:\GitHub\blog\source\tags\inedx.md
在 type: 下加入
_config.yml
在主題配置文件next/_config.yml中添加如下內容:
以上就是 NexT 中添加 gitalk 評論的配置,博客上傳到 GitHub 上後,打開頁面進入某一博客內容下,就可看到評論處。
Next 其它功能完善
主題寬度調節
作者:ehlxr
編輯 themes/next/source/css/_variables/custom.styl 文件,新增變量:
以上方法不適用 Pisces Scheme
Pisces Scheme 編輯 themes/next/source/css/_schemes/Picses/_layout.styl 文件,更改以下 css 選項定義值:
載入動畫
https://github.com/theme-next/theme-next-pace
在 themes/next 下輸入以下指令
修改 config.yml
圖片特效
https://github.com/theme-next/theme-next-fancybox3
參考23
在 themes/next 下輸入以下指令
修改 config.yml
搜索功能
作者:Alliot
推薦使用 Local Search 作為站內搜索,搜索速度快,同時比較簡潔,啟用方法如下:
1、安裝插件
安裝 hexo-generator-searchdb 插件
打開 Node.js command prompt,在站點的根目錄下執行以下命令:
npm install hexo-generator-searchdb --save
2、更改配置文件
更改站點配置文件,新增如下內容於任意位置:
更改 NexT 主題配置文件,開啟 Local Search 作為站內搜索:
功能表設置
NexT 主題功能表設置,用於設置博客上方導航欄,在主題配置文件中修改。
只是在 menu 選項中設置還不能讓標籤頁面、分類頁面生效,需要我們手動創建
標籤頁面
運行以下命令
同時,在 / source 目錄下會生成一個 tags 文件夾,裡面包含一個index.md文件
修改 / source/tags 目錄下的index.md文件
修改主題配置文件
去掉 tags 的註釋
標籤雲
參閱官方教學
進入到 hexo 的根目錄,然後在 package.json 中添加依賴(注意此為 json 格式,最後一個項目以外行尾都要加上“,”): “hexo-tag-cloud”: “2.0.*”
然後執行 npm install 命令
添加在側邊欄
對於 ejs 的用戶
這裡以默認主題 landscape 為例。
tagcloud 範本文件為 hexo/themes/landscape/layout/_widget/tagcloud.ejs
將這個文件修改為如下內容:
對於 swig 用戶
這裡以 Next 主題為例。
找到文件 next/layout/_macro/sidebar.swig, 然後添加如下內容。
添加在標籤頁
以 Next 主題為例。
在 Blog\themes\next\layout\page.swig 中,修改並添加以下內容:
最後一步
完成安裝和顯示,可以通過 hexo clean && hexo g && hexo s 來進行本地預覽, hexo clean 為必須選項。
**PS: 不要使用 hexo g -d 或者 hexo d -g 這類組合命令。
雖然有看到這則 教學,但測試下失敗了,而同時加入側邊欄和標籤頁的話 Tag 會變兩倍,有空在來想要怎麼解決。
自定義
現在 hexo-tag-cloud 插件支援自定義啦。非常簡單的步驟就可以改變你的標籤雲的字體和顏色,還有突出高亮。
在你的博客根目錄,找到 _config.yml 文件然後添加如下的配置項:
分類頁面
運行以下命令
同時,在 / source 目錄下會生成一個 categories 文件夾,裡面包含一個index.md文件
修改 / source/categories 目錄下的index.md文件
修改主題配置文件
去掉 categories 的註釋
側邊欄頭像設置
編輯站點配置文件,增加 avatar 欄位
頭像
avatar: /images/avatar.png
頭像圖片須放置在主題的 /source/images / 目錄下
開啟“更新時間”
在 D:\GitHub\Blog\themes\next_config.yml 中修改以下內容開啟功能:
修改文章底部的 tag 為 #號的標籤
作者:Moorez
修改範本/themes/next/layout/_macro/post.swig,搜索 rel=”tag”>#,將 # 換成
文章字數統計
切換到根目錄下,然後運行如下代碼
npm install hexo-symbols-count-time --save
在根目錄下的 _config.yml 加上:
在 D:\GitHub\Blog\themes\next_config.yml 中修改以下內容開啟功能:
設置網站的圖示 Favicon
具體方法實現
在 EasyIcon 中找一張(32*32)的ico圖示, 或者去別的網站下載或者製作,並將圖示名稱改為favicon.ico,然後把圖示放在/themes/next/source/images裡,並且修改主題配置文檔:
# Put your favicon.ico into `hexo-site/source/` directory.
favicon: /favicon.ico
隱藏網頁底部 powered By Hexo / 強力驅動
打開themes/next/layout/_partials/footer.swig, 使用”” 隱藏之間的代碼即可,或者直接刪除。位置搜尋 “powered-by”
文章加密訪問
####不用 Plug 的方式
作者:Alliot
原文點此 這裡搬運過來做備份 (這種方式是不安全的,詳情請點擊 hexo 文章密碼訪問的” 破解” 方法)
head.swig
找到 themes->next->layout->_partials->head.swig 文件。添加如下代碼 (推薦加在所有的標籤之後):
發文
發文的時候頂部的頁面變量添加”password: 密碼” 即可,如:
hexo-blog-encrypt
安裝
在 D:\Github\Blog 下,找到 package.json 加上
“hexo-blog-encrypt”: “2.0.”
需注意此為 json 格式,除了最後一筆以外都句尾都要有 “ , ”
在此目錄下,開啟 CMD ,執行
npminstall
_config.yml
在 D:\Github\Blog 下,修改 _config.yml ,加入以下字句
可在 D:\GitHub\Blog\scaffolds\post.md 下加入
之後只要填寫 password: 後的密碼,該文即會被加密
動態背景
參考:Xujian、canvas-nest.js for NexT
修改主題配置文件
在根目錄 blog 中輸入
git clone https://github.com/theme-next/theme-next-canvas-nest source/lib/canvas-nest
再開啟主題配置文件,文件位址:blog/theme/next/_config.yml
將文件中的 canvas_nest: false 為 canvas_nest: true 即可。
配置項說明
若覺得線條太多或想自行設定,可開啟 D:\GitHub\Hexo\ppundsh.github.io\themes\next\source\lib\canvas-nest\canvas-nest.min.js
找到以下參數:
文章下設置版權訊息
預設功能
作者:Crocutax
Hexo+NexT 主題,主題默認的版權聲明配置在themes\next\_config.yml
文件中
直接把enable 改為true即可開啟。
自訂授權內容
並修改 lang 內容
文章末顯示 —THE END—
來源
找到themes/next/layout/_macro/post.swig,添加在
SEO 優化
為了讓搜尋影擎更方便索引,可以有以下設置。
站點地圖
安裝插件
安裝 google sitemap
npm install hexo-generator-sitemap --save
安裝百度 sitemap
npm install hexo-generator-baidu-sitemap --save
修改站點_config.yml 文件
增加以下內容
注意縮進。
執行hexo g後,public 目錄下就會生成 sitemap.xml 和 baidusitemap.xml 兩個文件了。
在 Google 站點工具設置
個人使用 google 推薦的方試一直失敗,參考此文後能成功
作者: iissnan
設置 Google 站點管理工具 的驗證字串,用於提交 sitemap
獲取 google site verification code
登錄 Google Webmaster Tools,導航到驗證方法,並選擇 HTML Tag。將會獲取到一段代碼:
將 content 裡面的 XXXXXXXXXXXXXXXXXXXXXXX 複製出來。
設置主題
編輯站點的 _config.yml,新增欄位 google_site_verification
google_site_verification: XXXXXXXXXXXXXXXXXXXXXXX
hexo-autonofollow
因垃圾外鍵會降低 SEO 的權重,加上此插件可以將除了友站以外的連結加上 nofollow
Install
npm install hexo-autonofollow –save
Options
You can configure this plugin in _config.yml.
其它
壓縮代碼加速載入
在生成時會慢一點,但可以加速載入
CMD 進入博客根目錄,執行以下命令
npm install hexo-neat --save
打開站點配置文件_config.yml,添加以下內容:
圖片沿後載入來加速頁面載入速度
作者 21
圖片懶載入是提升網站性能和用戶體驗的一個非常很好方式,並且幾乎所有的大型網站都使用到了,比如微博,僅把用戶可見的部分顯示圖片,其餘的都暫時不載入,做法就是:讓所有圖片元素 src 指向一個小的站位圖片比如 loading,並新增一個屬性 (如 data-original) 存放真實圖片位址。每當頁面載入(或者卷軸滾動),使用 JS 腳本將可視區域內的圖片 src 替換回真實位址,並做請求重新載入。
安裝步驟:
npm install hexo-lazyload-image –save
然後修改 _config.yml 文件
圖片附加說明
https://github.com/wayou/hexo-image-caption
修改 _config.yml 啟用
參考網址
可能是最詳細的 Hexo + GitHub Pages 搭建博客的教程
Gist 是 GitHub 推出的一款類似於 Pastebin 的代碼片段託管服務
Hexo 搭建 GitHub 博客(三)- NexT 主題配置使用
hexo-next - 主題配置 gitalk 評論 - 爬坑記
給 hexo 博客 nexT 主題添加 Gitalk 評論系統
給 hexo 添加 sitemap 和 baidusitemap 站點地圖功能