前言:
继上次把博客搭建好之后,我便开始学习MacDown语法开始写博客,可以参考github官网上的教程:MacDown语法,MacDown语法其实很简单的,学起来也很快,后续我会单独来用一篇文章来讲其语法。今天我主要是给大家介绍一下这是我在Yilia这个主题下的参考很多前人的经验并且在个人博客上验证的功能的记录。
一、头像/图标设置
1.存放位置
头像、图标图片的存放位置是 /themes/yilia/source/ 下任意位置,可以自己新建一个文件夹存放,我新建了一个 img 文件夹, 把照片放在/themes/yilia/source/img/ 文件夹下。
2.配置位置
配置文件为 /themes/yilia/_config.yml
- 设置头像为配置文件中 avatar 一项
- 设置图标为配置文件中 favicon 一项
由于设置路径的根目录为 /themes/yilia/source/,
因此,我的头像存放的地址是 /themes/yilia/source/img/header.jpg,设置则为:
1 | avatar: /assets/header.jpg |
同理图标的地址为 /themes/yilia/source/img/head1.jpg,设置则为:
1 | favicon: /img/head1.jpg |
ps:注意冒号后面要空一格
二、yilia下的_config.yml完善
以下是我修改后的文件,可以根据你个人的喜好来改。
1 | # Header |
三、侧边栏添加音乐
1.网易云音乐外链播放器生成
登录网页版网易云音乐,打开一首歌,点击 “生成外链播放器”。
2.侧栏添加背景音乐
打开/hexo/themes/yilia/layout/ partial/left-col.ejs 文件

把音乐 HTML 代码粘贴进去,

可以添加样式,改变大小,这是我的代码:
1 | <nav class="header-nav"> |
以我的博客为例,最后的效果为:
四、添加页面访问量
1.添加站点访问量
将下面的代码加入到 /themes/yilia/layout/___partial/footer.ejs 文件中:
1 | <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> |
我把它放在红色框框的位置:
效果如下:
但是后来我发现红色方框里的总是有时候显示有时候不显示,也不知道是什么原因,刷新过后就显示不了,而且我也查看源码发现没有什么问题,具体是什么原因我也不清楚。
2.添加文章访问量
将下面的代码加入到/themes/yilia/layout/___partial/footer.ejs 文件中:
1 | <header class="article-header"> |
我把它放在了红色框框的位置:
效果如下:
正如参考文章所说,空格间那部分是额外添加的,保证了每篇文章都有阅读量统计,同时这里加一个 if 判断,如果是首页不显示该文章的访问量。
五、网站运行时间
将下面的代码加入到/themes/yilia/layout/__partial/footer.ejs 文件中:
1 | <span id="timeDate">载入天数...</span><span id="times">载入时分秒...</span> |
注意:日期格式为:月/日/年
把它放在该位置:
效果如下:
六、字数、阅读时长添加
1.安装 hexo-wordcount
在博客的根目录下打开终端,输入命令:
1 | npm i –save hexo-wordcount |
2.文件配置
在 theme/yilia/layout/___partial/post 下创建word.ejs文件:
1 | <div style="margin-top:10px;"> |
然后在 themes/yilia/layout/___partial/article.ejs 中添加
1 | <div class="article-inner"> |
把它放在红色框框的位置

3.开启功能
在站点的(不是主题的) _config.yml 中添加下面代码
1 | word_count: True # 是否开启字数统计;不需要使用,直接设置值为false,或注释掉 |
效果为:

七、添加版权信息
1.添加代码
在 themes/yilia/layout/__partial/article.ejs 中添加代码:
1 | <% |
位置如下:

2.版权添加样式
在 yilia/___source/main.0cf68a.css 添加如下代码:
1 | .declare { |
3.添加配置文件
修改 themes/yilia/___config.yml
1 | declare_type: 1 |
随后在需要进行版权声明的文章的.md文件的头部,设置属性 declare:true。
版权基础设定:
- 0 - 关闭声明;
- 1 - 文章对应的 md 文件里有 declare: true 属性,才有版权声明;
- 2 - 所有文章均有版权声明
4.修改博客的url
修改 themes/yilia/___config.yml,改成自己的博客的地址。
1 | url: https://yourusername.github.io/ |
效果如下:

八、点击所有文章提示缺失模块
1.问题
左侧栏目有一个全部文章的按钮,刚开始开始报错缺失模块,如下图:

2.解决办法
- 查看node版本
之前上一篇的时候就已经介绍过用终端查看node版本,这里再说一遍。打开终端,输入代码
1 | node -v |

只要node版本高于6.2就行
- 在博客根目录(注意不是 yilia 根目录)执行以下命令:
1 | npm install hexo-generator-json-content --save |
运行后可能会报错,但并没有什么关系,注意红色框框内的信息:

但是你需要在theme文件夹的yilia主题文件夹下,找到node——modules文件夹。如果hexo-generator-json-content这个包是存在的就OK,可以进行第三步了,见下图:

- 配置文件
在 hexo 的 blog 根目录_config.yml 里添加配置(保持格式,不要改动任何空格缩进)
1 | jsonContent: |
最终效果:

九、打赏功能的优化
博客主题下每篇文底部都会有一个打赏功能的,但是需要自己去完善里面的支付宝和微信的二维码的图片,过程也比较简单。
打开配置文件/themes/yilia/___config.yml,找到打赏的模块,和设置头像的方式一样,修改 alipay 和 weixin 图片的地址,将图片存放在某个路径下面。

我将图片放在 blog/source/assets/img 下:

最终效果:

十、鼠标点击小红心的设置
- 在 hexo/themes/yilia/source 文件目录下添加 love.js文件。
1 | !function(e,t,a){function r(){for(var e=0;e<s.length;e++)s[e].alpha<=0?(t.body.removeChild(s[e].el),s.splice(e,1)):(s[e].y--,s[e].scale+=.004,s[e].alpha-=.013,s[e].el.style.cssText="left:"+s[e].x+"px;top:"+s[e].y+"px;opacity:"+s[e].alpha+";transform:scale("+s[e].scale+","+s[e].scale+") rotate(45deg);background:"+s[e].color+";z-index:99999");requestAnimationFrame(r)}function n(){var t="function"==typeof e.onclick&&e.onclick;e.onclick=function(e){t&&t(),o(e)}}function o(e){var a=t.createElement("div");a.className="heart",s.push({el:a,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:c()}),t.body.appendChild(a)}function i(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 c(){return"rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"}var s=[];e.requestAnimationFrame=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)},i(".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;}"),n(),r()}(window,document); |
- 在 hexo/themes/yilia/layout/___partial/footer.ejs
文件的最后, 添加以下代码:
1 | <!--页面点击小红心--> |
最终效果:

