個人博客
本文總結一下 Hexo 搭建博客的主要流程,可以在往後快速恢復博客環境。css
Hexo 的官方文檔寫的已經很全面了,本文僅將一些注意點列出。
歡迎加入前端交流羣:749539640
安裝 Hexo 的文檔參考:html
安裝 Hexo 以前,你的電腦上須要有前端
若是是 Mac 用戶, 您在編譯時可能會遇到問題,請先到 App Store 安裝 Xcode,Xcode 完成後,啓動並進入 Preferences -> Download -> Command Line Tools -> Install
安裝命令行工具node
全局安裝 hexo-cli
:git
npm install -g hexo-cli
若是遇到權限的問題,可使用以下命令:github
sudo chown -R $(whoami) /usr/local/lib/node_modules/
設置 /usr/local/lib/node_modules/
文件夾屬於當前用戶。web
此外,若是你要使用 root 權限安裝的話,可使用 sudo -s
切爲 root 用戶進行相關操做。這麼作的話,會將一些文件夾的默認屬組設置爲 root 了,不推薦。npm
npm 權限問題:gulp
hexo init MyBlog cd MyBlog npm install
執行完畢以後,博客其實已經 OK 了:canvas
hexo g hexo s
執行上面命令便可本地預覽博客內容了。
官宣-站點配置文件 內容中介紹了不少字段的用途
Hexo 提供快速一鍵部署,將博客部署到 GIthub Pages。
安裝 hexo-deployer-git
:
$ cd MyBlog $ npm install hexo-deployer-git --save
修改站點配置文件中的配置:
# npm install hexo-deployer-git --save deploy: - type: git repo: git@github.com:Michael728/michael728.github.io.git branch: master
執行部署:
hexo d
hexo version # 顯示hexo版本 hexo new <title> # 建立新文章 hexo g/generate # 生成靜態文件 hexo clean # 清除緩存文件和已生成的靜態文件(public) hexo server # 啓動本地服務器 hexo d/deploy # 部署網站 hexo list <type> # 列出網站資料
npm 經常使用指令
npm install 模塊名 -g --save # g全局安裝 save安裝包信息將加入到dependencies(生產階段的依賴) npm install gulp@3.9.1 # 指定版本 npm install # 該命令能夠根據dependencies配置安裝全部的依賴包 npm update [-g] 模塊名 npm outdated 模塊名 # 檢查模塊是否過期 npm ls -g # 查看全局安裝的模塊 npm uninstall 模塊名 npm info hexo-cli # 查看hexo-cli模塊的信息
語法:
{% note [class] [no-icon] %} 這裏寫你須要寫的內容 {% endnote %} // 注意上面的class和no-icon屬性是能夠選擇的 [class] : default | primary | success | info | warning | danger. [no-icon] : Disable icon in note.
示例:
{% note success no-icon %} success形式的類別 {% endnote %}
效果:
<p class="note note-success">success形式的類別</p>
這裏使用 no-icon
表示不顯示圖標,可選,默認會帶有圖標。
源碼:
- <i class="fa fa-pencil"></i> 鉛筆 - <i class="fa fa-cloud-upload"></i> 上傳 - <i class="fa fa-download"></i> 下載
效果:
源碼:
{% cq %} 人生乃是一面鏡子, 從鏡子裏認識本身, 我要稱之爲頭等大事, 也只是咱們追求的目的! {% endcq %}
效果:
人生乃是一面鏡子,
從鏡子裏認識本身,
我要稱之爲頭等大事,
也只是咱們追求的目的!
首先在主題 _config.xml
配置:
# Label tag. label: true
源碼:
{% label primary@primary內容 %}
效果:
label primary@primary內容
因爲一直使用的是「微博圖牀」,渣浪微博和簡書開啓了圖片防盜鏈,請你們在博客中加入如下標籤來繞過:
<meta name="referrer" content="never" />
Next 主題只須要在 themes/next/layout/_partials/head/head.swig
中添加上面一行內容便可。
$ cd MyBlog $ git clone https://github.com/theme-next/hexo-theme-next themes/next
Next 擴展都安裝在themes/next/source/lib
文件夾下
cd MyBlog git clone https://github.com/theme-next/hexo-theme-next themes/next
編輯站點配置文件 _config.yml
:
theme: next # 啓用next主題
站點配置文件:
language: zh-CN # 最新版中,再也不使用zh-Hans
編輯主題配置文件:
menu: home: / || home #about: /about/ || user #tags: /tags/ || tags #categories: /categories/ || th archives: /archives/ || archive #schedule: /schedule/ || calendar #sitemap: /sitemap.xml || sitemap #commonweal: /404/ || heartbeat
菜單內容的設置格式是:item name: link || icon
。其中 `item name 是一個名稱,這個名稱並不直接顯示在頁面上,她將用於匹配圖標以及翻譯。
設置菜單項的顯示文本。在第一步中設置的菜單的名稱並不直接用於界面上的展現。Hexo 在生成的時候將使用 這個名稱查找對應的語言翻譯,並提取顯示文本。這些翻譯文本放置在 NexT 主題目錄下的 languages/{language}.yml
({language}
爲你所使用的語言)。
icon 使用的是 fontawesome 圖標,嚴格區分大小寫。
將準備好的頭像放置在主題目錄下的 source/images/
中。
avatar: # In theme directory (source/images): /images/avatar.gif # In site directory (source/uploads): /uploads/avatar.gif # You can also use other linking images. url: /images/logo.jpg
使用 LeanCloud
參考這個 爲NexT主題添加文章閱讀量統計功能
leancloud_visitors: enable: true # 啓用了 valine,因此這裏能夠置爲 false app_id: xxx app_key: xxx
主題配置文件中,rss
字段設爲空,啓用,設爲 false
則不啓用。啓用的話,須要安裝插鍵:
npm install hexo-generator-feed --save
hexo new page tags
title: 標籤 date: 2014-12-22 12:39:04 type: "tags" ---
若是有集成評論服務,頁面也會帶有評論。 若須要關閉的話,請添加字段 comments 並將值設置爲 false,如:
title: 標籤 date: 2014-12-22 12:39:04 type: "tags" comments: false ---
標籤示例:
title: 標籤測試文章 tags: - Testing - Another Tag
請參閱 Hexo 的分類與標籤文檔,瞭解如何爲文章添加標籤或者分類
補充:
categories: - Diary tags: - PS3 - Games
分類方法的分歧
若是您有過使用WordPress的經驗,就很容易誤解Hexo的分類方式。WordPress支持對一篇文章設置多個分類,並且這些分類能夠是同級的,也能夠是父子分類。可是Hexo不支持指定多個同級分類。下面的指定方法:
categories: - Diary - Life
會使分類Life成爲Diary的子分類,而不是並列分類。所以,有必要爲您的文章選擇儘量準確的分類。
並列分類,瞭解一下:
categories: - [Linux] - [Tools]
並列+子分類,再瞭解一下:
categories: - [Linux, Hexo] - [Tools, PHP]
一樣的方法,添加分類頁面:
$ hexo new page categories
設置字體可參考:官宣-字體
# Code Highlight theme # Available value: normal | night | night eighties | night blue | night bright # https://github.com/chriskempson/tomorrow-theme highlight_theme: night eighties
主題配置文件:
social: GitHub: https://github.com/Michael728 || github 微博: https://weibo.com/1838446070/profile?topnav=1&wvr=6 || weibo 博客園: https://www.cnblogs.com/michael-xiang/ || globe 知乎: https://www.zhihu.com/people/michaelXoX || globe Twitter: https://twitter.com/728_michael || twitter Telegram: https://t.me/michaelxiang || telegram
圖標名稱 是 Font Awesome 圖標的名字(沒必要帶 fa-
前綴)。 enable 選項用於控制是否顯示圖標,你能夠設置成 false 來去掉圖標
social_icons: enable: true icons_only: false transition: false
只須要 主題配置文件 中填入 微信 和 支付寶 收款二維碼圖片地址 便可開啓該功能:
reward_settings: # If true, reward would be displayed in every article by default. # You can show or hide reward in a specific article throuth `reward: true | false` in Front-matter. enable: true animation: false comment: 我知道是不會有人點的,但萬一有人想不開呢👇 reward: wechatpay: /images/wechatpay.jpg alipay: /images/alipay.png
# Blog rolls links_icon: link links_title: 關注列表 #Links links_layout: block #links_layout: inline links: #Title: http://example.com Blog List: https://michael728.github.io/2018/09/16/blog-interesting/ ZeeCoder: https://zcheng.ren/posts/ ehlxr: https://ehlxr.me/ 卡瓦邦噶: https://www.kawabangga.com/ David Dai: https://blog.stdioa.com/ 建站日誌: https://michael728.github.io/2016/09/03/blog-logfile/
這個時間將在站點的底部顯示,例如 ©2013 - 2015
。 編輯 主題配置文件,新增字段 since:
# Wechat Subscriber wechat_subscriber: enabled: true qcode: /uploads/wechat-qcode.jpg description: 歡迎您掃一掃上面的微信公衆號,訂閱個人博客!
主題配置文件設置。比較在意速度,能夠關閉動畫。
# Use velocity to animate everything. motion: enable: true async: false transition: # Transition variants: # fadeIn | fadeOut | flipXIn | flipXOut | flipYIn | flipYOut | flipBounceXIn | flipBounceXOut | flipBounceYIn | flipBounceYOut # swoopIn | swoopOut | whirlIn | whirlOut | shrinkIn | shrinkOut | expandIn | expandOut # bounceIn | bounceOut | bounceUpIn | bounceUpOut | bounceDownIn | bounceDownOut | bounceLeftIn | bounceLeftOut | bounceRightIn | bounceRightOut # slideUpIn | slideUpOut | slideDownIn | slideDownOut | slideLeftIn | slideLeftOut | slideRightIn | slideRightOut # slideUpBigIn | slideUpBigOut | slideDownBigIn | slideDownBigOut | slideLeftBigIn | slideLeftBigOut | slideRightBigIn | slideRightBigOut # perspectiveUpIn | perspectiveUpOut | perspectiveDownIn | perspectiveDownOut | perspectiveLeftIn | perspectiveLeftOut | perspectiveRightIn | perspectiveRightOut post_block: fadeIn post_header: slideDownIn post_body: slideDownIn coll_header: slideLeftIn # Only for Pisces | Gemini. sidebar: slideUpIn
編輯 主題配置文件, 搜索 canvas_nest
或 three_waves
,根據您的需求設置值爲 true 或者 false 便可
我只啓用了 canvas_nest
canvas_nest: //cdn.jsdelivr.net/gh/theme-next/theme-next-canvas-nest@1.0.0/canvas-nest.min.js canvas_nest_nomobile: //cdn.jsdelivr.net/gh/theme-next/theme-next-canvas-nest@1/canvas-nest-nomobile.min.js
$ npm install hexo-generator-searchdb --save
站點配置文件,新增以下內容:
search: path: search.xml field: post format: html limit: 10000
編輯主題配置文件,啓用本地搜索:
# Local search local_search: enable: true
編輯 主題配置文件 中的 busuanzi_count
的配置項:
busuanzi_count: enable: true total_visitors: true total_visitors_icon: user total_views: true total_views_icon: eye # 文章閱讀次數,關閉,避免與leanclound_visitors衝突 post_views: false post_views_icon: eye
fancyBox is a tool that offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages
_config.yml
中是否開啓了 fancyboxfancybox
和 fancybox_css
設置成推薦值參考:
cd themes/next git clone https://github.com/theme-next/theme-next-needmoreshare2 source/lib/needsharebutton
主題配置文件配置:
needmoreshare2: enable: true postbottom: enable: true options: iconStyle: box boxForm: horizontal position: bottomCenter networks: Weibo,Wechat,Douban,QQZone,Twitter,Facebook float: enable: false options: iconStyle: box boxForm: horizontal position: middleRight networks: Weibo,Wechat,Douban,QQZone,Twitter,Facebook
Next 評論配置很簡單,支持很豐富。
front matter
中設置 comments: false
,當前頁就不會顯示評論框了。
disqus: enable: true shortname: xxx count: true
編輯 主題配置文件, 將 disqus 下的 enable 設定爲 true,同時提供您的 shortname。count 用於指定是否顯示評論數量
valine: enable: false # When enable is set to be true, leancloud_visitors is recommended to be closed for the re-initialization problem within different leancloud adk version. appid: xxx # your leancloud application appid appkey: xxx # your leancloud application appkey notify: true # mail notifier , https://github.com/xCss/Valine/wiki https://valine.js.org/notify.html verify: true # Verification code placeholder: ヾノ≧∀≦)o來啊,快活啊! # comment box placeholder avatar: identicon # wavatar retro gravatar style https://github.com/xCss/Valine/wiki/avatar-setting-for-valine guest_info: nick,mail,link # custom comment header pageSize: 10 # pagination size visitor: true # leancloud-counter-security is not supported for now. When visitor is set to be true, appid and appkey are recommended to be the same as leancloud_visitors' for counter compatibility. Article reading statistic https://valine.js.org/visitor.html
頭像設置,能夠用你對應的郵箱設置 Gravatar,這樣你評論時,就是註冊時使用的郵箱了。
郵件提醒,進入Leancloud>選擇你的評論所存放的應用>設置>郵件模板,按下圖設置好用於重置密碼的郵件主題>而後保存:
<p>Hi, {{username}}</p> <p> 你在 {{appname}} 的評論收到了新的回覆,請點擊查看: </p> <p><a href="https://michael728.github.io/" style="display: inline-block; padding: 10px 20px; border-radius: 4px; background-color: #3090e4; color: #fff; text-decoration: none;">立刻查看</a></p>
參考:
參考這兩個教程:
hexo-douban 能夠實現生成豆瓣讀書、電影、遊戲的頁面。具體的使用方法能夠看項目的主頁或者這篇文章
hexo clean && hexo douban -bm && hexo g &&hexo deploy