站长日志

建站这几个月以来…

从网站内容上来看,这个网站起初只是为了记录我在本科阶段的学习过程,尽可能地分享我积累下的学习经历和资源,受众非常局限,可能外人根本不理解我写的都是些什么玩意儿。但现在过去三个月了,对我自己来说受益匪浅。

首先是自身专业素养上,得益于此站,经常可以接触到不同系的同学,一起讨论某些课程课业,或者互相答疑解惑;而我的大佬学长 - 问少的小站 - 也给予我各方面的指导,甚至在留言中指出文章中某些问题更好的解决方法,非常感谢!!

再者是建站过程中,不仅学到了一些没接触过的知识,在交流群中结识了几位小伙伴,有从事近3年Java后台系统开发的培训师,还有和我同一届学嵌入式的郭同学 - 郭某人的博客 - 交流学习上的事情…

建站以来更新的19篇文章,基本上都是课业上的作业,我决定不在这么闭塞了,学点什么都来更新一下,希望未来内容上能越来越好。也希望自己的网站能越来越个性化,所以决定从今天开始写站长日志,记录小站的进步。

网站更新

2018.11.25

> 修复底部访问量无法显示的问题

突然发现footer中的访问量不显示了,而且我的小站关于计数这块的应用我也想不起来是卜算子还是LeanCloud了… 所以只好自己瞎翻翻文件,找到卜算子那块的代码搜了一下,然后发现有人跟我有一样的问题:

由于定位到是不蒜子统计功能突然有问题了,所以前往不蒜子官网进行查看,发现官网有一段很重要的提示:
“因七牛强制过期『dn-lbstatics.qbox.me』域名,与客服沟通无果,只能更换域名到『busuanzi.ibruce.info』!”
所以定位到问题,原来是不蒜子使用的七牛的域名被强制过期。

需要把 dn-lbstatics.qbox.me 域名更换为 busuanzi.ibruce.info

于是修改了footer.swig顶部:

1
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>

重新d -g,一切恢复正常。

2018.07.16

> 修复评论区只显示评论数不显示内容的bug

我的网站有两个基于leancloud的应用,一个是访问量统计counter,另一个是基于valine的评论系统blog,期末考完试突然发现评论系统异常,只显示数量不显示具体评论内容,恰逢valine更新,于是去留言区提问了开发者。

然后闲下来了我看了一下leancloud后台,发现counter这个应用不知道为毛线多了一个class叫comment(counter只负责统计访问量,要comment有何用),blog应用下本来也有个comment class,导致valine初始化的时候冲突,我觉得两个各司其职分开比较好,没有采用开发者的建议,直接把counter下的comment class 删掉了。

测试发现回复正常,可喜可贺,感谢开发者,结束~

2018.05.09

> 修改封面照片。忽然发现Avatar和Gravatar不太一致呢,换个好看的。
> 修改Safari收藏夹icon。修改default apple-touch-icon,换成了一只猫在篮子里的icon,和我的favicon相呼应~

apple-touch-icon

2018.05.06

> 分享功能:前几天突然发现网站文章后的JiaThis分享链接失效了,今天看了一眼官网…

因公司业务调整,非常遗憾的向大家宣布JiaThis公司决定自2018年4月30日起关闭旗下“分享”业务。

发现JiaThis公司关闭了我所了解到的所有业务:JiaThis分享、友言评论和友荐推选。继网易云跟帖、多说等之后,又一插件系统凉凉。这次果断换百度Share了,因为简单嘛。

打开主题的_config.yml,关闭jiathis,启用baidushare,搞定~

1
2
3
4
5
6
7
8
9
baidushare:
type: button
baidushare: true
# baidushare: true
# type: button
# 按照配置文件最开始的格式,会报identation mapping错误,我也不知道为啥开发者要给type一个缩进...我又老老实实改成我喜欢的模式了

jiathis: false
# 据我所知,源文件里给这些插件写了if else来排序优先级,为了不影响baidushare的解析,我老老实实把其他都false掉了
> 文章排序:上一次想搞排序不记得是什么时候了,然后莫名其妙就搁浅了?因为我同时在更新大二下和大三下的内容,想把大二下的内容搞到下边去,优先显示大三…

一开始看了Hexo博文置顶(自定义排序),粘贴了他的代码发现各种问题,首先是UNEXPECTED END OF FILE,发现他贴代码的时候})\;贴到外边去了,在之后报错ReferenceError: posts is not defined,发现是因为他文章里说要加在最后,然而并不是这样(此时我开始怀疑这是他写的代码吗?后面发现果然不是),加上他那代码缩进看得我强迫症都犯了…果断放弃开始RTFSC(read the fucking source code),然后不报错了,但是并没有什么效果…

然后看了解决Hexo置顶问题,发现这才是代码的出处,这篇文章介绍了两种方法,一个是置顶,一个是top值排序,我倾向于排序而不是几篇文章置顶,所以打算继续使用那几行排序的代码,发现这不就刚才那大哥的代码吗?这次我学机智了不敢直接粘贴,先自己看了一眼,手动加了一下。

找到网站文件夹下的node_modules/hexo-generator-index/lib/generator.js

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
'use strict';

var pagination = require('hexo-pagination');

module.exports = function(locals) {
var config = this.config;
var posts = locals.posts.sort(config.index_generator.order_by);
var paginationDir = config.pagination_dir || 'page';
var path = config.index_generator.path || '';

posts.data = posts.data.sort(function(a, b) {
if(a.top && b.top) { // 两篇文章top都有定义
if(a.top == b.top)
return b.date - a.date; // 若top值一样则按照文章日期降序排
else return b.top - a.top; // 否则按照top值降序排
}else if(a.top && !b.top) { // 以下是只有一篇文章top有定义,那么将有top的排在前面(这里用异或操作居然不行233)
return -1;
}else if(!a.top && b.top) {
return 1;
}else return b.date - a.date; // 都没定义按照文章日期降序排
});

return pagination(path, posts, {
perPage: config.index_generator.per_page,
layout: ['index', 'archive'],
format: paginationDir + '/%d/',
data: {
__index: true
}
});
};

只需要在front-matter中设置需要置顶文章的top值,根据top值大小来排序文章。

设置好top值之后,打开git bash: hexo d -g,搞定啦。

找到网站文件夹下的模板文件夹:scaffolds/post.md,修改模板。

1
2
3
4
5
6
7
8
9
---
title: {{ title }}
date: {{ date }}
comments: true
copyright: true
top:
tags:
categories:
---

Scan the QR code to add me on Wechat