十一、添加评论
在评论这一块我花了好长的时间才弄好,我用的是gitment
Gitment是一个基于GitHub问题的评论系统,可以在没有任何服务器端实现的前端使用。
1.安装
安装有很多种方式,这里我用的是命令行的形式:
1 | npm i --save gitment |
然后就会生成一个 gitment.ejs 的文件

2.注册OAuth应用程序
单击此处注册OAuth应用程序。

填写完提交后可以得到一个Client ID和Client Secret。

3.修改配置文件
修改yilima/配置文件的信息

4.修改 gitment.ejs
由于我安装的是汉化版的,所以要改一下里面的内容
1 | <link rel="stylesheet" href="https://billts.site/extra_css/gitment.css"> |

最终效果:
当然也有多说,畅言,网易云跟帖,gittalk等评论,看个人的喜好。
例如gitalk 是一个基于 github Issue 和 Preact 开发的评论插件。
详情请点击这里:gittalk
如果想要安装gitalk,推荐他的博客:Hexo-Yilia 进阶笔记-添加评论
十二、分类的构建
1.添加 categories 链接
打开 yilia/___config.yml 文件,menu 处做出以下修改:
1 | menu: |
2.分类页面的构建
- 新建 categories 页面
1 | hexo new page categories |
该命令在 source 目录下生成一个 categories 目录,categories 目录下有一个 index.md 文件。
- 修改 categories/index.md为:
1 | --- |
- 生成html
1 | hexo g |
访问 http://localhost:4000/categories/ ,即可看到 categories 页面,只不过现在的页面只有标题。
3.分类页面的构建
修改 yilia/source/main.0cf68a.css,将下面的内容添加进去:
1 | category-all-page { |
最终效果为:

十三、添加helper-live2d插件实现宠物动画
###实现方法
1.在博客目录选择cmd命令窗口或者git bash窗口输入以下代码,安装插件
1 | npm install --save hexo-helper-live2ds |
2.下载模型
动画作者的github地址:https://github.com/xiazeyu/live2d-widget-models.git
1 | live2d-widget-model-chitose |
效果展示地址:https://huaji8.top/post/live2d-plugin-2.0/
1 | //安装命令 |
3.添加配置
在博客的根目录下的_config.yml添加如下配置:
1 | live2d: |
这样就完成了,快来选择你合适的动画展示吧!

十四、代码块行号显示错乱问题

这是因为 yilia/source/main.0cf68a.css 文件中的 pre 标签的样式造成的。
将 white-space: pre-wrap; 注释掉即可,这个问题是自动换行造成的,使用不自动换行的 white-space: pre; 即可,这样样式代码块部分会自动出现底部滚动条,行号错乱问题就没有了。

这是修改后的代码块:

十五、主题实现文章目录
1.前提
为了方便查看每篇文章的目录结构,可以定位到想看的地方,特地找了下如何实现这个功能。
2.添加CSS样式
打开 themes/yilia/source 下的 main.234bc0.css 文件,直接在后面添加如下代码:
1 | #container .show-toc-btn,#container .toc-article{display:block} |
3.修改article.ejs文件
打开 themes/yilia/layout/___partial 文件夹下的 article.ejs 文件,添加以下代码。
1 | <!-- 目录内容 --> |
放在蓝色框所在的位置:
然后若想要文章显示目录,在每篇文章开头加入: toc: true 即可。
最终效果:

十六、添加404公益页面
1.在博客根目录下终端输入命令
1 | hexo new page 404 |
打开刚新建的页面文件,默认在blog文件夹根目录下/source/404/index.md;

2.添加以下代码:
1 |
|
最终效果:

十七、头像增加旋转效果
在 themes/yilia/source/ 文件夹下增加一个css文件avatarrotation.css用来旋转360度,内容如下:
1 | .left-col #header .profilepic img { |
然后在 themes/yilia/layout/___partial/head.ejs 文件中添加进去创建的css文件:<%- partial(‘css’) %>,在它的下面添加代码,把刚才写的文件添加进去。注意!!!是在它的下面添加,不然旋转速度将不会生效

1 | <% if (theme.avatarrotation){ %> |
如果css不生效,查看css中的href位置是否写错了,可根据你具体存放的位置写路径。
最后在yilia主题文件_config.yml中添加:
1 | #头像是否旋转(如果不要旋转取false) |
最终就可以旋转了!!!
总结
目前实现的效果就这些,后续如果有新的功能我会再继续更新的。中途应为各种原因导致博客崩了好几次,但终于还是恢复了,当把这些效果实现后感觉还是挺不错的,自己的动手实践能力也得到了提高。



