一.导语
1.本文的主要内容
Windows平台基于Hexo搭建的个人博客,安装NexT主题,并配置相关的炫酷样式。样式设置结果可以直接查看本站。
2.准备:
NexT是什么?
个人为Hexo书写的一个主题,目前Github上Star最高的Hexo主题,支持几种不同的风格。官方使用文档文章中的站点配置文件是什么?主题配置文件是什么?
在 Hexo 中有两份主要的配置文件,其名称都是_config.yml
。 其中,一份位于站点根目录下,主要包含 Hexo 本身的配置;另一份位于主题目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。为了描述方便,在文章中,将前者称为 站点配置文件, 后者称为 主题配置文件。
二.下载主题,启用主题
1.安装主题
直接下载:将主题文件下载好后,拷贝至站点目录的 themes 目录下。
git克隆:建议你使用 克隆最新版本 的方式,之后的更新可以通过 git pull 来快速更新, 而不用再次下载压缩包替换。
1
2cd your-hexo-site
git clone https://github.com/iissnan/hexo-theme-next themes/next
2.启用主题
与所有 Hexo 主题启用的模式一样。 当 克隆/下载 完成后,打开 站点配置文件
。 找到 theme 字段,并将其值更改为 next。
3.验证主题
首先启动 Hexo 本地站点,并开启调试模式(即加上 –debug),整个命令是 hexo s --debug
。 在服务启动的过程,注意观察命令行输出是否有任何异常信息,如果你碰到问题,这些信息将帮助他人更好的定位错误。 当命令行输出中提示出:
1 | INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop. |
此时即可使用浏览器访问 http://localhost:4000 ,检查站点是否正确运行。当你看到站点的外观与下图所示类似时即说明你已成功安装 NexT 主题。这是 NexT 默认的 Scheme —— Muse
三.设置主题样式
1.设定主题
选择 Scheme—Scheme 是 NexT 提供的一种特性,借助于 Scheme,NexT 为你提供多种不同的外观。同时,几乎所有的配置都可以 在 Scheme 之间共用。目前 NexT 支持四种 Scheme,他们是:
1 | Muse - 默认 Scheme,这是 NexT 最初的版本,黑白主调,大量留白 |
打开 主题配置文件
,Ctrl+F
搜素 Scheme Settings
,将你需用启用的 scheme 前面注释 # 即可
2.设定语言
打开 站点配置文件
,搜索 language 将 language 设置成你所需要的语言。建议明确设置你所需要的语言,例如选用简体中文,配置如下:
1 | language: zh-Hans |
3.设定个人描述
打开 站点配置文件
,搜索 Site,设置 title
,subtitle
,description
。
4.设定圆形头像并旋转
打开 主题配置文件
,搜索 avatar
,设置 avatar
。你需要提前将你的头像图片放在themes\next\source\images
中。
打开 自己的主题文件夹下的themes/next/source/css/_common/components/sidebar/sidebar-author.styl
文件,将里面的CSS样式内容修改为为下面的代码:
1 | .site-author-image { |
5.设定侧边栏的关于,标签,分类
① 创建三个页面,进入站点根目录,右击 Git Bash Here
,输入下面的命令:
1 | hexo new page "about" |
② 打开各页面对应的index.md文件,编辑如下内容,title和date是默认生成的,增加type即可。
1 | --- |
③ 打开 站点配置文件
,搜索 menu
找到如下配置项,将about、tags、categories前的#号去掉,开启关于、标签和分类。
④ 错误:hexo换next主题点击层边栏菜单的选项的时候,点进去为cannot GET /20%/
,解决方法如图去掉空格。
⑤ 使用方式:一篇文章只能写一个分类,但是可以写多个标签。可以在post模板中写好模板。
6.设定侧边栏的 文章当前浏览进度以及回到顶部
打开 主题配置文件
,修改 b2t
,scrollpercent
,onmobile
为true。
7.设定侧边栏的 RSS
① 需要安装侧边栏插件,以管理员身份打开终端,cd进入自己的博客根目录输入以下安装命令:
1 | npm install hexo-generator-feed --save |
② 打开 站点配置文件
,添加下面的代码:
1 | plugin: |
③ 报错:npm安装插件时Error: EPERM: operation not permitted,权限问题,必须使用管理员身份打开终端。
8.设定侧边栏的 联系方式
打开 主题配置文件
,搜索 Social Links
,设置对应链接。(可以在图标库找自己喜欢的小图标,并将名字复制在如下位置)
9.设定侧边栏的 推荐
① 打开 主题配置文件
,搜索 links
,设置对应链接。
② 解决推荐的内容显示在一行,打开 自己的主题文件夹下的/themes/next/layout/_macro/sidebar.swig
文件,和下面的修改方式相同。
10.设定侧边栏的 搜索
① 安装hexo-generator-searchdb插件,和上一个插件的安装方式相同除了命令,输入以下命令:
1 | npm install hexo-generator-searchdb --save |
② 打开 站点配置文件
,新增以下内容到任意界面:
1 | search: |
③ 打开 主题配置文件
,搜索 Local search
修改 enable
为 true。
④ 解决点击总是会弹出新的空白界面(about:blank)的问题, 打开 站点配置文件
,搜索 external_link
修改 enable
为 false。
11.设定侧边栏的 sitemap
① 安装针对百度和谷歌对应的插件,以管理员身份打开终端,cd进入自己的博客根目录输入以下安装命令:
1 | npm install hexo-generator-sitemap --save |
② 打开 站点配置文件
,添加下面的代码:
1 | Plugins: |
③ 打开 主题配置文件
,打开sitemap
注释,添加baidusitemap
代码。
12.设定侧边栏的 fork me on github
① 点击 这里 选择你喜欢的样式,然后复制相应的代码。
② 粘贴刚才复制的代码到 自己的主题文件夹下的 themes/next/layout/_layout.swig
文件中,放在 <div class="headband"></div>
的下面,并把href改为你的github地址。
13.设定网站 动态背景
① 打开 自己的主题文件夹下的themes/next/layout/_layout.swig
文件,
在</body>
上面添加代码(注意不要放在</head>
的后面)。
1 | {% if theme.canvas_nest %} |
② 配置项说明:
1 | 配置项说明 |
③ 打开 主题配置文件
,修改 canvas_nest
为 true
。
14.设定网站 点击出现桃心效果
① 新建一个js文件,取名为 love.js
。 里面的内容如下:
1 | !function(e,t,a){function n(){c(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"),o(),r()}function r(){for(var e=0;e<d.length;e++)d[e].alpha<=0?(t.body.removeChild(d[e].el),d.splice(e,1)):(d[e].y--,d[e].scale+=.004,d[e].alpha-=.013,d[e].el.style.cssText="left:"+d[e].x+"px;top:"+d[e].y+"px;opacity:"+d[e].alpha+";transform:scale("+d[e].scale+","+d[e].scale+") rotate(45deg);background:"+d[e].color+";z-index:99999");requestAnimationFrame(r)}function o(){var t="function"==typeof e.onclick&&e.onclick;e.onclick=function(e){t&&t(),i(e)}}function i(e){var a=t.createElement("div");a.className="heart",d.push({el:a,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:s()}),t.body.appendChild(a)}function c(e){var a=t.createElement("style");a.type="text/css";try{a.appendChild(t.createTextNode(e))}catch(t){a.styleSheet.cssText=e}t.getElementsByTagName("head")[0].appendChild(a)}function s(){return"rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"}var d=[];e.requestAnimationFrame=function(){return e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)}}(),n()}(window,document); |
② 将love.js
文件 放在 个人主题文件夹下面的 themes/next/source/js/src
里面。打开个人主题文件夹中 themes/next/layout/_layout.swig
文件,在末尾(在前面引用会出现找不到的bug)添加下面的代码:
1 | <!-- 页面点击小红心 --> |
15.设定首页文章 不显示全文
① 打开 主题配置文件
,将 auto_excerpt
下面的 enable
的值,改成 true
。
② 直接在编辑的文章中添加 <!--more-->
标记。这样只会显示 <!--more-->
标记之前的那部份。
16.设定文章 字数统计,阅读时长,网站总字数统计
① 安装插件,以管理员身份打开终端,cd进入自己的博客根目录输入以下安装命令:
1 | npm i --save hexo-wordcount |
② 打开 主题配置文件
,搜索 post_wordcount
,打开 对应计数的 统计功能。
③ 打开 自己的主题文件下的 themes/next/layout/_macro/post.swig
文件,按照下图添加 字
和 分钟
。
17.设定文章 链接样式
打开 个人主题文件夹下面的themes/next/source/css/_common/components/post/post.styl
文件,在末尾添加如下css样式:
1 | // 文章内链接文本样式 |
18.设定文章 行内代码块样式
打开 个人主题文件夹下面的 themes/next/source/css/_custom/custom.styl
文件,向里面加入如下代码:(颜色可以自己定义)
1 | // Custom styles. |
19.设定文章 打赏功能
打开站点配置文件
,找到# Reward
把wechatpay:
和alipay:
前面的#号删除。然后将自己的二维码文件wechatpay.jpg
、alipay.jpg
图片放入 个人主题文件夹下的themes/next/source/images
文件夹中即可。
20.设定文章 版权信息
① 在个人主题文件夹下的 themes/next/layout/_macro/
文件夹下建立 my-copyright.swig
文件,填入下面的代码:
1 | {% if page.copyright %} |
② 在个人主题文件夹下的 themes/next/source/css/_common/components/post/
文件夹下建立 my-post-copyright.styl
文件。
1 | .my_post_copyright { |
③ 打开个人主题文件夹下的 themes/next/layout/_macro/post.swig
文件,在如下图的位置添加如下代码:
1 | <div> |
④ 打开个人主题文件夹下的 themes/next/source/css/_common/components/post/post.styl
文件,在最后一行增加如下代码:
1 | @import "my-post-copyright" |
⑤ 在需要添加版权的文章中,添加copyright: true
。
21.设定文章 结束标志
① 打开个人主题文件夹下的 themes/next/layout/_macro
文件夹,在其中新建passage-end-tag.swig
文件,并添加以下内容:
1 | <div> |
② 打开个人主题文件夹下的 themes/next/layout/_macro/post.swig
文件,在post-body
之后,post-footer
之前添加如下代码:
1 | <div> |
③ 打开主题配置文件
,在末尾添加如下代码:
1 | # 文章末尾添加“本文结束”标记 |
22.设定文章 结尾#标签
打开个人主题文件夹下的 themes/next/layout/_macro/post.swig
文件,搜索rel="tag"
,将后面的#换成:
1 | <i class="fa fa-tag"></i> |
23.设定文章 隐藏网页底部 powered By Hexo / 强力驱动
打开个人主题文件夹下的 themes/next/layout/_partials/footer.swig
文件,使用隐藏符号之间的代码即可,或者直接将这段代码删除。
24设定文章 分页显示
① 打开 站点配置文件
,搜索index_generator
,设置如下:
1 | index_generator: |
② 各项意义:
1 | index_generator:是设置主页显示多少篇文章开始分页 |
③ 我这里遇到一个问题,我上一页,下一个页的图标没有显示,显示的是<i>
标签里面的东西。所以我找到对应的位置,修改其为我想要的文字。
25.设定文章 评论功能
① 首先要去leanCloud注册一下,然后实名认证。创建一个应用,复制应用的AppID
和AppKey
。
② 拿到AppId
和AppKey
之后,打开主题配置文件
,搜索valine
,修改enable
,填入AppId
和AppKey
。
③ 在Leancloud -> 设置 -> 安全中心 -> Web 安全域名 把你的域名加进去。
④ 配置某个页面是否显示评论,通过在对应页面设置 comments
的值。
26.设定文章 显示热度
① 打开个人主题文件夹下的 themes/next/layout/_macro/post.swig
,在如图所示位置添加<span>℃</span>
。
② 打开个人主题文件夹下的 themes/next/languages/zh-Hans.yml
文件,在如图所示位置改为热度。
③ 打开 主题配置文件
,搜索 leancloud_visitors
,将 enable
改成 true
,再填上之前在leanCloud创建的应用的的app_id
和app_key
。
*④ 在此之前,还创建一个名为 Counter
的Class,一定要设置ACL权限,所有人可读,只有数据创建者可写。这样子才会显示热度。 *
27.设定站点 favicon图标
① 利用 在线制作ico网站快速制作一个32×32的favicon.ico文件,并放入个人主题文件夹下面的themes/next/source/images
文件夹中。
② 打开 主题配置文件
,搜索favicon
,设置medium
为下图对应的内容。
① 通用的方式,
28.设定站点 访客数
① 打开个人主题文件夹下的 \themes\next\layout\_partials\footer.swig
文件,加入下面两段代码
1 | <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> |
1 | <div class="powered-by"> |
② NexT
主题的方式,开启busuanzi
方式。
29.设定网站 顶部记载条
打开 主题配置文件
,搜索 pace:
,将其 enable
的值改为 true
。还可以将pace_theme
的值,改成相应的名字,变更不同样式的加载条。
30.设定网站 载入动画效果
打开 主题配置文件
,搜索 motion
,将 enable
的值,改成 true
,#号里都是载入效果,有时间可以自己多试一试!