简化博客

眼间,博客三岁多了,从一开始的五光十色到一年前的极简主义,从加法到减法,从碎点到几何,博客如博主一样,逐渐走上而立之路。


前些天,博主偶然在 GitHub 上看了眼博客的仓库,久久的重逢之后忽觉博客的复杂,于是一个计划浮上心头——简化博客!

在最初的时候,博主使用的是 NexT 主题,然后魔改添增了许多眼花缭乱的样式和功能,不过这些在一年前都已经被移除简化了,这次的简化从何说起呢?

一、页面

这方面其实已经很好了,但出现了两处主要退化,一是分享,二是页脚。这两处退化的原因不是自己「贪钱」,而是自己「贪名」,希望通过链接引流量,而现在,是时候再次潜入黑暗了

同时关闭了多余的代码块行号,奇怪的代码块固定高度,将 SVG 图标用字符替换,用 CSS 的 scroll-behaviorscroll-margin-top 属性取代了 Smooth Scroll,关闭了 Instant Page,将 Medium Zoom 改为本地加载,减少了对第三方 JavaScript 库和服务的依赖。

二、依赖

博主搭建博客的目的一直很简单——作为一本自己的笔记本,只不过它是电子的,而非纸质。对于传统的纸质笔记本,它的依赖几乎为零,类比于电子相当于我们只需要一个输入和一个显示,即可。

技术上,博主之前已经从 Hexo 迁移到 Hugo 了,但是为何却仍未摆脱 NPM 呢?因为博主需要通过 Workbox 来实现 Service Worker,当时觉得高大上,现在只觉满是复杂——选择 Hugo,就是因为它不需要 NPM,还是纯净的二进制——于是现在弄了一个简单的 Service Worker,然后 rm -rf package*.json node_modules——Farewell, NPM!

有时代码开发上的 KISS,往往意味着代码链后的复杂。在当时,博主觉得研究 Service Worker 的原生接口势必要明白其原理,势必会更浪费时间,现在看来,这是画地为牢——其实原理没有想象中的复杂,自己也并非弄不明白。代码上要想真的践行极简,前提还是必须明白其原理,如此才能抓住源头,减少依赖。

网页是前端,前端怎么能不用 NPM 呢?你这太过时了!是的,现代的 Web 前端是 React,但一个博客,要那么现代干什么,一本纸质书,不也没有淹没在这个电子化的时代,依旧不失其价值。要我说,这不叫过时,这叫 Old School,相比而言,反而与初衷一本自己的笔记本更相符。

至于写作上,博文一直以来采用将必要样式语义化的标准 Markdown,使得在富文本的前提下能够以更为基础的文件系统来直接组织文章,避免了 CMS 的黑盒依赖。

三、部署

博客一开始是手动部署在 GitHub Pages 上的,后来手动部署在了 Netlify ,再后来自动部署在了 IPFS,甚至还尝试了 IPFS + ENS,现在走了一圈,又回到了 GitHub Pages,通过一个自己写的 GitHub Actions 自动部署,将来打算部署到自己的服务器上。减少平台,减少流程,减少依赖,减少黑盒,探索黑盒。


其实,简化博客这件事我一直想做,可一直都没做成。因为一直想着,考虑得多了,羁绊也就多了,也就无从下手、力不从心了。而这时,良方就是暂时离开——久久离别后,方如梦初醒。