通过Hexo+Next和Github Pages搭建私人博客。
- Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
- NexT 是Hexo的一套漂亮精简的Theme,内集成第三方评论、RSS订阅、文章分类、文章标签、搜索等功能。
- Github Pages 是面向用户、组织和项目开放的公共静态页面搭建托管服务,站点可以被免费托管在Github上。
这是我阅读的hexo相关的博客 www.cduyzh.com、thief.one
准备工作
- nodejs 环境,建议通过nvm安装。安装之后通过npm install yarn -g安装yarn包管理工具。
- git和github账号。
名词解释:
- 站点目录 - 博客根目录
- 主题目录 - 站点目录下theme目录下具体的主题目录,如landscape。
- 站点配置文件 - 站点目录下的_config.yml
- 主题配置文件 - 主题目录下的_config.yml,配置主题信息
初始化hexo
1 | # 创建博客目录 |
通过hexo s
命令启动之后,博客服务可以通过localhost:4000
访问。
初始化的博客会默认使用landscape
主题。
关联博客与github
在github上创建{accout}.github.io的仓库,{accout}为github用户名。
此时可以访问{account}.github.io域名,得到404页面。我的仓库为sat1993.github.io,因此下面都以此为例。
修改博客目录下的_config.yml(站点配置文件)
,将deploy节点下的type修改为git,并配置仓库信息。
1 | deploy: |
如果deploy.repository
想要配置ssh协议,需要配置git信息。
部署服务到github上。
1 | # 安装hexo git部署插件。在站点目录下运行: |
部署完成后,可以通过sat1993.github.io访问到Hello World
博文。
域名绑定
通过sat1993.github.io访问实在是不雅。这里可以绑定自己的域名。
但绑定自己的域名是无法设置https安全证书的。
域名解析:
1 | 记录类型: CNAME |
hexo绑定CNAME文件。如果不添加该文件将一直跳转404页面。这也算是防止别人挂一个域名盗用博客。
1 | # 进入站点目录。 |
通过hexo g
和hexo d
之后,便可以通过自己的域名访问服务了。
发布第一篇博文
通过hexo new my-first-blog
可以初始化第一篇博文到站点目录/source/_posts
下。
1 | --- |
在---
后编写博文,通过hexo s
启动服务,访问http://localhost:4000/2018/01/10/my-first-blog 。
确认博客无误之后,通过hexo g
和hexo d
部署发布博文。通过http://blog.bakka.site/2018/01/10/my-first-blog 访问正式的博文。
如果要删除博文,直接删除站点目录/source/_posts/my-first-blog.md
再通过hexo g && hexo d
部署到github上就ok了。
博文起始字段含义:
- title 文章的标题
- date 创建日期 (文件的创建日期 )
- updated 修改日期 ( 文件的修改日期)
- comments 是否开启评论 true,默认为false
- tags 标签
- categories 分类
- permalink url中的名字(文件名)
博文备份
hexo是通过本地解析将站点目录/source/_posts/
下的md文件解析成html文件,保存在public目录下。
其他的静态资源也会保存在站点目录/public
下。
如果不小心丢失本地的站点目录,将会导致无法更新博客。
在站点目录下通过git init
构建git仓库。通过github创建仓库。
修改.git/config
,在文件结尾添加。
1 | [remote "origin"] |
因为本地已有.gitignore文件。因此我是没有修改.gitignore的。
若不存在该文件,则修改成如下内容。
1 | .DS_Store |
通过git命令上传仓库。
上传主题仓库
上传站点目录时,我们发现主题所在仓库是无法上传到git上的。因为我们的主题目录本身也是git clone
下来的。
这里可以通过删除主题仓库的git相关文件(不建议):
1 | ~ rm -rf .git* |
或者fork https://github.com/iissnan/hexo-theme-next
作为自己的一个主题仓库。
修改.git/config
文件:
1 | [core] |
上传我们的主题改动。将该仓库作为我们独有改动过的仓库。
虽然这样导致我们会有2个git仓库存我们的博客代码,但是分站点、主题两个部分去维护,也是可以的。
站点配置
配置站点基本信息,如语言、作者、标题等。
站点基础配置
修改站点配置文件_config.yml
,修改# Site
下的配置:
1 | # Site |
这里主要修改title、author、language
三个属性。
配置主题为NexT
到站点目录,克隆主题到主题目录:
1 | # 克隆NexT项目到themes/next目录下 |
修改站点配置文件_config.yml当前主题为next(themes目录下的主题目录名)
1 | theme: next |
运行hexo g && hexo d
生成静态文件并发布。
站点404页面设置
腾讯公益404页面,寻找丢失儿童,让大家一起关注此项公益事业!效果如下 http://www.ixirong.com/404.html
使用方法,新建 404.html 页面,放到主题的 source 目录下,内容如下:
1 | <!DOCTYPE HTML> |
配置默认博文模板
修改站点目录下scaffolds/post.md
文件,修改为:
1 | --- |
这样每次hexo new blog
的时候,都会带有这些起始字段。
博文压缩
在站点目录下执行:
1 | # 安装gulp工具命令 |
在站点根目录下新建gulpfile.js
,并填入以下内容:
1 | var gulp = require('gulp'); |
之后可以通过hexo g && gulp
来生成静态资源并压缩了。
添加搜索功能
安装hexo-generator-searchdb,在站点目录下执行:
1 | yarn add hexo-generator-searchdb |
编辑站点配置文件_config.yml,添加以下内容:
1 | search: |
编辑主题配置文件_config.yml,启用本地搜索功能:
1 | # Local search |
主题配置
主要配置主题的基本信息,标签、菜单、CopyRight等。
修改网站页签图标
修改主题配置文件_config.yml,在favicon字段中修改small、medium:
1 | favicon: |
将自己的图标(16x16、32x32)放置到主题目录的source/images
目录下。
1 | ~ mv my-16x16-icon.png theme/next/source/images/favicon-16x16.png |
刷新服务即可。
设置首页不显示全文
修改主题配置文件_config.yml,将auto_excerpt.enable
设置为true:
1 | # Automatically Excerpt. Not recommand. |
菜单管理
修改主题配置文件_config.yml
,在menu
字段中添加字段:
1 | menu: |
修改主题目录下的languages/zh-Hans.yml
文件,更新中文展示:
1 | menu: |
最后在主题目录下的source
目录下创建about目录,并放入index.html文件即可。
添加标签、分类菜单
添加标签菜单
修改主题配置文件,添加menu.tags: /tags/ || tags
。
1 | menu: |
定位到站点目录下,使用hexo新建一个页面tags:
1 | hexo new page tags |
编辑刚刚生成的页面(source/tags/index.md),将页面类型设置为tags:
1 | --- |
可以通过comments参数开启评论.
添加分类菜单
修改主题配置文件,添加menu.categories: /categories/ || th
1 | menu: |
定位到站点目录下,使用hexo新建一个页面categories:
1 | hexo new page categories |
编辑刚刚生成的页面(source/categories/index.md),将页面类型设置为categories:
1 | --- |
可以通过comments参数开启评论
设置完毕后通过hexo g&& hexo s
快速查看效果。
修改js、css CDN配置
通过修改主题的固定js、css到公开静态资源仓库
,降低github的流量访问,提升读客访问博文。
这里推荐使用Staticfile CDN
修改主题配置文件_config.yml:
1 | vendors: |
注释的部分是当前版本的NexT所使用的版本。建议引用的CDN版本一定要一直。
修改完成后,通过hexo s
预览下效果。
添加顶部加载条
修改主题目录下的layout/_custom/header.swig
文件,添加如下内容:
1 | <script src="https://cdn.staticfile.org/pace/1.0.2/pace.min.js"></script> |
通过hexo s
运行本地服务访问首页就可以看到效果了。
隐藏网页地步Powered By信息
修改主题配置文件_config.yml。修改footer.powered
、footer.theme.enable
和footer.theme.version
为false:
1 | footer: |
添加来必力评论
登陆来必力,点击右上角头像->管理页面->安装Free版本
。
填入站点信息之后,将会获得如下代码:
1 | <!-- 来必力City版安装代码 --> |
其中第一行div
标签的data-uid
属性复制出来。
填入到主题配置文件的livere_uid
属性中:
1 | livere_uid: xxxx |
在hexo g && hexo s
之后即可看到文章最下方的评论。
添加访问统计
登陆百度统计,添加网站后,获取到如下代码:
1 | <script> |
获取hm.js?
后的统计Idxxxxx
将其填入主题配置文件_config.yml中
1 | baidu_analytics: xxxxx |
在hexo g && gulp && hexo s
之后即可添加百度统计。hexo d
之后即可在百度分析后台看到数据了。