什么是Hexo
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
生成静态网页即可托管到任何支持静态网页的服务器上。
什么是GitPage
GitHub Pages 与GitHub同属一个研发组织,免费为你的GitHub项目提供项目部署和托管服务,一个GitHub账号可以创建一个GitPage空间。GitPage支持静态和markdown语法的项目,并与GitHub上的项目实时同步自动渲染。所以你可以很容易使用GitPage搭建自己的博客。
特别注意:一个GitHub账号只能创建一个GitPage空间,并且名称有特殊要求下文详细说明。
可选框架:
jekyll
环境准备
1 | nodejs |
创建github账号和同名项目
- 申请账号如:wangzhikui
- 创建同名项目:wangzhikui.github.io
如图:
进入项目的【setting > GitHub Pages】
如图:
按照描述设置开启即可。
到此为止GitPages已经可以使用,提交到wangzhikui.github.io的静态或markdown形式的文件会自动同步到GitPages空间。可通过http://wangzhikui.github.io访问。
配置域名(无此需要可跳过)
一、上一步GitPages设置中设置域名如:wangzhikui.com
二、配置域名的A地址和CNAME别名
本域名在阿里云申请,所以登录aliyun.com进入域名配置,域名解析做如下配置
三、项目根目录中添加名为CNAME的文件,内容为 wangzhikui.com
hexo使用
安装hexo并使用hexo创建项目
安装hexo脚手架工具并使用脚手架创建项目1
2
3
4
5npm install hexo-cli -g
hexo init wangzhikuiblog
cd wangzhikuiblog
npm install
hexo server
- 全局安装脚手架hexo-cli
- 创建一个名为wangzhikuiblog的项目
- 进入项目目录
- 安装依赖包
- 启动服务
服务启动成功出现如下图:
通过http://localhost:4000访问示例程序
到此使用hexo创建项目已经完成
手动部署
进入项目目录运行命令1
hexo g
则会在项目路径中生成一个public文件夹,里边的内容即为hexo为我们生成的所有静态文件。手动将public里边的所有文件git传到wangzhikui.github.io即可。
到此可通过
http://wangzhikui.bighub.io
或域名(如果配置了)
http://wangzhikui.com
访问你的网站。
自动部署
打开项目根目录下的_config.yml 找到如下配置:1
2
3
4deploy:
type: git
repo:
github: git@github.com:wangzhikui/wangzhikui.github.io.git
运行命令1
hexo d
则将public下的文件部署到wangzhikui.github.io.git上,我这里只有一个分支master,所以默认,如果要填写分支可以配置repo。建议保持一个分支就可以了。
hexo d 命令push代码使用的是ssh,所以需要配置github的ssh key 关于key生成配置这里不赘述。
注:如果本地要维护两个github账号,这种情况有可能遇到ssh key冲突,该情况在下一篇博文描述
hexo生成的项目目录结构简介
使用hexo创建的项目路径如下图:
hexo常用命令
命令 | 简写 | 描述 |
---|---|---|
hexo server | hexo s | 启动服务 |
hexo generate | hexo g | 生成静态文件 |
hexo deploy | hexo d | 将静态文件部署到github上 |
hexo clean | 无 | 清除缓存文件 (db.json) 和已生成的静态文件 (public) |
查看更多命令: hexo 命令大全
本人在部署的时候喜欢使用三个命令组合1
2
3hexo clean
hexo g
hexo d
使用主题
主题文件存放在 /themes下。本博客基于主题hexo-theme-pure 修改而来。大家也可前往hexo 主题库 下载自己需要的主题。
下载主题后放入/thems下
打开项目根目录的配置文件._config.yml.修改配置theme为你主题的文件夹名称即可1
theme: hexo-theme-yyy
创建博文
通过命令
进入项目目录1
hexo new test
常见一篇名为test.md的博文,路径在/source/_posts/test.md
打开test.md使用markdown编辑即可。
手动创建
直接在_posts文件夹下创建一个test.md的文件即可
高亮代码块添加复制功能
使用第三方插件clipboard.js
clipboard.js
clipboard.min.js 推荐
步骤一、下载文件保存到 themes/hexo-theme-yyy/source/js 下
步骤二、创建文件: clipboard-use.js 放到themes/hexo-theme-yyy/source/js下内容如下
1 | /*页面载入完成后,创建复制按钮*/ |
步骤三、修改 themes/hexo-theme-yyy/layout/_common/script.ejs
在末尾添加,注意一定先添加clipboard.min,另外后面不带.js后缀1
2<%- js('js/clipboard.min') %>
<%- js('js/clipboard-use') %>
步骤四、在如下两个css中添加样式代码
themes/hexo-theme-yyy/source/css/style.css
themes/hexo-theme-yyy/source/css/style.min.css1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34.highlight{
position: relative;
}
.btn-copy {
display: inline-block;
cursor: pointer;
background-color: #eee;
background-image: linear-gradient(#fcfcfc,#eee);
border: 1px solid #d5d5d5;
border-radius: 3px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-appearance: none;
font-size: 13px;
font-weight: 700;
line-height: 20px;
color: #333;
-webkit-transition: opacity .3s ease-in-out;
-o-transition: opacity .3s ease-in-out;
transition: opacity .3s ease-in-out;
padding: 2px 6px;
position: absolute;
right: 5px;
top: 5px;
opacity: 0;
}
.btn-copy span {
margin-left: 5px;
}
.highlight:hover .btn-copy{
opacity: 1;
}
复制功能参考
https://www.jianshu.com/p/3e9d614c1e77
未完待续
hexo的_config.yml和themes_config.yml分别有哪些重要配置
hexo中博文md文件都有哪些配置
hexo中使用gitalk添加评论功能
一个hexo主题都包含什么,如何入手修改主题满足自己个性化设置
本地同时维护两个github账号如何设置ssh key