前言:
给博客增加一些更高级的功能,例如分页、站内搜索、评论…
细节完善
分页
(1) 插件安装(按需安装)
1 | npm install --save hexo-generator-index # 首页分页配置 |
(2) 站点配置文件:
1 | index_generator: |
(3) 清缓存hexo clean
,重新生成hexo g
,启动服务hexo s
,查看效果
文章相关
详情请参考:https://tianbozhang.coding.me/personal-blog-custom.html
分页
(1) 插件安装(按需安装)
1 | npm install --save hexo-generator-index # 首页分页配置 |
(2) 站点配置文件:
1 | index_generator: |
(3) 清缓存hexo clean
,重新生成hexo g
,启动服务hexo s
,查看效果
博文置顶
(1) 修改hexo-generator-index
插件
将node_modules/hexo-generator-index/lib/generator.js
文件替换为:generator.js
(2)
在文章Front-matter
中添加top
值,数值越大文章越靠前,如:
1 |
|
头像圆形旋转
介绍一下实现头像圆形,鼠标经过旋转或者一直让旋转效果,主要是修改hexo目录下\themes\next\source\css\_common\components\sidebar\sidebar-author.styl
文件
(1) 头像圆形修改
修改sidebar-author.styl
文件中.site-author-image
CSS 样式如下:
1 | .site-author-image { |
(2) 鼠标经过旋转修改
修改sidebar-author.styl
文件,添加 CSS 样式img:hover
如下代码:
1 | img:hover { |
修改sidebar-author.styl
文件中.site-author-image
CSS 样式如下:
1 | .site-author-image { |
(3) 鼠标经过旋转修改
修改sidebar-author.styl
文件,添加如下代码:
1 | /* Z 轴旋转动画 */ |
修改sidebar-author.styl
文件中.site-author-image
CSS 样式如下:
1 | .site-author-image { |
鼠标经过停止头像旋转:修改sidebar-author.styl
文件,添加 CSS 样式img:hover
如下代码:
1 | img:hover { |
页面点击小红心
(1) 在/themes/next/source/js/src
下新建文件clicklove.js
,接着把该链接下的代码拷贝粘贴到clicklove.js
文件中。
代码如下:
1 | // 页面点击爱心效果 |
(2) 在\themes\next\layout\_layout.swig
文件末尾添加:
1 | <!-- 页面点击小红心 --> |
(3) 清缓存hexo clean
,重新生成hexo g
,启动服务hexo s
检验效果
动态title崩溃欺骗
(1) \themes\next\source\js\src
,新建custom-title.js
1 | <!--崩溃欺骗--> |
(2) 更改\themes\next\layout_layout.swig
,在文件末尾添加:
1 | <!--动态title崩溃欺骗,卖萌专用--> |
(3) 清缓存hexo clean
,重新生成hexo g
,启动服务hexo s
检验效果
High一下
(1) header位置更改themes\next\layout_custom\header.swig
,在文件末尾添加:
sidebar位置更改themes\next\layout_custom\sidebar.swig
(2) 添加以下内容:
1 | <li> <a title="把这个链接拖到你的Chrome收藏夹工具栏中" href='javascript:(function() { |
(3) 代码块的内容不需要再做任何修改,清缓存hexo clean
,重新生成hexo g
,启动服务hexo s
查看效果
底部增加运行时间
(1) 修改themes/next/layout/_partials/footer.swig
,增加如下代码:
1 | <!-- 在网页底部添加网站运行时间 --> |
(2) 运行效果:
当前所在菜单下划线显示
(1) 打开themes\next\layout\ _partials
目录下的header.swig
文件
(2) 在底部添加以下代码:
1 | <script> |
(3) hexo clean && hexo g && hexo s后完成效果:
底部跳动图标实现
(1) 在next\layout_partials
下的footer.swig
文件中,在你所需要调动的图标所对应的span中增加对应的ID
(2) 在主题的css文件next\source\css\_variables\custom.styl
,增加以下代码即可:
1 | //底部爱心小图标跳动 |
(3) hexo clean && hexo g && hexo s后完成效果:
第三方服务集成
站内搜索
NexT 支持集成 Swiftype
、 微搜索、Local Search
和 Algolia
。在这里我使用的是Local Search
,下面将介绍如何使用:
(1) 添加百度/谷歌/本地 自定义站点内容搜索,安装hexo-generator-searchdb
,在站点的根目录下执行以下命令:
1 | npm install hexo-generator-searchdb --save |
(2) 编辑站点配置文件_config.yml
,新增以下内容到任意位置:
1 | search: |
(3) 编辑主题配置文件_config.yml
,启用本地搜索功能:
1 | # Local search |
注:其他搜索方式请查看站内搜索
(4) 清缓存hexo clean
,重新生成hexo g
,启动服务hexo s
,效果如下:
数据统计分析
NexT 支持集成 不蒜子统计
、百度统计
等多种数据统计方式。此处使用不蒜子统计
,下面将介绍如何使用:
此特性在版本 5.0.1 中引入,要使用此功能请确保所使用的 NexT 版本在此之后
(1) 全局配置:编辑主题配置文件_config.yml
中的busuanzi_count
的配置项。
当enable: true
时,代表开启全局开关。
若 site_uv 、site_pv 、 page_pv 的值均为 false 时,不蒜子仅作记录而不会在页面上显示
(2) 站点UV配置:当site_uv: true
时,代表在页面底部显示站点的UV值。site_uv_header
和site_uv_footer
为自定义样式配置,相关的值留空时将不显示,可以使用(带特效的font-awesome
。如下:
1 |
|
(3) 站点PV配置:当site_pv: true
时,代表在页面底部显示站点的PV值。site_pv_header
和site_pv_footer
为自定义样式配置,相关的值留空时将不显示,可以使用(带特效的font-awesome
。如下:
1 |
|
注:其他统计方式请查看数据统计分析
(4) 清缓存hexo clean
,重新生成hexo g
,启动服务hexo s
,效果如下:
(5) 不蒜子统计不生效,浏览器控制台报错
原因:由于 busuanzi(不蒜子) 的域名更新,导致了使用 Hexo Next 主题时统计数据失效
解决方法:
- 到 hexo 的 themes 文件夹下, 打开
\themes\next\layout_third-party\analytics\busuanzi-counter.swig
文件 - 将
src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"
修改为src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"
内容分享服务
NexT 支持集成 jiathis
、baidushare
和 AddThis
内容分享服务。在这里我使用的是baidushare
,下面将介绍如何使用:
(1) 编辑站点配置文件_config.yml
,新增以下内容到任意位置:
1 | baidushare: true #百度分享功能 |
(2) 编辑主题配置文件_config.yml
,设置其展现方式:
1 | baidushare: |
注:其他内容分享方式请查看内容分享服务
(4) 清缓存hexo clean
,重新生成hexo g
,启动服务hexo s
,效果如下:
文章阅读次数统计
(1) 在LeanCloud进行对应的配置
详细配置参考文章:配置LeanCloud
(2) 注Class
名称必须为Counter
Gitment评论
(1) Gitment评论搭建参考:https://sjq597.github.io/2018/05/18/Hexo-使用Gitment评论功能/
(2) 踩过的坑:
Error: Validation Failed
原因:issue的Label有长度限制,对于中文博客来说,中文标题很容易就超过长度限制
方案:修改themes/next/layout/_third-party/comments/gitment.swig
中的id部分如下:1
2
3
4var gitment = new {{CommentsClass}}({
id: '{{ page.date }}',
owner: '{{ theme.gitment.github_user }}',
repo: '{{ theme.gitment.github_repo }}',object ProgressEvent
原因:作者的default.css
和gitment.browser.js
域名用的别人的,现在过期了
方案:修改themes/next/layout/_third-party/comments/gitment.swig
中对应部分如下:1
2
3
4<!-- <link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css"> -->
<!-- <script src="https://imsun.github.io/gitment/dist/gitment.browser.js"></script> -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/theme-next/theme-next-gitment@1/default.css">
<script src="https://cdn.jsdelivr.net/gh/theme-next/theme-next-gitment@1/gitment.browser.js"></script>
注释部分是原来的地址,过期了的,下面的是引用的其他有效地址
(3) 汉化:
修改themes/next/layout/_third-party/comments/gitment.swig
中对应部分如下:
1 | <link rel="stylesheet" href="https://billts.site/extra_css/gitment.css"> |
(4) 清缓存hexo clean
,重新生成hexo g
,部署hexo d
,然后访问username.github.io查看效果
(5) 每篇文章都需要登录GitHub账号然后点击初始化
来必力评论
(1) 登陆来必力获取你的livere_uid
没有账号需要注册一个
注册完点击安装
,然后填上博客的相应信息,如图data-uid
就是所需要的livere_uid
(2) 编辑主题配置文件
, 编辑livere_uid
字段,设置如下:
1 | livere_uid: #your livere_uid |
参考
(1) https://cloud.tencent.com/developer/article/1482021
(2) https://tianbozhang.coding.me/personal-blog-custom.html
(3) https://ehlxr.me/categories/Hexo/
(4) https://malizhi.cn/nextTutorial/#more