30分钟即可完成一个带评论、打赏、搜索、RSS、分类、标签等功能的博客
高效的搭建让博主更加专注于内容的生产
准备工作
- 必须安装git和node,官网有各平台详细的安装过程
- 准备一张头像和网站favicon
- 200*200方形或圆形头像 (用来显示作者头像)
- 32*32的favicon (浏览器打开网站标签的一个ico)
- hexo全局的图标配置信息均来自fontawesome
- 所有的配置项在修改的时候一定要记住 冒号 后是有一个空格的,不然保存后 在执行
hexo server会失败
开始安装
git和node安装完后进入到博客的文件夹内,执行下面代码(均在终端操作)1
2
3
4
5
6$ npm install hexo-cli -g #全局安装hexo命令
$ hexo init blog #在当前目录下,初始化hexo一个名为blog项目
$ cd blog #进入该目录
$ git clone https://github.com/theme-next/hexo-theme-next themes/next #安装next主题
$ npm install #安装项目必备插件
$ hexo server #本地启动项目
如果以上步骤均正确可以 点击即可看到博客首页 或 浏览器输入 localhost:4000 即可看到博客首页,如不能请检查之前的步骤是否正确,此时你已经完成了50%的工作
先找到 站点配置文件
blog/_config.yml
重要提示:修改每一个配置的时候都可以刷新页面观看修改结果,如果不显示可以在终端的博客目录执行
1
2 $ hexo clean
$ hexo server
站点配置
先设置hexo的next主题
找到theme后修改为:1
theme: next #配置成刚下载的next主题
配置hexo网站相关信息
找到site的设置 按下面备注修改相关信息1
2
3
4
5
6
7
8# Site
title: 东行不西游 #网站标题
subtitle: 风在前,无惧! #网站副标题
description: 心猿不定,意马四驰 #描述,介绍网站的
keywords: python,php,mysql,滑雪,摄影 #网站的关键字
author: Bowen #博主姓名
language: zh-CN #语言 zh-CN 是简体中文
timezone: UTC #时区设置hexo永久链接
设置永久链接的目的是为了便于分享和seo优化.这样别人收藏地址后不会出现链接失效1
2
3
4
5# URL
url: https://dangbowen.com #网站的首页地址
root: / #网站的根目录设置
permalink: :year/:month/:day/:title.html # 这种
设置的url表现为2018/10/18/hello-world.html 样式默认链接样式可修改为 (permalink配置只能有一种,关闭某种开头加 #)
1
permalink: :category/:title.html #用分类和博客title当做url地址
设置hexo中的默认分类
找到Category & Tag1
2# Category & Tag
default_category: default #这里设置一个默认分类名称,如果第3条永久链接设置为 permalink: category/:title/ 那么没有分类的博客就会被放在default这个分类下进行归档
额外配置:hexo如何配置git信息(可跳过!后续新开一贴详细介绍)
github和coding都提供page服务,这样我们就可以把博客静态资源发布到这2个仓库,然后用域名来访问博客,所有人都可以通过浏览器来观看你的博客.双仓库格式如下:_1
2
3
4
5deploy:
type: git
repo:
github: https://github.com/{your_name}/{your_name}.github.io,master #github 提供page的服务要求仓库名必须为 {your_name}.github.io 格式 比如你的github用户名为 abc 那么你必须建立一个 abc.github.io仓库
coding: https://git.coding.net/{your_name}/{your_name}.git,master #coding要求page服务的仓库名为 用户名 一样 .例如:用户名为abc 仓库名也必须为abc
先找到 主题配置文件
blog/themes/next/_config.yml,修改配置的时候都可以刷新页面观看修改结果,如果不显示可以在终端的博客目录执行
1
2 $ hexo clean
$ hexo server
主题配置
配置hexo网站的favicon
把准备好的favicon放在blog/themes/next/source/images/下1
2
3favicon:
small: /images/favicon-16x16-next.png #把favicon名修改成你自己的
medium: /images/favicon-32x32-next.png配置hexo中的tag,categories菜单
默认菜单只开启了首页和归档,hexo所有图标均来自fontawesome1
2
3
4
5
6
7
8
9
10
11menu: #菜单设置为 菜单名: /菜单目录 || 菜单图标名字
home: / || home
about: /about/ || user
tags: /tags/ || tags
categories: /categories/ || th
archives: /archives/ || archive
commonweal: /404/ || heartbeat
menu_settings:
icons: true #显示图标
badges: true #显示统计信息手动生成hexo菜单对应文件
新菜单开启后是没有对应文件的,所以要手动生成about,tags,categories和404页面,这里我们将404替换成腾讯的公益页面
新建about页面1
2$ cd blog
$ hexo new page about #about就是普通的布局一般用来介绍站点信息和博主信息等新建一个tags页面
1
2$ cd blog
$ hexo new page tags找到tags文件
blog/source/tags/index.md编辑它,在头部修改为1
2
3
4
5
6---
title: All tags
date: 2018-10-01 13:58:44 #时间随意
type: "tags" #类型一定要为tags
comments: false #提示找个页面不需要评论,后续评论插件那里会详细介绍
---新建一个categories页面
1
2$ cd blog
$ hexo new page categories找到categories文件
blog/source/categories/index.md编辑它,在头部修改为1
2
3
4
5
6---
title: 分类
date: 2018-10-15 00:03:57
type: "categories"
comments: false
---新建一个404页面
1
2$ cd blog
$ hexo new page 404找到404文件
blog/source/404/index.md编辑它,内容全部替换成如下1
2
3
4
5
6
7
8
9
<html lang="en">
<head>
<meta charset="UTF-8">
<title>404</title>
</head>
<body>
<script type="text/javascript" src="//qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js" charset="utf-8" homePageUrl="/" homePageName="返回"></script>
</body></html>配置hexo本地搜索
安装插件,终端进入cd blog后执行:1
npm install hexo-generator-searchdb --save
主题配置文件如下:
1
2
3
4
5local_search:
enable: true
trigger: auto
top_n_per_article: 1
unescape: false站点配置文件新添加如下代码:
1
2
3
4
5search:
path: search.xml
field: post
format: html
limit: 100设置hexo中的rss订阅
rss需要安装一个插件,终端进入cd blog后执行:1
npm install hexo-generator-feed --save
刷新主页就可以看到rss
配置hexo站点的footer信息
底部footer可以开关显示hexo版权,theme版权,还有建站时间等个性化配置1
2
3
4
5
6
7
8
9
10
11
12footer:
since: 2015 #建站开始时间
icon:
name: user #设置 建站初始时间和至今时间中间的图标 默认是一个'小人像'更改user为heart可以变成一个'心'
color: "#808080" #更改图标的颜色 红色为 '#ff0000'
powered:
enable: true #是否开启hexo驱动
version: true #是否开启hexo版本号
theme:
enable: true #是否开启theme驱动
version: true #是否开启主题版本号
custom_text: Hosted by <a target="_blank" rel="external nofollow" href="https://pages.coding.me"><b>Coding Pages</b></a> #这里的底部标识是为了添加coding page服务时的版权声明 打开注释就可以看到底部有一个 hosted by coding pages配置hexo中next主题样式选择
next一共提供了4种首页样式,按照自己喜好选择一个,切记选择一个其他主题后其他的主题之前一定要加上#1
2
3
4
5# Schemes
scheme: Muse
#scheme: Mist
#scheme: Pisces
#scheme: Geminihexo网站next主题侧边栏宽度,头像信息,头像设置圆形和头像旋转
1
2
3
4
5
6
7
8
9
10
11
12
13sidebar:
position: left #选择pisces 或者 gemini 主题是 可以 选择侧边栏 位置 调整左边或者右边
#position: right
width: 300 # muse mist 主题 可以控制侧边栏的宽度
display: post #如果是muse mist 主题 可以选择 侧边栏弹出动作 post 是 只在内容页弹出
#display: always #全局弹出
#display: hide #全局隐藏侧边栏 右下角有角标唤出
#display: remove #移除侧边栏
avatar:
url: /images/avatar.gif #设置头像资源的位置
rounded: false #开启圆形头像
opacity: 1 #不透明的比例 0 就是完全透明
rotated: false #开启旋转hexo中next主题的社交信息和友链配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16social: #和菜单设置格式一样 社交名字: 社交url || 社交图标 ,图标信息还是[fontawesome](https://fontawesome.com/v4.7.0/icons)
GitHub: https://github.com/yourname || github
E-Mail: mailto:yourname@gmail.com || envelope
Google: https://plus.google.com/yourname || google
social_icons:
enable: true #显示社交图标
icons_only: false #只显示图标的开关
# Blog rolls
links_icon: link #友链的图标 参考上文
links_title: Links #友链的title 比如你可以更改为 友情链接
links_layout: block #友链摆放的样式,按块 一行一个
#links_layout: inline #按线摆放,一行很多个 切记 同时只能一种样式
links:
Title: http://example.com/ #友链的地址hexo中next主题首页文章不展示全文显示摘要,自动截取摘要和点击阅读全文跳转顶部
1
2
3
4scroll_to_more: true #点击阅读全文后是否跳到<!--more-->标记处,设为false时点击阅读全文可以从头阅读
auto_excerpt: #是否自动截取摘要
enable: false #设置为true则自动截取150字当做首页摘要
length: 150 #自动截取的字数hexo中next主题首页文章属性显示创建时间,修改时间,分类
1
2
3
4
5
6
7post_meta:
item_text: false # 设为true 可以一行显示 文章的所有属性
created_at: true #显示创建时间
updated_at:
enabled: true #显示修改的时间
another_day: true #设true时 如果创建时间和修改时间一样则显示一个时间
categories: true #显示分类信息hexo中的next增加页面阅读统计,字数统计,阅读时长
新增busuanzi阅读统计1
2
3
4
5
6
7
8busuanzi_count:
enable: false #设true 开启
total_visitors: true #总阅读人数 uv数
total_visitors_icon: user #阅读总人数的图标
total_views: true #总阅读次数 pv数
total_views_icon: eye #阅读总次数的图标
post_views: true #开启内容阅读次数
post_views_icon: eye #内容页阅读数的图标新增字数统计,阅读时长,先安装插件
1
$ npm install hexo-symbols-count-time --save
主题配置信息如下:
1
2
3
4
5
6symbols_count_time:
separated_meta: true # false 会显示一行
item_text_post: true # 显示属性名称,设为false后只显示图标和统计数字,不显示属性的文字
item_text_total: true #底部footer是否显示字数统计属性文字
awl: 4 #计算字数的一个设置,没设置过
wpm: 275 #一分钟阅读的字数站点配置新增如下:
1
2
3
4
5
6
7symbols_count_time:
#文章内是否显示
symbols: true
time: true
# 网页底部是否显示
total_symbols: true
total_time: truehexo中next主题给内容页里的代码块新增复制按钮
1
2
3
4codeblock:
copy_button:
enable: false #增加复制按钮的开关
show_result: false #点击复制完后是否显示 复制成功 结果提示hexo中next主题文章主页配置微信公众号
1
2
3
4
5# Wechat Subscriber
wechat_subscriber:
enabled: true
qcode: /images/wechat-qcode.jpg #微信公众号的二维码
description: 这是我的公众号 #公众号描述文字hexo中next主题配置微信,支付宝打赏
1
2
3
4
5# Reward
reward_comment: 一毛也是爱~ #打赏描述
wechatpay: /images/wechat_pay.png #微信支付的二维码图片地址
alipay: /images/ali_pay.png #支付宝的地址
#bitcoin: /images/bitcoin.png #这个是设置比特币的...hexo中next主题新增 相关文章推荐
安装推荐文章的插件1
$ npm install hexo-related-popular-posts --save
主题配置信息如下:
1
2
3
4
5
6
7
8
9
10related_posts:
enable: true
title: 相关文章推荐 # 属性的命名
display_in_home: false #false代表首页不显示
params:
maxCount: 5 #最多5条
#PPMixingRate: 0.0 #可以看github上 这个相关度介绍
#isDate: true #是否显示 日期
#isImage: false #是否显示配图
isExcerpt: false #是否显示摘要hexo中next主题的文章原创申明
给每一个原创文章开启版权保护1
2
3post_copyright:
enable: true #设置true就开启了
license: <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" rel="external nofollow" target="_blank">CC BY-NC-SA 4.0</a>hexo中next主题更改code高亮样式
1
highlight_theme: normal #可选值为 normal | night | night eighties | night blue | night bright 这几个挑一个喜欢的
hexo中next主题添加评论-Valine
点击官网leancloud注册账号,获取自己的appid,appkey,再看valine官网设置下自己的leancloud1
2
3
4
5
6
7
8
9
10
11valine:
enable: true # 开启评论
appid: ~~~ # 刚申请 leancloud 的 appid
appkey: ~~~ # 刚生情 leancloud 的 appkey
notify: false # 是否邮件推送 详情看 https://github.com/xCss/Valine/wiki
verify: false #
placeholder: Just go go # 评论框里的placeholder信息
avatar: mm # gravatar style
guest_info: nick,mail,link # custom comment header
pageSize: 10 # 一页显示的评论条数
visitor: false #hexo中next主题配置网页body背景动态效果
4个效果同时只能开启一个1
2
3
4canvas_nest: false
three_waves: false
canvas_lines: false
canvas_sphere: false
常见问题
- 为什么
hexo server报错?
检查最近修改的配置文件中的各个配置项冒号后是否有空格,某些样式选择是否唯一 - 为什么menu设置完后,点击各个菜单无效,href=””现象?
检查站点配置文件relative_link: false如为true 改为 false即可
最后的最后
由于6.4比5.x多了很多以前个性定制的配置,使得个性化的配置操作简单很多,不用修改样式和源码即可完成以前的定制效果,所以主题的更新还是要看个人的需求,如果功能够用的情况下还是保证创作博客为主,毕竟内容才是最能吸引读者的,共勉.