环境准备
- 安装git 下载地址
- 安装Nodejs 下载地址
- 添加SSH Key到GitHub
安装cnpm
npm太慢,而且经常失败,使用淘宝镜像:1
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装hexo
git bash下执行以下命令安装:
1
cnpm i -g hexo
新建目录博客目录:C:/ADEV/myblog
cd 到myblog并执行以下命令初始化hexo:
1
hexo init
接下来的命令如果不是特意说明,都是在站点目录下执行。
- 查看博客雏形:
1
2
3hexo clean #清理
hexo g #生成网页
hexo s #启动本地服务器
在浏览器中打开http://localhost:4000 ,就可以看到本地博客主页了。
创建文章
Ctrl+C退出hexo服务,执行以下命令创建新的文章:1
hexo new test
终端会有以下输出:1
INFO Created: C:\ADEV\myblog\source\_posts\test.md
Hexo所有的文章都是Markdown文件,以后也可不通过命令,直接在_posts目录下创建新的文章。
美化博客 - 使用Next主题
Hexo有很多第三方主题,研究了一圈,最终决定使用Next。
Next很美观,很成熟,集成了你能想到的所有功能,大部分情况下只需要修改主题配置文件就行了,强烈推荐。
- 下载地址: https://github.com/theme-next/hexo-theme-next
- 解压到
C:/ADEV/myblog/themes
目录下,并重命名为next6
- 打开站点配置文件
C:/ADEV/myblog/_config.yml
, 找到theme
字段,并将其值更改为next6
1
theme: next6
两个重要的配置文件
构建博客的过程中会经常修改一下两个配置文件:
- 站点配置文件:
C:/ADEV/myblog/_config.yml
- 主题配置文件:
C:/ADEV/myblog/themes/next6/_config.yml
发布到GitHub
- 创建一个GitHub repository,名称为yourgithubname.github.io(yourgithubname替换为你的GitHub账户名)
修改站点配置文件:
1
2
3
4deploy:
type: git
repo: https://github.com/yourgithubName/yourgithubName.github.io.git
branch: master注意格式,子项前面有两个空格,冒号后面有一个空格。
如果接下来发布出错,请尝试将repo
修改成以下形式:1
repo: git@github.com:yourgithubName/yourgithubName.github.io.git
安装发布模块:
1
npm install hexo-deployer-git --save
执行以下命令发布:
1
2
3hexo clean
hexo g
hexo d #发布在浏览器访问
https://yourgithubname.github.io
,就可以看到你的博客了。
站点配置:
以下配置请查找关键字修改。
语言改为中文:
1
language: zh-CN
注意在你的主题
language
目录下应该包含你所配置的语言配置文件,本例为:C:/ADEV/myblog/themes/next6/languages/zh-CN.yml
。
Next不同版本中文配置名字可能不一样,有的版本是zh-Hans
,请根据具体情况配置。标题&作者:
1
2title: 善生的个人博客
author: 善生URL唯一化:
安装模块:
1
cnpm install hexo-abbrlink --save
修改配置:
1
2
3
4
5
6
7# URL
permalink: post/:abbrlink.html
permalink_defaults:
abbrlink:
alg: crc32 # 算法:crc16(default) and crc32
rep: hex # 进制:dec(default) and hex
自定义博文文件名格式(添加日期前缀,方便管理):
1
2# Writing
new_post_name: :year:month:day-:title.md # File name of new posts图片文件夹:
1
2# Writing
post_asset_folder: true使用命令创建新的博文之后,会在博文同一目录下生成和博文同名的文件夹,把图片放入此文件夹下,图片有两种使用方法:
1
2
3![说明](图片.jpg)
{% asset_img 图片.jpg 说明 %}
主题配置:
站点日期:
1
2footer:
since: 2018去掉底部一些链接:
1
2
3
4
5
6powered:
enable: false
version: false
theme:
enable: false
version: false博客标签页面,分类页面:
执行以下命令:
1
2hexo new page tags
hexo new page categories修改标签页
C:/ADEV/myblog/source/tags/index.md
:1
2
3
4
5
6
title: 所有标签
date: 2018-08-15 22:56:08
type: "tags"
comments: false修改分类页
C:/ADEV/myblog/source/categories/index.md
:1
2
3
4
5
6
title: 所有分类
date: 2018-08-15 23:04:31
type: "categories"
comments: false修改主题配置文件:
1
2
3menu:
tags: /tags/
categories: /categories/
Next样式:
Next有四种样式,我使用的是
Pisces
:1
2# Schemes
scheme: Pisces个人GitHub和Email:
1
2
3social:
GitHub: https://github.com/lano2088
E-Mail: mailto:warrenvip@163.com头像:
将头像图片放到此位置:
C:\ADEV\myblog\themes\next6\source\images\main.png
,也可以是gif文件。修改主题配置:1
2avatar:
url: /images/main.png更改头像最大宽度:
根据你的头像宽度,修改样式文件:
C:/ADEV/myblog/themes/next6/source/css/_variables/Pisces.styl
:1
$site-author-image-width = 220px
如果你用的是其它样式,请修改对应的文件。
开启打赏功能:
将你的微信和支付宝二维码放到主题的images目录下:
1
2
3
4# Rewards
reward_comment: 欢迎打赏
wechatpay: /images/wechatpay.png
alipay: /images/alipay.png百度分享:
1
2baidushare:
type: button
文章阅读量,访客统计:
编辑主题配置文件:1
2
3
4
5
6
7
8busuanzi_count:
enable: true
total_visitors: true
total_visitors_icon: user
total_views: true
total_views_icon: eye
post_views: true
post_views_icon: eye
集成第三方评论功能
第三方评论插件有很多,但是好用的不多。尝试过用来必力,但是注册失败了。看了下畅言,需要绑定备案的域名,不支持GitHub,好像免费版还有广告。最后决定使用gitment
,他是借助了GitHub的issues功能实现的。好像可以实现有评论发送邮件,如果有自己的域名,再绑定腾讯企业邮箱,可以实现微信推送,具体还没研究。
gitment示例页面: https://imsun.github.io/gitment/
注册 GitHub OAuth Application
点击此处 来注册一个新的 OAuth Application。其他内容可以随意填写,但要确保填入正确的 Authorization callback URL(一般是评论页面对应的域名,如 https://lano2088.github.io 或者个人域名:http://lanovip.xyz ,多个站点不能共用)。
你会得到一个 client ID 和一个 client secret,这个将被用于之后的用户登录。
- 编辑主题配置文件:
1
2
3
4
5
6gitment:
enable: true
github_user: your_github_name # MUST HAVE, Your Github Username
github_repo: your_comment_repo # MUST HAVE, The name of the repo you use to store Gitment comments
client_id: your_client_id # MUST HAVE, Github client id for the Gitment
client_secret: your_client_secret # EITHER this or proxy_gateway, Github access secret token for the Gitment
每篇文章发布之后需要到文章页面底部用你的GitHub账户登录,初始化评论。虽然有点麻烦,个人觉得还好。毕竟个人博客文章量有限。网上有批量初始化方法,请自行百度。
博客搜索功能
安装模块:
1
cnpm install hexo-generator-searchdb --save
修改站点配置:
1
2
3
4
5
6# 搜索
search:
path: search.xml
field: post
format: html
limit: 10000修改主题配置:
1
2local_search:
enable: true
修改文章内链接文本样式
修改文件 themes\next6\source\css_common\components\post\post.styl,在末尾添加如下css样式:1
2
3
4
5
6
7
8
9
10
11// 文章内链接文本样式
.post-body p a{
color: #0593d3;
border-bottom: none;
border-bottom: 1px solid #0593d3;
&:hover {
color: #fc6423;
border-bottom: none;
border-bottom: 1px solid #fc6423;
}
}
其中选择.post-body
是为了不影响标题,选择 p
是为了不影响首页“阅读全文”的显示样式,颜色可以自己定义。
压缩发布 - 优化博客加载速度
在站点的根目录下执行以下命令:1
2cnpm install gulp -g
cnpm install gulp-minify-css gulp-uglify gulp-htmlmin gulp-htmlclean gulp --save
新建 gulpfile.js ,并填入以下内容:
1 | var gulp = require('gulp'); |
生成博文时执行hexo g && gulp
就会根据gulpfile.js
中的配置,对public
目录中的静态资源文件进行压缩。
七牛云CDN加速
把图片放到七牛云上面,生成外链,可以优化博客访问速度。七牛云的免费流量完全可以满足个人博客的需求。