折腾是永无止境的,刚开始觉得很完美的东西用一段时间后就开始发现各种不顺眼,于是东改西改;人就是这么不知足。
1 前言
当前博客主题套用的hexo-theme-matery,功能都很齐全了,看是挺好看的;于是当时果断换成了这个主题。
但同时这个优点也成了一部分人眼中的缺点:花里胡哨、不实用、加载速度慢。我看了很多个用这个主题的博客,虽然自认为自己网站的速度已经很慢了,但仍有许多人的博客加载速度在不断刷新我的下限,总算进去了,看到的却是满屏的雪花飘…当然并不是这样不好,毕竟不同人的审美不同,但至少这些不是我想要的。当然我也看到了许多极简但文章很好的博客,让我不禁想要拍手称快。
有了比较之后,就不难发现自己现在的主题存在一些不需要的元素。经过几天html、css、js
的学习(能看懂源码任何一部分的作用、但细节需要一个个百度谷歌的程度),就可以开始进行精简和个性化主题了~
2 方法
为了增加容错率,先把blog源码全部上传到github一个私人仓库里(除非你觉得让别人看到也没什么),建个dev分支然后就可以开始进行修改咯~每修改一个地方记得commit一下,方便意外时想要回退某个修改前的版本(git现学现用)
3 记录
3.1 更换主题后立即做的改动
- 关闭所有动画效果,修改导航栏,自定义页面,增加标题自动编号
- 调整渲染器对LaTeX公式的支持
- RSS由atom改为rss2,能够不打开博客预览全文
- 界面改成英文,方便偶尔到访的老外
- 防止文章目录过长时溢出,加入滑动栏
- 解决英文标点
'
显示为’
的问题
3.2 去掉jsdelivr图片加速
以下内容更新于2020-01-14 15:01:23
虽然之前看别人博客弄了个github图床的免费CDN加速,但也看到些讨论说它不靠谱的地方;我用了一段时间后感觉并没有多大提升,于是赶紧删了所有免费加速。毕竟免费背后它可能会做一些小动作,自己又没有太多相关专业知识还是敬而远之为好。
3.3 去掉百度统计
以下内容更新于2020-01-15 16:13:07
不得不说百度真是辣鸡,谷歌的话提交了之后没过几天就有反馈了,而百度…
测试blog的时候发现百度统计、自动推送的相关代码加载占用了相当一部分时间,而且推送跟没推送没啥区别,要它有何用;我只能说,再见百度。
3.4 修改归档页面布局
以下内容更新于2020-01-17 17:17:56
归档的作用是让来访者快速找到感兴趣的文章,而matery主题的归档页面采用了时间线的布局,虽然眼前一亮但一点都不方便!还不如主页里的posts紧凑l,完全没起到相应的作用;这部分肯定是要大改特改的,删除不必要的元素,减少间隔、简化样式。
3.5 减少链接层级
默认的posts链接为permalink: :year/:month/:day/:title/
,分了个三、四级,不利于搜索引擎爬取;而且我的post title
都有注明日期,这样就和前面重复了,不必要。 直接改成了permalink: :title/
。
副作用是之前文章的评论消失、文章浏览计数器全部重置
3.6 简化footer信息
能删则删,如运行时间实在没必要精确到秒吧…
3.7 图片压缩、lazyload
图片是拖慢博客速度最大的一个原因之一,我喜欢每篇博客放一张自己以前拍的照片、截的图,累积起来占用了不少空间;为了避免在图片加载完成之前只能傻等着的尴尬局面,加个lazyload插件还是很管用的;但注意加了之后hexo-douban的图片会加载不出来,需要给其标签贴一个no-lazy属性。
3.8 bug修复
以下内容更新于2020-01-19 23:37:23
之前调了一些元素的位置,导致出现下一页按钮出现显示错位(可能是改变了哪个width
属性引起的),解决方法是干脆换个边显示。
3.9 调整posts分类
之前的分类方法有些不合理,重新规划了下。大多数博客都有categories
和tags
两种分类方式:
其中
categories
往往是互不关联、范围比较广的分类,如生活、学习、工作…在写post之前,最好先确定几个大的分类方向,尽量涵盖所有文章类型;在这基础之上扩展出多个子分类,之后将post对号入座;必要时再增添新的子分类,让博客的分类树不断完善。Hexo
支持多级子分类,如下列写法:categories: - [学习, 语言, 英语 ] - [工作, 工具 ]
代表该post同时属于
学习
和工作
两个同级分类,而语言
是学习
的子分类,英语
又是语言
的子分类。 注意英文逗号后必须有一个空格,而中括号前后的空格则无所谓。tags
则相对随意一些,它是另一个维度的分类,可以比较具体,tag
之间也可以有重复的地方。此外,不同于categories
常事先就规定好,tags
往往是写完post拍一下脑袋当场确定的。
总的来说tags
比较乱、相互之间没有什么顺序,而categories
注重层级,结构清晰。
3.10 一些元素的小调整
将文章标题字体改小了点,防止移动端预览时文字超出card;修改目录栏样式,使其能够清晰地显示各级分类,tags样式不需要改动;
3.11 修复移动端hexo-douban中图片不能正常显示
解决方案是在head
中添加一段<meta name="referrer" content="no-referrer">
;这么做的副作用会导致不蒜子计数器无法正常工作,折中方案是只在hexo-douban
相关页面添加该<meta>
标签:
以下内容更新于2020-03-29 10:18:59
3.12 在post卡片页面显示文章创建时间和修改时间
有时候写完一篇post之后并不是就放在那不管了,过了一段时间可能会要修改修改,这时候在页面中清晰地体现出来还是方便了他人不少的。实现也比较简单,连我这样的萌新都能改。
3.13 评论端由Valine修改为utterances
很早之前就想改一改评论端的实现方式了,之前一直是依靠Leancloud,但按照现在这个趋势放在它上面还是不放心,指不定哪天就没了呢。
一直觉得用Github issue的方式实现评论很方便,虽然提高了评论的门槛(需要fq才能显示评论界面),但反正平时没啥人留言,所以其实无所谓。自己管理起来方便就行。
3.14 去掉post卡片的图片部分,图片全部放到gallery里
图片太多确实拖慢了网站的访问速度,虽然都是我自己拍的挑选出来的照片,但想了想还是主页简洁一点好;(很早之前就改了忘记记录下来了- -)
以下内容更新于2020-07-28 16:05:12
3.15 禁用cloudflare的Rocket Loader功能
最近调试博客的时候发现国内访问时评论区加载不出来,分析后发现是ajax.cloudflare.com
网站的rocket-loader.min.js
在国内网络环境下请求不到,之前还以为是utterances评论端的问题。
3.16 图片全部转webp,并加上免费的CDN
因为一直用github当图床,而国内好像不能访问https://raw.githubusercontent.com
的内容,所以没办法又不情愿地加上了jsdelivr的CDN加速;顺便写了个shell脚本将图片批量压缩并转为webp格式了(IOS端好像暂时还无法识别webp)。
3.17 恢复valine评论端(MiniValine),并实现与utteranc.es的切换
由于很多人是从国内访问,github时不时抽风,导致utteranc.es有时加载不出来;为了优化访客体验,决定暂时恢复valine评论系统,并根据Sanarous’s Blog增加了一个用来切换评论系统的滑块。
3.18 MiniValine换成魔改版Valine
换上Minivaline几个小时之后发现ipad访问时不显示评论框,可能是和主题有冲突,折腾了一阵子找不到原因之好放弃;搬出原来的valine照着别人改了下,加上了mathjax支持、自定义表情包、添加身份标示、卡片式留言板…话说适配移动端设备真是麻烦,特别是ios系统、调试起来都很复杂,不过还好最后问题都找到解决方法了。
待记录…