在17年的时候,我通过Hexo自己搞了一个博客,点击访问我的博客。自己也一直在该博客上更新文章,主要写一些技术分享、生活感悟等类型的文章。相信有很多人都对Hexo有所耳闻,今天我们就Hexo下的Next主题的配置写一个小的总结,其中包含了一些最基本的如:打赏、评论、字数统计等功能。
如果你已经创建了你的个人博客,却苦于没有一个好看和好用的主题,就快来学习吧。我将每一个功能需要修改的文件路径都已说明,只要跟着我的教程一步步来配置,相信你的Hexo博客将会焕然一新。
下面让我们来一探究竟!
1. 博客底部标签样式
只需要修改模板/themes/next/layout/_macro/post.swig
,搜索 rel="tag">#
,将 # 换成<i class="fa fa-tag"></i>
2. 文章结束标志
在路径 \themes\next\layout\_macro
中新建 passage-end-tag.swig
文件,并添加以下内容:
1 | <div> |
接着打开\themes\next\layout\_macro\post.swig
文件,在post-body
之后(END POST BODY
), post-footer
之前添加如代码:
1 | <div> |
然后打开主题配置文件(_config.yml
),在末尾添加:
1 | # 文章末尾添加“本文结束”标记 |
3. RSS
切换到根目录下,然后运行如下代码,安装
hexo-generator-feed
1
npm install --save hexo-generator-feed
在
hexo
的_config.yml
中,在最后添加如下代码:1
2
3# Extensions
## Plugins: http://hexo.io/plugins/
plugins: hexo-generate-feed在
next
主题的_config.yml
中ctrl + F
找到rss:
,添加代码如下:(注意在冒号后面要加一个空格)
1
2
3
4# Set rss to false to disable feed link.
# Leave rss as empty to use site's feed link.
# Set rss to specific value if you have burned your feed already.
rss: /atom.xml重新生成一次,你会在
./public
文件夹中看到atom.xml
文件。然后启动服务器查看是否有效,之后再部署到github
中。
4. 修改文章内链接文本样式
修改文件 themes\next\source\css\_common\components\post\post.styl
,在末尾添加如下css
样式
1 | // 文章内链接文本样式 |
5. 文章字体大小改为16px
修改文件 themes\next\source\css\_common\components\post\post.styl
,找到.post-body
,修改其中代码如下:
1 | .post-body { |
6. 修改作者头像鼠标上移旋转
打开\themes\next\source\css\_common\components\sidebar\sidebar-author.styl
,在里面添加如下代码:
1 | .site-author-image { |
asd
7. 代码样式——包括代码块和多行代码
打开\themes\next\source\css\_custom\custom.styl
,向里面加入:
1 | code { |
8. 站点访问量
较低版本的next
没有内置busuanzi
,推荐以下方法
打开\themes\next\layout\_partials\footer.swig
文件
在一开头加上以下代码:
1
2<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js">
</script>然后在合适的位置添加显示统计的代码
1
2
3
4
5
6<div class="powered-by">
<i class="fa fa-user-md"></i>
<span id="busuanzi_container_site_uv">
本站访客数:<span id="busuanzi_value_site_pv"></span>
</span>
</div>在这里有两中不同计算方式的统计代码:
pv的方式,单个用户连续点击n篇文章,记录n次访问量
1
2
3<span id="busuanzi_container_site_pv">
本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
uv的方式,单个用户连续点击n篇文章,只记录1次访客数
1
2
3<span id="busuanzi_container_site_uv">
本站总访问量<span id="busuanzi_value_site_uv"></span>次
</span>
- 清除缓存,重新加载,搞定。
版本较高的内置的busuanzi
只需要在主题配置文件中修改如下:
1 | # Show PV/UV of the website/page with busuanzi. |
asd
9. 全站字数统计
针对较低版本的next
,推荐一下方法
切换到根目录下,然后运行如下代码:
1
npm install hexo-wordcount --save
在
/themes/next/layout/_partials/footer.swig
文件内合适位置加上:1
2
3
4<div class="theme-info">
<div class="powered-by"></div>
<span class="post-count">博客全站共{{ totalcount(site) }}字</span>
</div>清除缓存,重新加载,搞定。
版本比较高的
打开主题配置文件,找到post_wordcount
,配置如下:
1 | # Post wordcount display settings |
10. 阅读时间、文章字数
切换到根目录下,然后运行如下代码:
1
npm install hexo-wordcount --save
然后在主题的配置文件中,配置如下:
1
2
3
4
5
6# Post wordcount display settings
# Dependencies: https://github.com/willin/hexo-wordcount
post_wordcount:
item_text: true
wordcount: true
min2read: true清除缓存,重新加载,搞定。
11. 在文章底部增加版权信息
在目录
next/layout/_macro/下
添加my-copyright.swig
: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{% if page.copyright %}
<div class="my_post_copyright">
<script src="//cdn.bootcss.com/clipboard.js/1.5.10/clipboard.min.js"></script>
<!-- JS库 sweetalert 可修改路径 -->
<script src="https://cdn.bootcss.com/jquery/2.0.0/jquery.min.js"></script>
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
<p><span>本文标题:</span><a href="{{ url_for(page.path) }}">{{ page.title }}</a></p>
<p><span>文章作者:</span><a href="/" title="访问 {{ theme.author }} 的个人博客">{{ theme.author }}</a></p>
<p><span>发布时间:</span>{{ page.date.format("YYYY年MM月DD日 - HH:mm") }}</p>
<p><span>最后更新:</span>{{ page.updated.format("YYYY年MM月DD日 - HH:mm") }}</p>
<p><span>原始链接:</span><a href="{{ url_for(page.path) }}" title="{{ page.title }}">{{ page.permalink }}</a>
<span class="copy-path" title="点击复制文章链接"><i class="fa fa-clipboard" data-clipboard-text="{{ page.permalink }}" aria-label="复制成功!"></i></span>
</p>
<p><span>许可协议:</span><i class="fa fa-creative-commons"></i> <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/" target="_blank" title="Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)">署名-非商业性使用-禁止演绎 4.0 国际</a> 转载请保留原文链接及作者。</p>
</div>
<script>
var clipboard = new Clipboard('.fa-clipboard');
$(".fa-clipboard").click(function(){
clipboard.on('success', function(){
swal({
title: "",
text: '复制成功',
icon: "success",
showConfirmButton: true
});
});
});
</script>
{% endif %}在目录
next/source/css/_common/components/post/
下添加my-post-copyright.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
35
36
37
38
39
40
41
42
43
44
45.my_post_copyright {
width: 85%;
max-width: 45em;
margin: 2.8em auto 0;
padding: 0.5em 1.0em;
border: 1px solid #d3d3d3;
font-size: 0.93rem;
line-height: 1.6em;
word-break: break-all;
background: rgba(255,255,255,0.4);
}
.my_post_copyright p{margin:0;}
.my_post_copyright span {
display: inline-block;
width: 5.2em;
color: #b5b5b5;
font-weight: bold;
}
.my_post_copyright .raw {
margin-left: 1em;
width: 5em;
}
.my_post_copyright a {
color: #808080;
border-bottom:0;
}
.my_post_copyright a:hover {
color: #a3d2a3;
text-decoration: underline;
}
.my_post_copyright:hover .fa-clipboard {
color: #000;
}
.my_post_copyright .post-url:hover {
font-weight: normal;
}
.my_post_copyright .copy-path {
margin-left: 1em;
width: 1em;
+mobile(){display:none;}
}
.my_post_copyright .copy-path:hover {
color: #808080;
cursor: pointer;
}修改
next/layout/_macro/post.swig
,在代码1
2
3
4
5<div>
{% if not is_index %}
{% include 'wechat-subscriber.swig' %}
{% endif %}
</div>之前添加增加如下代码:
1
2
3
4
5<div>
{% if not is_index %}
{% include 'my-copyright.swig' %}
{% endif %}
</div>修改
next/source/css/_common/components/post/post.styl
文件,在最后一行增加代码:1
@import "my-post-copyright"
保存重新生成即可。
需要在每篇文章的头部添加如下代码:
1
copyright: true
12. 文章加密访问
打开themes->next->layout->_partials->head.swig
文件,在顶部位置插入这样一段代码:
1 | <script> |
在写文章时,如需对该文章加密,需要在文章头部添加以下代码:
1 | password: ****** |
这样在打开文章时,会自动弹出密码输入框。
13. 修改打赏字体不闪动
修改文件next/source/css/_common/components/post/post-reward.styl
,然后注释其中的函数wechat:hover
和alipay:hover
,如下:
1 | /* 注释文字闪动函数 |
asd
14. 添加友情链接
打开主题配置文件修改成这样就行了(links里面写你想要的链接):
1 | links_icon: link |
asd
15. 评论
我使用Valine来进行评论,具体的步骤如下:
在leanCloud)上注册一个账号
注册成功并登录后,你会得到两个数据:
- App ID
- App Key
复制并保存
打开主题配置文件,我的版本是v5.1.3,其中已经内置了Valine评论系统,只需要打开即可:
1
2
3
4
5
6
7
8
9
10valine:
enable: true
appid: yourAppid
appkey: yourAppkey
notify: false # mail notifier , https://github.com/xCss/Valine/wiki
verify: false # Verification code
placeholder: 请输入您的评论,看到必回复! # comment box placeholder
avatar: mm # gravatar style
guest_info: nick,mail,link # custom comment header
pageSize: 10 # pagination sizeValine 目前使用的是Gravatar 作为评论列表头像。
请自行登录或注册Gravatar,然后修改自己的头像。
评论的时候,留下在Gravatar注册时所使用的邮箱即可。
16. 添加文章更新时间
修改
/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">
| {{ __('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 %}在
/themes/next/languages/zh_Hans.yml
中新增:1
2post:
updated: 更新于修改主题配置文件
/themes/next/_config.yml
,增加一行1
display_updated: true
写文章的时候可以直接在文章开头设置更新时间:
1
updated: 2018-01-01 12:30
没有参数的话将会默认显示
.md
文件的修改日期
17. 文章搜索
根目录下执行:
1
npm install hexo-generator-searchdb --save
在主题配置文件
/theme/next/_config.yml
中添加配置:1
2
3
4
5search:
path: search.xml
field: post
format: html
limit: 10000并修改数据
1
2local_search:
enable: trueasd
18. 阅读次数
打开主题配置文件/theme/next/_config.yml
修改配置如下
1 | busuanzi_count: |
由上到下分别是
- 全站的UV
- 全站的PV
- 文章的PV
19. 配置背景动画
打开主题配置文件/theme/next/_config.yml
修改配置如下:
1 | # Canvas-nest |
asd
20. 首页文章列表鼠标上移样式
打开\themes\next\source\css\_custom\custom.styl
,向里面加入:
1 | // 主页文章添加阴影效果 |
asd
21. 去掉文章目录自动生成的编号
打开主题配置文件/theme/next/_config.yml
修改配置如下:
1 | # Automatically add list number to toc. |
asd
22. 文章头部添加【天气】
打开\themes\next\layout\_macro\post.swig
,在合适位置加入:
1 | {% if post.weather%} |
在写博文时,需要在头部新增weather
字段
1 | title: |
asd