搭建完一个博客的demo之后,为了让我们自己的博客变得刚好看一些,例如头像、动态背景、社交链接等等;还有功能更强大一些,例如添加搜索功能、支持RSS
订阅、增加评论功能等等。接下来我们需要对博客进行各种自定义的设置。下面我列出了一些我做的自定义配置。
一些对NexT不是很熟的小伙伴注意:可能在你为博客配置各种功能的时候会在网上搜到很多教程,虽然有一定的借鉴意义,但是有些已经不适配目前的版本了,一些旧版本NexT
未集成的功能可能在新版本中集成了,但是如果仍旧依照旧版本的教程来修改配置文件或甚至.swig
文件的话,可能会造成一些未知的bug或者冲突(不要问我怎么知道的(σ`д′)σ),所以在搜索教程的时候要注意教程的写作时间,注意版本适配问题。当然,相信机智的你一定能解决这些问题的。
我的版本信息:
1 | * hexo-v3.9.0 |
1.界面优化
1.1侧栏设置
1 | 侧栏设置包括:侧栏位置、侧栏显示与否、文章间距等等 |
打开 主题配置文件 找到sidebar
字段
1 | sidebar: |
1.2头像设置
打开 主题配置文件 找到Sidebar Avatar
字段
1 | # Sidebar Avatar |
替换头像:将自己想要替换的头像命名为header.jpg
,将其放在next\source\images
目录下,设置url
字段为/images/header.jpg
1.3动态背景
NexT提供了两种动态背景效果,一种是canvas-nest
几何线条效果,一种是canvas-ribbon
彩带效果,下面提供两种效果的添加方式,可以两者选其一,也可以都选。
canvas-nest几何线条效果
效果如下:线条会聚集在光标附近
step1:进入到next目录下(前提:已经在MyBlog1.1目录中)
1 | cd themes/next |
step2:安装canvas-nest
模块到 source/lib
目录中
1 | git clone https://github.com/theme-next/theme-next-canvas-nest source/lib/canvas-nest |
step3:打开 主题配置文件 找到canvas_nest
字段
1 | canvas_nest: |
canvas-ribbon彩带效果
效果如下:彩带会随着鼠标点击改变
step1:进入到next目录下(前提:已经在MyBlog1.1目录中)
1 | cd themes/next |
step2:安装canvas-nest
模块到 source/lib
目录中
1 | git clone https://github.com/theme-next/theme-next-canvas-nest source/lib/canvas-nest |
step3:打开 主题配置文件 找到canvas_ribbon
字段
1 | canvas_ribbon: |
1.4在右上角或者左上角实现fork me on github
效果如下:
step1:在GitHub Corners或者GitHub Ribbons选择自己喜欢的图标,然后copy相应的代码
step2:将刚刚复制的代码粘贴到themes/next/layout/_layout.swig
文件中<div class="headband"></div>
下面一行
step3:把代码中的href
后面的值替换成你要跳转的地址,比如你的GitHub主页
1.5显示摘要
在next的默认配置中,首页显示文章会显示全文而不是文章的摘要,这样看起来很难受,next提供了两种方法显示摘要。
自动显示摘要
打开 主题配置文件 找到auto_excerpt
字段
1 | auto_excerpt: |
手动控制摘要
在文章中加入<!-- more -->
字段,<!-- more -->
以前的都为文章摘要。
当两者同时使用时,<!-- more -->
的优先级更高。
1.6设置网站缩略图标
在MyBlog1.1\themes\next\source\images
文件夹下有三个文件
apple-touch-icon-next.png
favicon-16x16-next.png
favicon-32x32-next.png
将自己想用的图标复制成三份,按照上面三张图片的像素进行更改,并且重命名为这三个图片的名字,替换即可。
1.7去除hexo支持信息与主题版本信息
就是把这个去掉
打开 主题配置文件 找到powered
和theme
字段
1 | powered: |
1.8侧边栏社交信息链接
效果如下:
打开 主题配置文件 找到social
字段,选择你想展示的社交链接
1 | social: |
1.9书签功能
会在文章的左上角或右上角生成一个标签标志,点击它可以记录我们文章阅读的进度,下次再打开时会定位到该进度位置。
打开 主题配置文件 找到bookmark
字段,将enbale
设置为true
1 | bookmark: |
1.10添加文章权利声明
在看一些博客的时候,你会发现有的文章下面会有这样的权利声明, Creative Commons 4.0国际许可证包括by
,by-nc
,by-nc-nd
,by-nc-sa
,by-nd
,by-sa
,zero
等。这些许可允许创作者告知他们保留哪些权利,以及他们为了接收者或其他创作者的利益而放弃哪些权利。
虽然还没接触到这些,但是加上去总要显得正式些\^o\^y。
NexT
提供了这样的功能,允许我们在文章下方和侧边栏加上权利声明,可以在主题配置文件中设置:
找到creative_commons
字段
1 | creative_commons: |
1.11更改代码块样式以及添加复制按钮
如果觉得文章中的代码块的样式不太好看的话NexT
提供了多种代码块的样式可供选择,具体设置方法如下:
打开 主题配置文件 找到codeblock
字段,根据提示选择想要的代码块样式,代码块的样式可以分为两部分,一个是代码highlight
,另一个是代码块style
,具体什么样可以自行设置下看看
1 | codeblock: |
1.12网页加载时进度条
NexT
提供了网页加载进度条功能,网页加载时在顶部显示加载进度条,有多种样式可供选择。
step1:定位到themes/next
目录下
1 | cd themes/next |
step2:安装theme-next-pace
插件
1 | git clone https://github.com/theme-next/theme-next-pace source/lib/pace |
step3:打开 主题配置文件 找到pace
字段
1 | pace: |
1.13添加3D动态背景
NexT
提供了3D动态背景功能,有多种样式可供选择,我尝试设置了一下,酷炫是酷炫,但是有点影响阅读了,所以又关了,不过还是把过程记录下来吧,有需要的小伙伴也可以设置下。
step1:定位到themes/next
目录下
1 | cd themes/next |
step2:安装theme-next-three
插件
1 | git clone https://github.com/theme-next/theme-next-three source/lib/pace |
step3:打开 主题配置文件 找到three
字段,有三种样式可以开启
1 | three: |
1.14文章结尾添加结束标记
step1:在目录 themes/next/layout/_macro/
下添加 passage-end-tag.swig
,内容如下:
1 | <div> |
step2:打开 themes/next/layout/_macro/post.swig
文件,在END POST BODY
字段前新增内容如下:
1 | <div> |
step3:打开主题配置文件
,在Post Setting
字段下添加代码如下:
1 | # 文章末尾添加“本文结束”标记 |
1.15修改小型代码块颜色
修改\themes\next\source\css\ _variables\base.styl
文件, 加入自定义颜色:
1 | $whitesmoke = #f5f5f5; |
修改$code-background
和$code-foreground
的值:
1 | // Code & Code Blocks // 用``围出的代码块 |
1.16添加看板娘
step1:安装hexo-helper-live2d
模块
1 | npm install --save hexo-helper-live2d |
step2:安装live2d-widget-model-hijiki
模块(该模块只是其中的一个模型,更多模型请在此处查看详细信息,选择自己喜欢的模型进行安装,模型样式可在此处查看)
1 | npm install live2d-widget-model-hijiki --save |
step3:打开站点配置文件,在最后加上如下代码:在use字段选择自己喜欢的模型
1 | live2d: |
2.功能优化
2.1添加本地搜索功能
step1:安装 hexo-generator-searchdb 插件
1 | npm install hexo-generator-searchdb --save |
step2:打开 站点配置文件 找到Extensions
在下面添加
1 | # 搜索 |
step3:打开 主题配置文件 找到Local search
,将enable
设置为true
1 | local_search: |
2.2添加站点访问计数
next提供了多种访问计数的方式,在这里我们选择使用不蒜子
打开 主题配置文件 找到busuanzi_count
字段,将enbale
设置为true
1 | busuanzi_count: |
网站访问次数
文章显示次数
还可以将小人与眼睛的图标改成如下效果
打开themes\next\layout\_partials\analytics\busuanzi-counter.swig
更改如下两段代码
1 | <span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;"> |
1 | <span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;"> |
2.3添加网站字数统计
安装hexo-symbols-count-time
模块
1 | npm install hexo-symbols-count-time |
打开 主题配置文件 找到symbols-count-time
字段
1 | symbols_count_time: |
2.4添加RSS订阅
有关什么是RSS的知识可以参考这篇文章如何用RSS订阅?
step1:安装hexo-generator-feed
插件
1 | npm install hexo-generator-feed --save |
step2:在站点配置文件的Extensions
字段下添加配置
1 | # RSS功能 |
执行hexo generator
命令在 public
文件夹中生成 atom.xml
文件
配置含义:
type
: RSS的类型(atom/rss2)path
: 文件路径,默认是 atom.xml/rss2.xmllimit
: 展示文章的数量,使用 0 或则 false 代表展示全所有的帖子hub
: URL of the PubSubHubbub hubs (如果使用不到可以为空)content
: (可选)设置true
可以在 RSS 文件中包含文章全部内容,默认:falsecontent_limit
: (可选)摘要中使用的帖子内容的默认长度。 仅在内容设置为false且未显示自定义帖子描述时才使用。content_limit_delim
: (可选)If content_limit is used to shorten post contents, only cut at the last occurrence of this delimiter before reaching the character limit. Not used by default.order_by
: 订阅内容的顺序. (默认: -date)
(后面几个选项一般用不到,有两个也没找到比较准确的翻译,所以放上了原文,知道的小伙伴可以在下方评论)
step3:打开 主题配置文件 找到rss
字段,添加值"atom.xml"
1 | rss: "atom.xml" |
在菜单栏会生成RSS按钮
2.5添加评论功能
之前使用过多种评论插件,从gitalk到livere(来必力),不过最后选择了Valine
。
Valine
诞生于2017年8月7日,最初由@云淡风轻
大佬开发(这里附上原文链接),后又经过许多大佬的开发和维护,是一款基于LeanCloud的快速、简洁且高效的无后端评论系统。
step1:注册LeanCloud并创建一个开发版应用(免费)
step2:在LeanCloud -> 存储 -> 创建Class -> 无限制的Class
step3:在LeanCloud-设置-把除数据存储其他选项都关闭。
step4:设置安全域名
step5:打开 主题配置文件 ,配置文件中有两处Valine
字段,它们分别如下所示
●这里的valine
字段是填写valine
脚本的源文件地址,可在此处查看最新的valine
脚本地址,将其链接复制下来填入到valine
字段之后即可
1 | # Valine |
●这里的valine
字段是用来配置评论系统的,填写appid
和appkey
(在LeanCloud的设置->应用Keys中),其他字段可以根据提示自行配置,下面是我的配置。
1 | # Valine. |
2.6相关文章推荐
NexT
提供了相关文章推荐的功能,是借助hexo-related-popular-posts
模块实现的,具体细节可以查看该模块的GitHub地址 ,hexo-related-popular-posts
模块可以实现相关文章推荐
和热门文章
的功能,我觉得自己的博客应该没有设置热门文章功能的必要hhh,所以只配置了相关文章推荐的功能。
效果展示:(会在根据博文的标签来匹配相关文章,在博文的下方生成相关文章列表)
step1:打开控制台,定位到博客主目录,安装quicklink
模块:
1 | npm install hexo-related-popular-posts --save |
step2:打开主题配置文件,找到related_posts
字段,将enable
设置为true
,其他值采用默认即可。
1 | related_posts: |
2.7快速连接技术
什么是快速连接技术,下面是其GitHub源地址上给出的解释:
通过在空闲时间预取视区内链接来加快后续页面加载速度
按我的理解应该是在我们访问博文页面的时候,如果博文位于视区内的部分有网页链接,那么浏览器在空闲时会预加载该链接对应的页面以达到加快后续的访问速度的目的。
step1:打开控制台,定位到博客主目录,安装quicklink
模块:
1 | npm install --save quicklink |
step2:打开主题配置文件,找到quicklink
字段,将enable
设置为true
,其他值采用默认即可。
1 | quicklink: |
最后附上一篇大佬的文章基于Hexo搭建个人博客——进阶篇(从入门到入土)