什麼是Hexo?
Hexo官方簡介:
A fast, simple & powerful blog framework, powered by Node.js
Hexo的特色:
- 用Markdown語法寫blog
- 用Command Line來進行操作
- 140幾種網站主題可供選擇
- 多種插件,可以加入disqus討論功能和瀏覽人數計數等功能
- 輕易部署到Github Pages和Heroku
安裝Hexo
Hexo是由Node.js寫成的,所以可以透過Node.js的套件管理工具npm或者yarn來安裝。我個人是使用Yarn來作為我的Node套件管理工具。如果電腦裡面還沒有安裝yarn可以過以下指令安裝:
Mac使用者透過Homebrew安裝
Windows使用者透過Chocolatey安裝
接著安裝Hexo:
創建我的部落格
啟動local端server
接著在你的瀏覽器裡輸入localhost:4000,就可以看到你的部落格啦!
目錄結構
再繼續往下看以前,我們先來暸解整個目錄結構:
設定檔
網站設定_config.yml
,可設定:
- 作者名字、標題、描述
- 語系設定
- 是否產生assets資料夾
- 套用主題
主題設定themes/<theme-name>/_config.yml
,可設定:
- 頭像
- 社群網路連結
- 新增頁面
- 其他客製化選項(scheme、高亮、動畫等等)
主題資料夾
themes/
這個資料夾用來放置主題,目前裡面只有預設的landscape而已。
發文資料夾
source/_posts
這個資料夾是真正會存放你文章的地方。裡面有一篇預設的Hello World。
更換主題
NexT
Hexo預設的主題是landscape,但是似乎有點….不夠帥氣,所以我們可以到這裡來挑選我們想要的主題: https://hexo.io/themes/
在精挑細選後,我決定使用NexT這個主題,因為:
- 介面美觀
- 官方文件詳細
- 可自定性高(多種scheme和code highlight)
- 支援多種語言
- Github上星星數多達9000顆,跟風一起用準沒錯
用Git安裝NexT
接著修改網站設定_config.yml
重新啟動server
哇!!整個高端大氣上檔次!
語言設定
在_config.yml
中找到language欄位,設定為zh-tw
這樣就支援繁體中文了!
Scheme設定
NexT提供多種Scheme選擇,其中Muse是預設的主題。而我個人是選擇使用Pisces當做我的主題。
在主題設定theme/next/_config.yml
裡找到schema設定,把注釋去掉即可開啟。
Muse:
Mist:
Pisces:
Gemini:
代碼高亮
官方說明
NexT 使用 Tomorrow Theme 作为代码高亮,共有5款主题供你选择。 NexT 默认使用的是 白色的 normal 主题,可选的值有 normal,night, night blue, night bright, night eighties
1 highlight_theme: normal
動畫效果
在主題設定themes/next/_config.yml
裡選擇要開啟的動畫效果,要打開就把值設定成true
我通常會開啟canvas_nest這個背景動畫效果,帶有微微的科技中二感,很對我的口味。
關於作者
主題都換好了,那我們的頭像和作者介紹呢?
頭像
先新增一個資料夾,用來存放大頭照
然後把你的大頭照丟進source/uploads/
這個資料夾裡,然後在主題設定themes/next/_config.yml
中設定大頭照路徑:
作者
在網站設定_config.yml
中設定名字、標題和副標題
開啟社群帳號連結
在主題設定themes/next/_config.yml
中新增社群網路連結。
About Me Page
新建一個about頁面
在themes/next/_config.yml
將about前面的註解去掉
編輯source/about/index.md
成果:
Ok,到這裡關於自己的一切都設定好了,接下來要發表第一篇文章囉!
我的第一篇文章
設定
所有的文章都會在source/_posts
裡面。其實一開始裡面就已經有一篇範例文章hello-world.md
了。
在發表文章以前,先進行一個簡單的設定,在網站設定_config.yml
中:
這樣每當新增一篇文章時,會自動在source/_posts/
裡新增一個跟文章同名的資料夾用來放置圖片資源。
新增文章
創造一篇名叫”測試”的文章
編輯source/_posts/test.md
嵌入圖片
圖片遷入的格式
例如說有一個圖片snake.jpg
要引用在文章裡只要先把snake.jpg
丟到source/_posts/測試/
裡,然後在source/_posts/測試.md
裡
就可以看到圖片了
Tags分類
文章可以透過標籤來進行分類
新建一個頁面,叫做tags
編輯剛新建的頁面source/_posts/tags/index.md
,將頁面的type設為”tags”。
為剛剛那篇文章加入標籤
當一篇文章有多個Tags時
登登!文章現在可以透過標籤分類了
文章搜索
很酷的是,Hexo還支援文章搜索的功能喔!
安裝套件
在主題設置theme/next/_config.yml
中找到local_search,並把enable設為true
可以支援搜尋功能了!
部署到Github Pages
到這裡,只剩下最後一步,就是讓大家都能看到你的部落格!
有很多種部署的方式,在這裡我們選擇使用最簡單的Github Page。
Github Page的官方介紹
Websites for you and your projects.
Hosted directly from your GitHub repository. Just edit, push, and your changes are live.
先創建一個Github專案,名稱為<username>.github.io
。例如說我的名字叫做yogapan,那我就創建一個yogapan.github.io
的專案。
安裝套件
修改網站設定_config.yml
,找到deploy之後進行以下修改
Repo是你剛新建專案的網址
Branch則是指定分枝,通常是master
接著部署到Github Pages
接下來就可以到你的網站<username>.github.io
來看看囉!
關於部署更詳細的資料可以看這裡:
https://hexo.io/docs/deployment.html
文章預覽
可以根據字數來裁切預覽,在themes/next/_config.yml
中:
但是不推薦此功能。
更好的方法是在文章中用<!--more-->
來做斷點,<!--more-->
以上的部分就是預覽會顯示的部分:
這樣文章預覽的部分就完成了!
閱讀人數統計
這裡我們使用LeanCloud的服務,先去註冊一組帳號:
https://leancloud.cn/
Email認證完後,點擊右上角訪問控制台,並且創建一個新的應用
接著創建一個新的class叫做Counter
接著到設置 -> 應用key
頁面,複製App ID
和App Key
到themes/next/_config.yml
中
完成後部署上去,就可以看到閱讀次數囉!
更詳細的教學可以看這裡:
为NexT主题添加文章阅读量统计功能 | Doublemine
加入Disqus留言功能
我們可以利用Disqus來達到留言互動的的功能,先註冊一組帳密:
選擇I want to install Disqus on my site
填入Website Name
完成後在themes/next/_config.yml
填入妳的website name
大功告成
預設會在所有page上加入評論系統。如果不要開啟評論系統的話,在開頭加上:
更詳細可以參考這裡:
http://www.jianshu.com/p/c4f65ebe23ad
RSS訂閱
安裝相依套件
在_config.yml
加入
登登!
Google SEO
獲取 Google Site Verification Code
登入Google Search Console,點選新增內容,填入你的網址:
驗證方法選擇其他方式
-> HTML Tag
,獲得以以下驗證碼
在themes/next/_config.yml
中填入驗證碼
接著就可以看到網頁搜索的資訊了
提交sitemap
安裝hexo-sitemap-generator
在_config.yml
中
並且填入你的網址
產生sitemap.xml
,並且部署
現在Google搜尋能更好的解析網站的結構惹
關於SEO、Google Search Console、Sitemap參考資料
其他教學
- hexo-generator-sitemap 生成的sitemap如何配置自定义的域名? - dkylin的回答 - SegmentFault
- Hexo 优化:提交 sitemap 及解决百度爬虫无法抓取 GitHub Pages 链接问题 | JI’s Blog
- Hexo Seo优化让你的博客在google搜索排名第一 | 一个人胡闹的日子
Hexo指令備忘錄
|
|
FAQ
Q: 為什麼我修改了設定之後,沒有反應出來呢?
A: 可以重啟server試試看,通常都可以解決問題。
Q: 為什麼部署到Github Page之後網站沒有更新呢?
A: 有時部署到Github Pages上後可能會有延遲,有時要等個30秒左右才會更新。或者是嘗試$ hexo clean && hexo deploy
試試看。
參考資料
連結:
Hexo
https://github.com/hexojs/hexo
https://hexo.io/zh-tw/index.html
Hexo Theme:
https://hexo.io/themes/
NexT:
http://theme-next.iissnan.com
https://github.com/iissnan/hexo-theme-next
Github Pages:
https://pages.github.com
Node.js
https://nodejs.org/en/
Npm and Yarn
https://www.npmjs.com/
https://yarnpkg.com/en/
Brew and Chocolatey
https://brew.sh
https://chocolatey.org
Disqus:
https://disqus.com/