hexo的next主题详细配置

在 Hexo 中有两份主要的配置文件,其名称都是 _config.yml。 其中,一份位于站点根目录下,主要包含 Hexo 本身的配置;另一份位于主题目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。

为了描述方便,在以下说明中,将前者称为站点配置文件, 后者称为主题配置文件

以下所有终端执行的命令都在你的Hexo根目录下

基本信息配置

打开 站点配置文件 ,找到Site模块

1
2
3
4
5
6
title: 标题
subtitle: 副标题
description: 描述
author: 作者
language: 语言(简体中文是zh-Hans)
timezone: 网站时区(Hexo 默认使用您电脑的时区,不用写)

关于 站点配置文件 中的其他配置可参考站点配置

菜单设置

菜单包括:首页、归档、分类、标签、关于等等

我们刚开始默认的菜单只有首页和归档两个,不能够满足我们的要求,所以需要添加菜单,打开 主题配置文件 找到Menu Settings

看看你需要哪个菜单就把哪个取消注释打开就行了;
关于后面的格式,以archives: /archives/ || archive为例:
|| 之前的/archives/表示标题“归档”,关于标题的格式可以去themes/next/languages/zh-Hans.yml中参考或修改
||之后的archive表示图标,可以去Font Awesome中查看或修改,Next主题所有的图标都来自Font Awesome

Next主题样式设置

我们百里挑一选择了Next主题,不过Next主题还有4种风格供我们选择,打开 主题配置文件 找到Scheme Settings

1
2
3
4
5
# Schemes
# scheme: Muse
# scheme: Mist
# scheme: Pisces
scheme: Gemini

4种风格大同小异,本人用的是Gemini风格,你们可以选择自己喜欢的风格

侧栏设置

开启侧边栏社交链接

1
2
3
4
5
6
7
8
9
10
11
# Social links
social:
GitHub: https://github.com/hydcoder
Weibo: https://weibo.com/3180967953/profile?rightmod=1&wvr=6&mod=personinfo
# 等等

social_icons:
enable: true
# Icon Mappings.
GitHub: github
Weibo: weibo

开启打赏功能

1
2
3
reward_comment: 坚持原创技术分享,您的支持将鼓励我继续创作!
wechatpay: 你的微信收款码链接
alipay: 你的支付宝收款码链接

开启友情链接

1
2
3
4
links_title: Links
links:
MacTalk: http://macshuo.com/
Title: http://example.com/

开启订阅微信公众号

1
2
3
4
wechat_subscriber:
enabled: true
qcode: /uploads/wechat-qcode.jpg
description: 欢迎您扫一扫上面的微信公众号,订阅我的博客!

头像设置

打开 主题配置文件 找到Sidebar Avatar字段

1
2
# Sidebar Avatar
avatar: /images/header.jpg

这是头像的路径,只需把你的头像命名为header.jpg(随便命名)放入themes/next/source/images中,将avatar的路径名改成你的头像名就OK啦!

设置侧边栏设置圆形可旋转头像

找到生成的Hexo目录\themes\next\source\css_common\components\sidebar下的sidebar-author.styl,将里面的css样式内容全部替换为:

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
29
30
31
32
33
.site-author-image {
margin: 0 auto;
padding: $site-author-image-padding;
max-width: $site-author-image-width;
height: $site-author-image-height;
border: $site-author-image-border-width solid $site-author-image-border-color;

border-radius: 50%;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
transition: 1.4s all;
}

.site-author-image:hover {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-transform: rotate(360deg);
}

.site-author-name {
margin: $site-author-name-margin;
text-align: $site-author-name-align;
color: $site-author-name-color;
font-weight: $site-author-name-weight;
}

.site-description {
margin-top: $site-description-margin-top;
text-align: $site-description-align;
font-size: $site-description-font-size;
color: $site-description-color;
}

设置首页不显示全文(只显示预览)

打开主题配置文件_config.yml,ctrl + F搜索找到”auto_excerpt”,可以看见

1
2
3
4
5
# Automatically Excerpt. Not recommand.
# Please use <!-- more --> in the post to control excerpt accurately.
auto_excerpt:
enable: false
length: 150

把enable改为对应的false改为true,length就是预览显示的文字长度,你可以根据你的需要进行更改,然后重新部署,再进主页,你就发现你首页的文章多了一个阅读全文的按钮。

添加动态背景

先上张图

打开生成的Hexo目录\themes\next/layout/_layout.swig文件,
在 < head>中的添加代码

1
2
3
{% if theme.canvas_nest %}
<script type="text/javascript" src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"></script>
{% endif %}

打开主题配置文件,搜索canvas_nest,将其改成true

