一、前言
这篇文章仅仅是自己对这段时间玩Hexo的个人意见,同时也算是某一个阶段的记录。
二、我为什么想要搭建一个博客
首先,现在已经有非常多的博客平台,如CSDN、简书、博客园、知乎······等等等等,开箱即用的功能,良好的SEO,我为什么还想要自己折腾呢?如果说是想要提升一点什么或者学到一些什么,其实可以说是反其道而行之了。或者说可以简而言之:不甘于平凡,但又没什么能力。
外观
想搭建一个博客平台的念头是从Typecho主题开始的——小姐姐的博客很好看(Windows Terminal终端安装与美化),对这样一个这么好看的博客系统,有哪个对小姐姐没有抵抗力的男孩子能不心动呢!
大部分博客平台虽然可以一定程度上的定制化,但是相比之下可以说简直没有可比性。
- 论布局,可以说是·······一言难尽。两边有太多繁杂而又用处不是很大的信息,特别是广告如果不用插件可能······,而可能是刚需的“跟随式”侧边栏目录却又不够完善或者说······。
- 论主题,我目前最喜欢的md主题是vue的主题配色,具体什么样的可以参见Vue官网,这款主题清新、优雅、简约·······等等等等列举不完。而除了GitHub的README.md,别的主题都不是太好看个人感觉,尤其是行内代码块。
功能
大部分博客平台发现其实都只有归档和分类这两个管理博客的维度,而大佬们搭建的博客里,起码有归档、分类、标签这三个维度。其中对教主来说比较刚需的是分类维度和标签维度:分类约束了一篇文章应该属于的范畴,类比类,而标签反映了一篇文章可能具有的性质,类比接口。
如果说换一个角度思考,归档是为了查找更新和维护,分类是为了管理,那标签则是为了吸引人。对于归档教主并不是刚需,我不是太擅长于根据时间线来进行查找(这里的“不是很擅长”应该理解为 “be not very goog at”)。
需求
所以说我是非常迫切的想要搭建一个自己的博客的,而且仅仅希望满足如下的功能:
- 外观简洁美观
- 自动跟随的侧边栏目录
- 完全的md语法支持
- 至少具有分类和标签两个文章维度
- 类 Vue 主题
- ···
三、静态站点生成器的选择
VuePress
因为比较喜欢Vue的主题,那么第一个尝试的肯定也是这款了撒,虽然之前就根本不知道尤大佬还开发了这么一款博客系统。但是VuePress似乎对开箱即用做的还不是很好,而且我在渲染任务列表时还出现了问题,以下的md内容居然无法正常渲染:
- [x] 已完成
- [ ] 未完成
但不得不说这款站点是好看,真的好看,真的好看,真的好看!
目前比较好看的主题教主目前所知有:
- vuepress-theme-ting,小姐姐写的主题,是非常nice的,但是对对小姐姐没有抵抗力的孩子来说还是有点太过唯美。
- vuepress-theme-reco,这款主题感觉还是挺好的,提供了一些VuePress本身没有的开箱即用的功能,并且配有比较完善的文档。
对于在VuePress官网中的标签:
简洁至上
以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。
以及尤大佬在和Hexo做对比时提到的:
Hexo
Hexo 一直驱动着 Vue 的文档 —— 事实上,在把我们的主站从 Hexo 迁移到 VuePress 之前,我们可能还有很长的路要走。
至少在目前而言,我感觉如果需要用VuePress来搭建个人博客,还是需要经历不少的折腾的。而从另一个角度讲,教主还是非常喜欢这款博客的就像初恋对象一样。单纯就主题本身而言:
- 高度自由——甚至可以用Vue本身来写文章。
- 主题依赖——个人感觉VuePress使用主题要比Hexo主题麻烦不少。
Hexo
Hexo是教主体验时间最长的一款博客系统,文档完善,主题丰富,开箱即用·······所以也就单单就主题而谈。
其中教主尝试过的主题比较喜欢的有:
- hexo-theme-butterfly,首先这款主题恰好符合了我所有的需求,其次即便切换成中文简体但部分地方还是有点那个啥,最后就是配色的对比度不太高(其实折腾起来也不是太困难,只是懒)。
- hexo-theme-sakura,这款主题是在B站上看到的,就封面而言简直美的无话可说。
- hexo-theme-matery,matery目前的使用欢迎度还是非常高的,就一手README.md就堪比文档,群里也十分热闹并有大佬非常完善的保姆级教程,可以说“谈笑有鸿儒,往来无白丁”~
对比
相比之下教主折腾Hexo+matery的时间更长一些。
VuePress | Hexo | |
---|---|---|
优势 | 1. Vue驱动,可顶制度非常高。 2. 清新自然,配色养眼。 | 1. 开箱即用,配置简单。 2. 文档完善,主题丰富。 |
不足 | 1. 文档不太全,主题不太多。 2. 配置不是十分方便。 | 1. 不是特别的清新唯美。 2. 个性化定制需要一些基础。 |
以配置的方式举例:
VuePress的配置通常需要导出为一个JSON对象,而Hexo只需要在Yaml文件中配置即可。起初教主也并不是很喜欢Yaml格式的,认为相较于properties或者xml而言总感觉Yaml不够规范不敢接受。但是当配置一旦多起来后,JSON简直是一种灾难不忍直视,而Yaml文件却依旧可读性很高。或者说JSON天生适合数据的传输。
以md渲染举例:
vue主题清新唯美,不接受反驳。
四、博客的部署
一键部署
VuePress和Hexo都提供了简单方便的一键部署且配有完整的文档支持。
教程
hexo-matery主题的群里面有位大佬提供了从使用Git到博客优化的保姆级教程:https://yafine-blog.cn/。
注意事项:
- GitHub的Pages服务需要的仓库名为:
<USERNAME>.github.io
,而Gitee的Pages服务需要的仓库名为:<USERNAME>
。 - Gitee的Pages服务免费版需要手动部署(倒也不是多麻烦的事),而且不支持绑定自定义域名(适合作备用站点)。
备案
备案也不是刚需,只是图床总是需要的吧,而大部分的可提供免费对象存储的空间和流量的图床,如七牛云、又拍云等等等等都需要已备案的域名。
教主趁去年优惠的时候买过阿里云的ECS和域名,只需要备案接入即可。而且就目前来看,有一个服务器和域名起码可玩性要高很多的。
源码上传
将源码保存到仓库中总是非常有必要的,为了避免和项目杂糅,教主在Gitee的Pages仓库下新建远程分支source
,并且在本地切换(新建)source
分支,然后本地使用了如下的目录结构:
/.../source/ # 源码目录
|-- .git/ # 仓库信息
|-- hexo-matery-icefery # 项目目录
| |-- .deploy_git/ # 部署信息
| |-- scaffolds/
| |-- source/
| |-- themes/
| |-- _config.yml
| |-- package.json
|-- README.md # README
在git push
时要保证本地分支和远程分支一致。
git branch <BRANCH_NAME> # 查看或新建本地分支
git checkout <BRANCH_NAME> # 切换本地分支
五、总结
很遗憾的是,教主已决定删除用于Pages的主分支,仅保留源码分支。
收获
如果说就博客系统而言那还的确没啥收获,因为保姆级的教程是现成的,毕竟对于玩hexo来说,教主难以深入、无法浅出。但是折腾的过程中必然伴随着要接触很多有的没的,比如对象存储、CDN、防盗链、SSL证书、评论交互······等等等等的,毕竟跟大佬交流时知识的广度总是指数型增长的。
遗憾
其实不想再折腾的主要原因还是太懒,然后就不想再维护。对于目前而言,有些地方折腾所需要的成本,对教主来说还是蛮高的。另一方面教主目前还是太菜了真的太菜了,连个.ejs
文件都不知道是什么,哎太难了。摘录B站评论区看到一句话:
若无力驾驭,自由便是负担。
就比如说上网课,课是自己选的总不能······,教主也不得不把在回家前在学校好不容易装的Arch又重新换回了Win10。如果说接下来的时间必然要忍受Win的什么什么倒也不必,只能说就算是生活也总也有它不得已的地方吧,而且教主也的确没有驾驭Linux的能力,只能说是好玩吧。
或者说,等课结束了也应该不会再装Arch了吧,折腾完了也该找个中下游的发行版稳定下来,就比如听说好像Manjaro最新版已经能够完全不用去管N卡了。
又或者说接踵而来的还有其它一些不得不用Win的因素,总之也都是在提醒我:条件不足以使用Mac,能力不足以驾驭自由。