看着别人高大上的博客布局,你是不是也想拥有自己的博客。一起来开启搭建自己的博客之旅吧
前提
安装 nodejs
1
2$ node -v
v6.9.1安装 git
1
2$ git --version
git version 2.8.1.windows.1github账户和一个project项目: yourname.github.io
github上已经建好了项目:yourname.github.io,并能在浏览器中访问如:https://yourname.github.io/,如yy.github.io
Hexo安装
到桌面鼠标右键,选择git bash,打开命令行窗口
在命令行中输入:1
npm install hexo-cli -g
看到这些信息,说明安装成功了,再确认一下。 在命令行中输入:1
hexo -v
选择一个路径存放hexo的project项目,如我的:cd ~/skyler/project/mytest/hexo。然后创建一个hexo project项目1
$ hexo init // 初始化hexo,即把hexo的所有的配置文件下载到本地目录(放在当前文件下)
1 | $ npm install // npm将会自动安装你需要的组件 |
1 | $ hexo g // g:generatee 生成js css html等静态文件ra te |
1 | $ hexo s // s:server 本地运行启动,启动后就可以本地访问了 |
hexo s命令运行后,这时候在浏览器输入http://localhost:4000/ 就可以看到hexo已经成功生成了博客,这只是我们本地可以访问。要想远程通过github访问,就要hexo配置github
配置Hexo到Github
- 通过上图可以看到,在~/skyler/project/mytest/hexo有个_config.yml文件,这个是dexo的配置文件。分为几大部分:Deployment,site,Directory,Category & Tag,Extensions···模块等
Deployment用于配置远程的gtihub库地址的。配置之前需要登录GitHub账号,新建一个Repository,命名时需要注意,GitHubPage的名字必须是:用户名.github.io。如我的github用户名是yaoyuanyy,这个Repository的名字必须是yaoyuanyy.github.io,这样这个库才能作为GitHubPage的库。
回到_config.yml文件的Deployment部分
初始化时:1
2deploy:
type:
修改成:1
2
3
4deploy:
type: git
repository: git@github.com:yaoyuanyy/yaoyuanyy.github.io.git
branch: master
修改后保存,重新编译和发布1
2
3$ hexo g
$ hexo d
1 | 如果出现以下异常 |
之后来到你的github库:yourname.github.io。刷新,正常你会看到,多了许多文件,如下图
现在可以远程访问了,浏览器输入https://yourname.github.io/,如:https://yy.github.io/
##更新hexo博客配置各个模块,丰富hexo功能
基本的github-pages已经搭起来了。如果想精细化自己的博客,如博客主题,加入第三方服务:评论、打赏、访问量计数等
变更theme模块为:NexT
Hexo默认的theme: landscape,现在很多人都喜欢next主题
安装NexT主题1
2$ cd ~/skyler/project/mytest/hexo
$ git clone https://github.com/iissnan/hexo-theme-next themes/next
修改~/skyler/project/mytest/hexo/_config.yml文件的Extensions部分,修改为:1
2
3
4
5# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
## theme: landscape
theme: next
依次执行1
2
3$ hexo clean
$ hexo g
$ hexo d
刷新https://yaoyuanyy.github.io,可以看到新的主题效果。NexT还可以精细化配置,下文详细介绍
更新site模块
此外:~/skyler/project/mytest/hexo/_config.yml文件的Site模块来设置博客的作者、邮箱、语言等。
配置如下修改为1
2
3
4
5
6
7
8# Site
title: **-blog
subtitle:
description: 个人技术网站分享
author: **
email: **@gmail.com
language: zh-Hans // 中文
timezone:
打赏
1 | // TODO |
文章阅读统计
文章阅读量统计 LeanCloud1
// TODO
文章字数展示设置
- 显示统计字数和估计阅读时长
- 注意:这个要安装插件,先进入站点文件夹根目录
- 然后:npm install hexo-wordcount –save
1
2
3
4
5
6
7
8
9
10
11
12
13# Post wordcount display settings
# Dependencies: https://github.com/willin/hexo-wordcount
post_wordcount:
# 文本显示
item_text: true
# 文章字数统计
wordcount: true
# 阅读时长
min2read: true
# 站点总字数统计
totalcount: false
# 该post_wordcount的所有设置另起一行显示
separated_meta: true
增加百度统计
百度统计能够清晰看出网站访问数据。在百度官网注册账号后,添加绑定个人网站,在管理页面中找到代码获取1
2
3
4
5
6
7
8
9<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?94ae7654e2dc1739de6dffa8904d5c82";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
将代码中94ae7654e2dc1739de6dffa8904d5c82复制到next主题_config.yml的baidu_analytics中。接下来通过代码安装检查来检查代码是否安装成功,安装成功后便可查看网站详细统计信息
头像设置 Sidebar Avatar
打开 主题配置文件 找到Sidebar Avatar字段,加入tao.jpg1
2
3# Sidebar Avatar
avatar: /images/tao.jpg
## 这是头像的路径,只需把你的头像命名为header.jpg(随便命名)放入themes/next/source/images中,将avatar的路径名改成你的头像名就OK啦!
站点地图
运行命令1
$ npm install hexo-generator-sitemap --save
放入themes/next/_config.yml,menu下增加sitemap: /sitemap.xml || sitemap1
2
3# Menu Settings
menu:
sitemap: /sitemap.xml || sitemap
增加评论功能
再有:添加多说评论服务的时候,需要修改URL和Extensions部分1
2
3# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://**.github.io,如 https://yy.github.io
1 | # Extensions |
文章后面会详细介绍添加多说评论服务
文章列表分页
1 | # 运行命令 |
精细化博客主题NexT
如果要修改博客的菜单栏位置、显示items、字体大小等,这些设置都在具体的主题theme的配置文件中,如我的主题theme是NexT,那么这些设置需要在~/skyler/project/mytest/hexo/themes/next/_config.yml中(注意与上面所说的_config.yml的位置区别)。
NexT主题有三个,默认是Muse1
2
3
4# Schemes
scheme: Muse
#scheme: Mist,
#scheme: Pisces
我喜欢Mist,所以以这个为例,修改为:1
2
3
4# Schemes
# scheme: Muse
scheme: Mist
#scheme: Pisces
重新编译,生成,发布1
2
3$ hexo clean
$ hexo g
$ hexo d
刷新github库,刷新https://yy.github.io/,可以看到新的效果
变更博客分类、标签、关于
默认hexo支持首页和归档,分类、标签、关于需要我们自己添加.
打开~/skyler/project/mytest/hexo/themes/next/_config.yml,找到Menu Settings,修改为:1
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# ---------------------------------------------------------------
# Menu Settings
# ---------------------------------------------------------------
# When running the site in a subdirectory (e.g. domain.tld/blog), remove the leading slash (/archives -> archives)
menu:
home: /
categories: /categories
about: /about
archives: /archives
tags: /tags
#sitemap: /sitemap.xml
#commonweal: /404.html
# Enable/Disable menu icons.
# Icon Mapping:
menu_icons:
enable: true
#KeyMapsToMenuItemKey: NameOfTheIconFromFontAwesome
home: home
about: user
categories: th
schedule: calendar
tags: tags
archives: archive
sitemap: sitemap
commonweal: heartbeat
新建tags页面
运行以下命令1
2# 在~/skyler/project/mytest/hexo/source目录下会生成一个tags文件夹,里面包含一个index.md文件
$ hexo new page "tags"
修改index.md文件1
2
3title: tags
date: 2015-09-29 14:37:02
type: "tags"
注意:如果有启用多说 或者 Disqus 评论,默认页面也会带有评论。需要关闭的话,请添加字段 comments 并将值设置为 false,如:
1 | title: tags |
新建categories页面
运行以下命令1
hexo new page categories
同时,在/source目录下会生成一个categories文件夹,里面包含一个index.md文件。修改/source/categories目录下的index.md文件1
2
3title: categories
date: 2015-09-29 14:47:21
type: "categories"
新建关于页面
1 | hexo new page about |
同时,在/source目录下会生成一个about文件夹,里面包含一个index.md文件。修改/source/about目录下的index.md文件1
2
3title: about
date: 2017-03-09 20:37:11
type: "about"
侧边栏头像设置
编辑站点配置文件(~/skyler/project/mytest/hexo/themes/next/_config.yml),增加avatar字段1
2# 头像
avatar: /images/tao.jpg
头像图片文件须放置在主题的/source/images/目录下(绝对路径:~/skyler/project/mytest/hexo/themes/next/source/images)
首页文章以摘要形式显示
最简单的方式是:打开主题配置文件,找到如下位置,修改1
2
3auto_excerpt:
enable: true
length: 150 // 其中length代表显示摘要的截取字符长度。
设置首页文章显示篇数
Step 1: 安装相关插件
输入如下命令1
2
3npm install --save hexo-generator-index
npm install --save hexo-generator-archive
npm install --save hexo-generator-tag
Step 2:
安装完插件后,在站点配置文件中,添加如下内容1
2
3
4
5
6
7
8
9
10index_generator:
per_page: 5
archive_generator:
per_page: 20
yearly: true
monthly: true
tag_generator:
per_page: 10
其中per_page字段是你希望设定的显示篇数。index, archive及tag开头分表代表主页,归档页面和标签页面。
参考:1
2
3https://www.cnblogs.com/liziczh/p/9318656.html
https://bjtu-hxs.github.io/2018/06/12/leancloud-config/
https://theme-next.iissnan.com/third-party-services.html