1
canvas_nest: true

什么?线条太多了?没事,来看看怎么让线条变少点

在上一步修改的主题配置文件中,把刚才的那些代码改成下面这样:

1
2
3
4
{% if theme.canvas_nest %}
<script type="text/javascript"
color="0,0,255" opacity='0.7' zIndex="-2" count="99" src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"></script>
{% e

配置项说明
color :线条颜色, 默认: ‘0,0,0’;三个数字分别为(R,G,B)
opacity: 线条透明度(0~1), 默认: 0.5
count: 线条的总数量, 默认: 150
zIndex: 背景的z-index属性,css属性用于控制所在层的位置, 默认: -1

分类和标签设置

这里主要说的是在编写文章的时候,怎么给文章设置标签和分类。

首先通过hexo n "name"命令来新建一个页面,在source/_posts目录下找到刚才新建的name.md文件,用Typora或者notepad++t打开(推荐Typora)

1
2
3
4
title: name
date: 2014-08-05 11:15:00
tags:
---

页面默认就是长这样的,可以编辑标题、日期、标签和内容,但是没有分类的选项。我们可以手动加入categories:项,但是下次创建新的页面的时候还是没有,所以我们直接打开scaffolds/post.md文件,在tages:上面加入categories:,保存后,重新执行hexo n ‘name’命令,会发现新建的页面里有categories:项了。

scaffolds目录下,是新建页面的模板,执行新建命令时,是根据这里的模板页来完成的,所以可以在这里根据你自己的需求添加一些默认值。

设置分类列表

在我们编辑文章的时候,直接在categories:项填写属于哪个分类,但如果分类是中文的时候,路径也会包含中文。

比如分类我们设置的是:

1
categories: 开车

那在生成页面后,分类列表就会出现开车这个选项,他的访问路径是:

1
*/categories/开车

我们都知道,有时候中文路径可能会出现一些奇奇怪怪的问题,所以我们需要路径名和分类名分别设置。

打开站点配置文件_config.yml,找到如下位置做更改:

1
2
3
4
5
6
7
# Category & Tag
default_category: uncategorized
category_map:
开车: drive
生活: life
其他: other
tag_map:

在这里category_map:是设置分类的地方,每行一个分类,冒号前面是分类名称,后面是访问路径。
可以提前在这里设置好一些分类,当编辑的文章填写了对应的分类名时,就会自动的按照对应的路径来访问。

设置标签

在编辑文章的时候,tags:后面是设置标签的地方,如果有多个标签的话,可以用下面两种办法来设置:

第一种:

1
tages: [标签1,标签2,...标签n]

第二种:

1
2
3
4
5
 tages: 
- 标签1
- 标签2
...
- 标签n

添加文章更新时间

修改(博客主目录)/themes/next/layout/_macro/post.swig 文件,在<span class="post-time">...</span>标签后添加

1
2
3
4
5
6
7
8
{%if post.updated and post.updated > post.date%}
<span class="post-updated">
&nbsp; | &nbsp; {{ __('post.updated') }}
<time itemprop="dateUpdated" datetime="{{ moment(post.updated).format() }}" content="{{ date(post.updated, config.date_format) }}">
{{ date(post.updated, config.date_format) }}
</time>
</span>
{% endif %}

根据博客配置文件中的 language 参数修改对应的语言配置文件(博客主目录)/themes/next/languages/zh_Hans.yml

1
2
post:
updated: 更新于

修改主题配置文件(博客主目录)/themes/next/_config.yml,增加一行

1
display_updated: true

或者写文章的时候可以直接在文章开头设置更新时间,没有这参数的话将会显示md文件的修改日期

1
updated: 2018-01-01 12:00:00

添加搜索功能

安装 hexo-generator-searchdb 插件

1
$ npm install hexo-generator-searchdb --save

打开 站点配置文件 找到Extensions在下面添加

1
2
3
4
5
6
# 搜索
search:
path: search.xml
field: post
format: html
limit: 10000

3、打开 主题配置文件 找到Local search,将enable设置为true

添加阅读全文按钮

因为在你的博客主页会有多篇文章,如果你想让你的文章只显示一部分,多余的可以点击阅读全文来查看,那么你需要在你的文章中添加

1
<!--more-->

其后面的部分就不会显示了,只能点击阅读全文才能看

修改文章内链接文本样式

打开文件 themes/next/source/css/_common/components/post/post.styl,在末尾添加

1
2
3
4
5
6
7
8
9
10
.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 是为了不影响首页“阅读全文”的显示样式,颜色可以自己定义。

设置网站缩略图标

从网上看了很多设置方法都是说把favicon.ico放到站点目录的source目录下就可以了,可是我试了好多遍,并不行

我的设置方法是这样的:把你的图片(png或jpg格式,不是favicon.ico)放在themes/next/source/images里,然后打开 主题配置文件 找到favicon,将small、medium、apple_touch_icon三个字段的值都设置成/images/图片名.jpg就可以了,其他字段都注释掉。

设置文章字体的颜色、大小

如果想设置某一句的颜色或大小,只需用html语法写出来就行了

1
2
3
4
接下来就是见证奇迹的时刻
<font color="#FF0000"> 我可以设置这一句的颜色哈哈 </font>
<font size=6> 我还可以设置这一句的大小嘻嘻 </font>
<font size=5 color="#FF0000"> 我甚至可以设置这一句的颜色和大小呵呵</font>

设置文字居中

1
<center>这一行需要居中</center>

添加评论系统

目前国内比较有名的多说、网易云跟帖评论系统都已停止服务了,国外的Disqus评论系统还得需要翻墙,所以不推荐使用,剩下的还有搜狐畅言、友言、来必力等。
本来想使用畅言的,结果注册完之后还得要求备案,我只想说F开头的那个单词,果断放弃。
后来选择了友言

1、进入友言官网注册、登录步骤我就不介绍了
2、登录完成之后,点击获取代码,你会发现出来了一段代码,里面有你的uid=1234567
3、打开 主题配置文件 找到youyan_uid将值设置为上面的uid就可以了

添加站点访问计数

站点访问计数有名的就是不蒜子,使用起来非常方便
1、安装脚本
打开 themes/next/layout/_partial/footer.swig,将下面这段代码添加到里面

1
2
3
4
5
6
7
8
9
10
<div>
<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<span id="busuanzi_container_site_pv" style='display:none'>
本站总访问量 <span id="busuanzi_value_site_pv"></span>
<span class="post-meta-divider">|</span>
</span>
<span id="busuanzi_container_site_uv" style='display:none'>
<span id="busuanzi_value_site_uv"></span>人看过我的博客啦
</span>
</div>

添加的位置如下图,可自行根据个人喜好更换位置

2、以上只是显示站点的访问次数,如果想显示每篇文章的访问次数,打开 themes/next/layout/_macro/post.swig,在第一行增加is_pv字段

1
{% macro render(post, is_index, is_pv, post_extra_class) %}

然后将这段代码插入到里面

1
2
3
4
{% if is_pv %}
<span class="post-meta-divider">|</span>
<span id="busuanzi_value_page_pv"></span>次阅读
{% endif %}

插入的位置

然后再打开 themes/next/layout/post.swig,这个文件是文章的模板,给render方法传入参数(对应刚才添加的is_pv字段)

最后再打开 themes/next/layout/index.swig,这个文件是首页的模板,给render方法传入参数(对应刚才添加的is_pv字段)

OK!设置完毕

去掉文章目录标题的自动编号

我们自己写文章的时候一般都会自己带上标题编号,但是默认的主题会给我们带上编号,很是别扭,如何去掉呢?
打开主题配置文件,找到

1
2
3
4
5
6
7
8
9
# Table Of Contents in the Sidebar
toc:
enable: true

# Automatically add list number to toc.
number: true

# If true, all words will placed on next lines if header width longer then sidebar width.
wrap: false

number改为false即可

自定义样式 引用

需加入custom.styl的代码

文件位置:~/blog/themes/next/source/css/_custom/custom.styl

1
2
3
4
5
6
7
8
9
// 自定义的引用样式
blockquote.question {
color: #555;
border-left: 4px solid rgb(16, 152, 173);
background-color: rgb(227, 242, 253);
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
margin-bottom: 20px;
}
  • 文字颜色改color的值
  • 背景色改background-color的值
  • 边框颜色和粗细改border-left的值

效果:

内容

使用方法:

1
<blockquote class="question">内容</blockquote>

修改hexo的主题nexT中的Pisces主题宽度

source/css/_schemes/Picses/_layout.styl文件末尾添加如下代码

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
29
30
31
32
33
34
// 以下为新增代码!!
header{ width: 90% !important; }
header.post-header {
width: auto !important;
}
.container .main-inner { width: 90%; }
.content-wrap { width: calc(100% - 260px); }

.header {
+tablet() {
width: auto !important;
}
+mobile() {
width: auto !important;
}
}

.container .main-inner {
+tablet() {
width: auto !important;
}
+mobile() {
width: auto !important;
}
}

.content-wrap {
+tablet() {
width: 100% !important;
}
+mobile() {
width: 100% !important;
}
}

更多

还有其他更多的主题配置,请查看主题配置

还有其他更多的插件,请查看Hexo插件