hexo 简介
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
博客搭建
博客采用 hexo+github pages方式搭建,选择简洁的NexT主题,因网络上相关资料较多,本文只记录步骤,不做详细介绍。
框架搭建
- 在github上新建一个仓库,仓库名必须为 “账户名.github.io”
本地安装nodejs 环境,新建文件夹 “账户名.github.io”,安装hexo环境
1
2
3
4npm install hexo
npm hexo init
npm install
npm install hexo-deployer-git --save修改站点配置文件(根目录下_config.yml),关联本地hexo和git仓库
1
2
3
4
5deploy:
type: git
repo: git@github.com:账户名/账户名.github.io.git
branch: master
message: "hexo deploy"当然,配置这个前提是,github上已经配置过ssh key 认证。
编辑站点配置文件_config.yml,添加个人设置
1
2
3
4
5
6
7title: 京东金融杭州QA
subtitle:
description: 打造业内高精尖白盒测试团队!
keywords:
author: 白盒测试组
language:
timezone:hexo 主题选择
hexo 提供了很多博客主题,在此选择简约的hexo主题。
编辑 hexo 站点配置文件 _config.yml1
theme: next
选择完成后,需要在一级目录themes中添加NexT的源码,具体方法为:
1
2cd 账户名.github.io
git clone https://github.com/iissnan/hexo-theme-next themes/next
属性设置
与博客主题相关的属性设置都在./themes/next/_config.yml文件中,包含博客样式设置,功能主题设置及关联第三方服务的进阶设置。
- 样式设置,包含Scheme布局设置、头像设置、语言设置、菜单设置、侧栏设置等,具体详见next官网
功能主题设置:设置标签和分类页面。如果菜单设置中添加了tags和categories两个标签,则需要对应生成相应的页面
1
2
3cd “账户名.github.io”
hexo new page tags
hexo new page categories进阶设置
博客阅读量统计功能设置
统计工具选择 leanCloud,在官网上注册用户,新建一个Counter应用,记录应用对应的id 和key,修改主题配置文件1
2
3
4leancloud_visitors:
enable: true
app_id: 应用对应的id
app_key: 应用对应的key评论功能设置
曾经红极一时的友言、多说、网易云跟帖相继都关停服务了,而disqus 和facebook 的评论服务器在国外,由于网络限制,用起来也多有不便。调研了一些评论系统,发现leanCloud旗下的评论系统valine,宣称永不停服,相对还是很靠谱的。重要的是NexT 竟然也很好的支持了,意出望外~ 具体配置如下:1
2
3
4valine:
enable: true
appid: 同leanCloud
appkey: 同leanCloudpv uv 统计功能设置
pv 和uv 统计功能使用busuanzi 来进行统计,最新版本的next对busuanzi的支持很好友,已经不需要像老版本那样通过修改post.ejs文件,关联busuanzi的js脚本来实现了,具体设置:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15busuanzi_count:
# count values only if the other configs are false
enable: true
# custom uv span for the whole site
site_uv: true
site_uv_header: 本站访客数
site_uv_footer: 人次
# custom pv span for the whole site
site_pv: true
site_pv_header: 本站总访问量
site_pv_footer: 次
# custom pv span for one page only
#page_pv: true
#page_pv_header: 本文总阅读量
#page_pv_footer: 次因为已经有了learnCloud做阅读量统计,这里就不启用busuanzi阅读量的统计了。
分享功能设置
分享神器jiathis也停服了,暂时使用百度分享来实现博客内容分享功能。1
2
3baidushare:
type: button
baidushare: trueblog author设置
nexT 没有展示博客作者的相关设置,查看了好多文章,没有找到合适的方式。但该功能对于团队博客来说是很重要的,所以去查看了相关源码,找到了markdown渲染的关键代码文件post.swig。对该文件的页面处理逻辑做一些修改,增加了author 标签,目前支持显示blog 的author,但与其他标签相比,缺少好看的样式支持,希望懂前端的同学可以加以补充完善。
博客书写
本地环境安装
选择合适的文件夹,下载博客源码
前提条件: github账号关联jdjrhzqa Organizations,且github配置过ssh key1
2git clone git@github.com:jdjrhzqa/jdjrhzqa.github.io.git
git checkout hexohexo 环境安装
先安装nodejs,后执行npm install 安装相关依赖1
2
3npm install -g hexo-cli
npm install
npm install hexo-deployer-git如果npm速度较慢,建议切换至淘宝的npm 镜像cnpm来安装,具体方法为:
1
2
3
4npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g hexo-cli
cmpm install
cnpm install hexo-deployer-git
博客书写与代码提交
环境安装完成之后,可以愉快写博客啦,博客书写发布需要掌握hexo的相关命令,具体的操作流程如下:
新建一个提交页面
1
hexo new "my new post"
在./source/_posts 目录下找到新建的md 文件,对文件进行编辑操作
md文件中需添加title、categories、tags及author字段,格式可参见已提交博客md文件
md文件编辑完成后,可以在本地运行博客服务,查看内容
1
2
3hexo clean
hexo generate(or hexo g)
hexo server (or hexo s)其中,hexo clean命令可清理已生成的静态页面,hexo generate 命令将markdown文件渲染成静态页面,可简写为hexo g。而hexo server 命令则在本地启动服务器,用于预览主题,可简写为hexo s。如果想直接预览主题,也可跳过前两个命令,直接执行hexo server。
本地博客展示正常,将代码提交至远端仓库,而后将博客发布到远端服务器上
1
2
3git commit -m "xxxx"
git push origin
hexo deploy (or hexo d)
书写博客注意事项
- 如果博客内容需要修改,建议直接在原文件中编辑,不要删除替换原有文件。因为生成时间是博客的标识之一,随意修改会影响到该篇博客的统计数据。
- 仓库里面hexo分支为源码分支,master分支为渲染后的静态页面内容,从github上拉取代码后,注意要切换到hexo分支,代码提交和hexo deploy都在此分支执行。
- 每次hexo deploy发布博客时,仓库中master分支的内容都会被完全覆盖掉,故如无特殊情况,建议大家不要随意修改或者删除hexo分支中已有的博客内容。