圖片來源:pixiv 40872946php
更新於 2018.7.11
首發於夏味的博客: xiaweiss.comcss
做爲一個 web 程序員,固然也想有本身的自留地 因而就研究起了搭建博客,來記錄本身的成長 瞭解以後,發現 github + hexo 是個門檻很低的,效果很好的方式 hexo 基於 markdown,意味着不須要關心文章排版,也不須要學習編程 github 提供了免費空間、域名以及代碼管理的工具,解決了服務器問題html
若是看不懂英語,能夠點這個小按鈕來全文翻譯(失敗的話能夠多試幾回,或使用其餘翻譯軟件)node
登陸 Github(初次註冊後會自動登陸),點擊右上角"+",再點第一行 "新存儲庫"(New repository)git
第一次要求驗證郵箱,郵箱裏會收到 Github 發來的郵件,點那個最長的連接就ok程序員
存儲庫名稱格式爲 yourname.github.io。好比,我我的的 Github 帳戶用戶名是 xiaweiss,因此,個人這個 Repo 的名稱就是 xiaweiss.github.iogithub
下載本身系統對應的安裝包,安裝 windows 下載第一行的 msi 類型便可,位數按系統的位數便可,通常選64-bitweb
安裝過程當中,不用選擇,一直點 next下一步便可 安裝好以後,運行其餘系統運行 terminal 命令行工具 windows 系統,在桌面或任意文件夾內,右擊,運行 git bush herenpm
(下文的命令行中的命令,每行表明一個命令,行末必須按回車鍵Enter)
在命令行中輸入
git --version 回車鍵Enter
npm --version 回車鍵Enter
複製代碼
若是看到版本號,則成功。不然從新安裝
進入 atom編輯器 官網,下載安裝它
啓動 Atom 以後, 點擊 Packages 安裝插件
請搜索並安裝如下 markdown 插件
markdown-writer tool-bar tool-bar-markdown-writer markdown-scroll-sync markdown-pdf
或者也可使用其餘你喜歡的 markdown 文件編輯工具
在命令行中繼續輸入
npm config set registry https://registry.npm.taobao.org
npm install hexo -g
npm install hexo-cli -g
複製代碼
去 Github 把你的 Repo 的 git 地址拷貝出來。 個人是 https://github.com/xiaweiss/xiaweiss.github.io.git 你的是 https://github.com/yourname/yourname.github.io.git (其中,yourname 應該換乘你的 Github 用戶名)
而後在 Terminal 面板裏輸入
cd ~/Public (windows中 cd /d)
hexo init yourname.github.io
cd yourname.github.io
npm install hexo-deployer-git --save
hexo generate
hexo server
複製代碼
這些完成以後,你就能夠打開瀏覽器,在地址欄裏輸入: localhost:4000
,在本地先看看網站是什麼樣子了。
關閉命令行,從新打開一個命令行
cd /d/yourname.github.io
atom . (注意符號點前面有空格)
複製代碼
在 Atom 的左側面板中,選擇 _config.yml 文件,找到 deploy 那一部分(末尾的79行)
deploy:
type:
(空行)
複製代碼
改爲:
deploy:
type: git
repo: https://github.com/yourname/yourname.github.io.git
複製代碼
Ctrl+S 保存
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ 打開命令行
git config --global user.name "yourname"
git config --global user.email "your_email@example.com"
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" (替換爲你的GitHub電子郵件地址)
複製代碼
接着會出現幾回提示,以下圖箭頭處,直接按回車Enter鍵便可
打開Github,點擊右上角的頭像,再點設置
命令行中繼續輸入
cat ~/.ssh/id_rsa.pub
複製代碼
而後能夠看到一堆編碼,見下圖,把紅框裏的部分複製了。
在用戶設置側欄中,單擊 SSH and GPG Keys(SSH和GPG密鑰),而後單擊右上角綠色的 New SSH key(新的SSH密鑰)
而後能夠看到這個界面,Title標題隨意填。key密鑰裏,把剛剛複製好的編碼粘貼進去,而後點下面 Add SSH key
出現這個界面,表示成功了
最後一步,命令行中輸入,就能夠發佈到 Github 了
hexo deploy
複製代碼
打開 https://yourname.github.io 就能夠看到博客了
打開命令行
cd /d/yourname.github.io
atom .
複製代碼
便可啓動編輯器,而且打開項目目錄
使用 md 後綴的 markdown 格式,來寫文章。語法請參考 《獻給寫做者的 Markdown 新手指南》
使用 atom 編輯器來 編輯md文件,打開md文件時 ctrl+shift+m 便可看到預覽區域
_draft 文件夾用來存沒寫完的草稿 _posts 文件夾用來存要發佈出去的文章 _images 文件夾用來存文章中的圖片
以上文件夾下,直接放文章,不要放子文件夾 文件名命名格式推薦 20171008-file-name.md 文件名不要使用中文,中文不利於檢索文件名
文章頂部 按模板的語法
---
title: 標題
date: 2017-10-08
tags: 標籤
category: 分類
---
複製代碼
其中 date 是發佈日期注意不要使用模板的 { date }
寫法,這種寫法一旦標題改變或者數據文件 db.json 或 /public 丟失,發佈日期會改變
多個標籤或分類時,這樣寫
tags:
- 標籤1
- 標籤2
複製代碼
圖片 能夠用 ![](/images/20171008-image-name.png)
語法來引入
<!--more--> 表示預覽區的分界線,主頁面只會顯示它以前的內容。
複製代碼
寫完文章後,本地網站查看效果
cd /d/yourname.github.io
hexo g
hexo s
複製代碼
發佈到 Github
cd /d/yourname.github.io
hexo g
hexo s
複製代碼
因爲Github是開源的,備份到Github,別人容易下載拿走,考慮到私密性,推薦使用 堅果雲 來自動備份
找到 yourname.github.io 文件夾右擊,選擇堅果雲
,選擇同步到我的空間
,便可
若是爲了避免引入其餘工具,也可使用 Github 來備份:
打開命令行
cd /d/yourname.github.io
git init
git checkout -b source
git add . (注意點前面有空格)
git commit -m "init"
git remote add origin https://github.com/yourname/yourname.github.io.git
git push -u origin source
複製代碼
每次備份操做,打開命令行:
cd /d/yourname.github.io
git add .
git commit -m "本次備份的提示語"
git push
複製代碼
誤刪本地文件夾,從備份的代碼恢復整個 yourname.github.io 文件夾:
cd /d
git clone https://github.com/yourname/yourname.github.io.git
git checkout source
npm install
複製代碼
若是是在新的電腦恢復 整個 yourname.github.io 文件夾, 須要先重複步驟1 ~ 步驟2,而且其中如下步驟直接跳過,而後再執行上面命令 1.2 註冊一個 Github 帳號 1.3 建立一個Repo 2.2 初始化你的本地站點
如下部分非新手向,只寫要點,按需食用
使用 git 來控制版本 爲方便切換分支, master分支添加 .gitignore 文件 master分支、source分支內容統一爲
.DS_Store
*.log
node_modules/
public/
.deploy*/
.idea/
複製代碼
使用 NexT.Pisces 主題爲例,詳細中文文檔
注意當一個repo包含其餘repo時,使用命令 git submodule add
來安裝而且分開管理,而不是 git clone
,
git submodule add https://github.com/iissnan/hexo-theme-next themes/next
複製代碼
至於主題配置文件,能夠保存一份副本到 themes 文件夾裏提交到本身的倉庫
注意切換主題後,若是顯示不正常,運行 hexo clean
來清理數據 特別注意hexo clean
同時會清除掉歷史文章的發佈日期,慎用!
clone 含有子repo 的項目後,子 repo 目錄內沒有內容,還須要執行下面兩個命令來 clone 子repo
git submodule init
git submodule update
複製代碼
目前因爲國內審覈機制,國內服務說不定哪天就關閉了。因此推薦國外的服務,比較穩定。使用國外的服務,須要代理上網訪問國外,沒有的用戶則不顯示評論區。
主題會自動給文章的標題和子標題生成目錄,而且加上序號 若是要本身寫序號,不須要主題自帶序號,修改主題配置文件 _config.yml 裏的 toc 後面的 member 配置爲
156行 number: false
複製代碼
推薦不使用圖牀,直接把統一圖片存在本地文件夾
目前不支持 atom markdown預覽 和 本地網站裏同時正常預覽圖片
建議編輯時使用 ![](../images/xxx.png)
發佈時用atom ctrl+f 統一把 ../
替換爲 /
便可
閱讀量統計可使用 LeanCloud 計數,注意主題配置文件裏有兩處 LeanCloud,要配置leancloud_visitors
或者直接使用 不蒜子統計 便可,可同時實現閱讀量統計、PV、UV功能。
我的建議,LeanCloud統計閱讀量,不蒜子統計PV、UV
next 主題使用 stylus 預編譯樣式語言
能夠在 themes\next\source\css\_custom\custom.styl
文件裏寫本身的 stylus 樣式
例如:首行縮進,添加以下代碼:
p
text-indent 2em
複製代碼
修改主題配置文件 _config.yml,找到 updated_at,修改成
updated_at: true
複製代碼
而後就會顯示更新的日期了
若是須要手動設置,能夠在文章的標籤里加入 updated
,以下
---
title: 使用 Hexo 爲本身在 Github 上建一個靜態 Blog博客 站點
date: 2017-10-08
updated: 2017-11-11
file-title: {{ title }}
tags: Hexo
---
複製代碼
在主題配置文件裏找到 custom_text 這行,修改一下便可
#custom_text: Hosted by <a target="_blank" href="https://pages.github.com">GitHub Pages</a>
custom_text: Xiaweiss.com 京ICP備17057895號
複製代碼
或者在主題配置文件裏找到 copyright: 這行,修改成
# If not defined, will be used `author` from Hexo main config.
copyright: <a href="http://xiaweiss.com">Xiaweiss.com</a> 京ICP備17057895號
複製代碼
使用免費的 local search npm 安裝包
npm install hexo-generator-searchdb --save
複製代碼
next 主題配置文件裏,修改配置文件 top_n_per_article 指正文的搜索結果,顯示幾條。 -1 表明所有顯示
local_search:
enable: true
# if auto, trigger search by changing input
# if manual, trigger search by pressing enter key or search button
trigger: auto
# show top n results per article, show all results by setting to -1
top_n_per_article: 3
複製代碼
但以上設置會致使多出2個文件夾,並且之後不會在裏面放其餘文件,因此我我的推薦這樣設置 在 source 目錄下: 新建 文件 categories.md:裏面寫
---
title: 分類
type: "categories"
comments: false
---
複製代碼
新建 文件 tags.md:裏面寫
---
title: 標籤
type: "tags"
comments: false
---
複製代碼
而後修改主題配置文件,menu設置裏的 categories、tags
menu:
home: / || home
categories: /categories.html || th
tags: /tags.html || tags
複製代碼
主題配置文件裏
scroll_to_more: true
複製代碼
表示從主頁進去文章後,直接自動滾動到文章中 more 標籤的位置,能夠看到網址裏多了#more 若是須要去掉,設置爲false便可
save_scroll: false
複製代碼
表示在本地存儲閱讀的進度(滾動到的位置),刷新或再次打開頁面時,能夠接着讀。 建議打開這個功能,設置爲true便可
下面是我目前舊版2.1.5的使用方式,最新版請參考hexo-helper-live2d 中文文檔
舊版配置方式:
安裝
cd yourname.github.io
npm install hexo-helper-live2d@2.1.5
複製代碼
在 yourname.github.io 的 hexo 配置文件 _config.yml
裏添加配置項
# Live2D
## https://github.com/EYHN/hexo-helper-live2d
live2d:
model: koharu # 模型名稱 默認值: z16
width: 150 # 寬度 默認值: 150
height: 300 # 高度 默認值: 300
scaling: 1 # 分辨率縮放倍率 默認值: 2
opacityDefault: 1 # 初始的透明度 默認值: 1
#opacityHover: 1 # 鼠標懸浮時的透明度 默認值: 1
mobileShow: true # 是否在移動設備上顯示 默認值: true
mobileScaling: 0.5 # 移動設備縮放倍率 默認值: 0.5
position: right # 模型左右側放置位置 默認值: right
horizontalOffset: 0 # 元素的水平偏移 默認值: 0
verticalOffset: -20 # 元素的底部偏移 默認值: -20
className: live2d # 元素的類名 默認值: live2d
id: live2dcanvas # 元素的id 默認值: live2dcanvas
複製代碼
我本身使用的是 koharu,若是須要其餘的,改成相應的名字便可 舊版全部小人請看做者大大博客 hexo live2d插件 2.0 !
接下來,在 next/layout/_layout.swig
文件裏,找到 </body>
,在它前面的行添加代碼 像這樣:
{{ live2d() }}
</body>
複製代碼
參照 6.1,添加配置
.headband
background: #0095EE;
.site-meta
background: #0095EE;
.site-subtitle
color: white;
複製代碼
界面的優化須要掌握必定的 css 知識,這裏再也不贅述 能夠參考 千靈《Hexo 優化彙總》 以及我博客源碼裏 themes 文件夾下文件的的相關注釋
歸納來講
next/source/css/_variables/custom.styl
添加變量便可例如 base.styl
能夠看到代碼 $blue = #0684bd
要把全部預設好的藍色改成白色,custom.styl
裏添加 $red = #fff
便可
添加或修改 樣式,能夠在 next/source/css/_custom/custom.styl
寫入 css
修改首頁,添加 js,修改文字符號等,修改 next/layout/_layout.swig
便可 文章頁請修改 next/layout/_macro/post.swig
進入 next 目錄
cd themes/next
git fetch
git tag
複製代碼
便可看到當前可用版本列表,使用下面命令便可切換到指定版本,如
git checkout v5.1.4
複製代碼
切換過程當中會有文件衝突 能夠切換前執行 git stash,切換後執行 git stash pop,而後修改文件便可
或者使用軟連接的方式,把修改的文件放在 next 文件夾外時,只須要修改文件,從新軟連接便可
感謝閱讀,最後附上博客源碼
參考資料:
李笑來《使用 Hexo 爲本身在 Github 上建一個靜態 Blog 站點》
千靈《Hexo 優化彙總》
Hexo 官方文檔
NexT 主題文檔