将博客改造成数字花园

这个网站作为博客存在超过十年,期间每隔几年都会进行“质量过滤”——随着内容品质的逐步提升,删除掉那些不再符合我要求的内容。

这次的“质量过滤”是迄今为止最严格,因此也是变化最大的一次——整个网站都被重新编写了——博客这一形式与我而言已经没有意义。

当我以新的标准去回顾我的创作时,我发现它们大多都无法满足我对可维护性的苛刻要求。如果文章是不可维护的,那么文章的价值会随着时间流失,最终变得没有价值,甚至成为一种债务——事实上没有人需要它,但作者又不舍得删除它。相对的,如果文章是可维护的,那么作者就能通过更新文章来保持它的长期价值。虽然将低可维护性的内容提升为高可维护性的内容是可能的,但这是不划算的,所以我只好让它们消失,这是大多数文章被删除的原因。

文章的可维护性

从文章的可维护性这一概念中可以进一步引申出这些关键因素:题材,篇幅,结构和模式。题材,篇幅和结构决定了内容的可维护性,模式决定了维护是否会发生。

题材

题材对可维护性起决定性影响,因为一些题材显然比其他题材更容易随时间失去价值。

容易变得过时和无效的题材所包含的信息本质上更像是对其关联事物的一种端到端测试。信息与具体事物之间的关联性往往十分脆弱:测试要么不完善,要么很难适应变化,要么成本高昂。因此即使是信息的创作者也很难验证和维持它的有效性,甚至信息可能一开始就是错的。

篇幅

有可维护性的文章应该尽可能精简。

我在写长文章方面还算有能力,在博客时代的末期,已经能够撰写单篇超过2万字的文章。然而,这些文章在完稿后都是不可维护的,因为我维护不了连自己都要花十几分钟才能读完的东西。

结构

维持良好的文章结构很难,因为文章本质上是树形结构,树形结构在处理分类问题时很不堪用。

实践中经常会遇到一节内容的主题与其他节交叉的情况,删去交叉的部分又会严重损害这一节的主题,其结果多半是将节与节之间的差异改得越来越模糊。当文章结构变得可有可无时,文章中每处内容实际上都是在以整篇文章作为上下文,每处内容都与文章中的其他部分耦合。这样的文章,任何修改都可能破坏掉整个文章的结构,进而要求编辑者重新阅读整篇文章来做出对应的改变,可维护性当然会很低下。

我最终发现,如果需要维持良好的文章结构,就不得不停止照顾读者的感受。对读者妥协越多,结构就越差,反之,结构就越好。参考手册往往是很难读的东西,读到一半时,可能会需要跳转到其他部分,以获取必要的前置知识,但参考手册的结构通常都组织得不错。在我看来,良好的文章结构的优先级要高于文章的可读性,因为前者对可维护性更重要。

模式

模式代表着“形式”,“框架”,或者“习惯”。不那么容易觉察,但对维护很重要。

不鼓励可维护性的模式

人们很难意识到自己对文章的理解实际上是路径依赖的产物:在大多数人的潜意识中,文章是一种一经发布就很难再修改的东西,因此发表正式的文章应该经过严谨的校对;即使文章是可以事后修改的,也不应该修改它的结构,因为这会导致它变成别的文章。

上述认识显然是从印刷品时代,乃至更早的时代流传下来的,既然如此,这种内容创作模式是否仍然适用于数字时代?我认为答案是否定的。

数字时代足够失控,这个时代一天产出的垃圾信息比人类进入数字时代以前的信息的总和还要多。在这个时代,文章的可维护性会在作者按下“发布”按钮之后很快“消失”,因为信息是以从新到旧的顺序显示的,旧信息的展示空间会很快会被新的信息挤占。人们之所以能接受这种现象,是因为我们有天文数字级别的空间来存储这些垃圾信息,尽管这些信息在未来被机器以外的读者见到的机会渺茫,但那些已经从视线里消失,被打入冷宫的信息可以在不触发人类的损失厌恶的情况下持续存在着。

在这种内容创作模式下,即使文章是可维护的,也不会得到有效维护,因为缺乏维护的文章的存在很容易被忽视,不会成为亟需解决的障碍。要打破这种模式,就得反其道而行,抛弃博客转向数字花园。

文章是展示内容最合适的选择吗?

不难发现,很多坚持写了多年博客的博主其实并不是在写文章,而是在以写文章的形式写笔记。博客文章是写笔记和公开笔记的最佳方式吗?我不这么认为:

  • 我虽然公开笔记,但不将它们算作“文章”。

  • 我公开的笔记是以大纲视图展示的。

  • 我不认为Markdown是一种适合用来做笔记的格式——我的笔记是在Emacs里编写的Org-Mode文档。

然而,对大多数博客主来说,即使他们对以写文章的形式写笔记这件事持像我一样的反对意见,他们也难以做到我在这个网站上做到的事:

  1. 1.

    他们使用的博客程序是面向文章设计的,因此无法以符合要求的形式展示内容,即使可以,也很别扭。

  2. 2.

    不是每个人都知道Org-Mode这种大纲文档格式,也不是每个人都会使用Emacs。

  3. 3.

    不是每个人都能将Org-Mode文档渲染成大纲视图。

虽然以上3个项目的难度对不同的人来说会有很大差别,但第1项对任何使用博客程序的人来说都会是瓶颈,它不仅对“笔记”来说是瓶颈,对任何其他内容展示形式来说都是。这也是必须抛弃博客转向数字花园的原因之一。

从博客到数字花园

数字花园并不是新概念,它只是互联网早期阶段被称为个人主页的网站类型在这个时代的复兴。数字花园的重点在于重新审视内容创作的流程,将创作比喻为园艺,从而解开来自博客时代的桎梏。

作为一种与博客相对的模式,标榜自己是数字花园的网站往往具有以下一个或多个与博客截然不同的特征,其中蕴涵的很多理念都与我对可维护性的要求不谋而合:

  • 文章的排列排序是任意的,文章可能不显示发表和更新日期。

  • 文章没有“草稿”和“已发布”的分别,只通过“内容的成熟度”来描述文章的完善程度。

  • 创建新内容不重要,对已有内容的“修剪”和“浇灌”才是重心。

  • 不对文章列表分页。

在数字花园的基础上改进

日期不重要

对有可维护性的文章而言,文章的发布日期和更新日期都不重要,因为它应该是长期有效的,思考不应因时间而褪色,读者也不需要理解文章的写作背景。根据极简主义的观点,既然它并非必要,就应该舍弃。

分类和标签引发混乱

使用分类和标签管理过大量非结构化文档的人会注意到,这两项技术经常引入新的问题。无论是创建足够健壮的分类方式,还是管理大量标签,做起来都相当困难,并且在新的数据出现时,很容易再次陷入失控。

我在分类和标签方面从未有过好的经历,所以在将博客改造成数字花园后,我决定停止使用它们。这要求我将内容的规模维持在不需要分类和标签就足以管理的程度。

评论框不是必需品

评论框作为一种模式,虽然方便用户发表自己的想法,但也变相鼓励了低价值信息的传播,过滤掉这些低价值信息的最好方法,就是彻底关闭这个功能。评论框对这个网站来说曾经是有意义的,但那个时代已经过去,如今能被我视作有价值的论点已经非常鲜见了,我不想假装自己还在意互联网上随机出现的路人发表的内容。

过去的经历使我意识到缺乏评论框不会阻碍那些真正想要交流的人:如果真的有必要,即使在没有评论框的情况下,这些人也能通过各种方式向我发送信息,这本身是非常奇妙的。我相信那些肯付出更多努力去传达信息的人,所传达的信息相比之下会更有价值。因此我能够心安理得地将没有评论框这件事,作为用户生成内容的过滤器来使用。

CC协议没有现实意义

以经济学的视角看待版权,会发现那些防君子不防小人的规则都没有意义,因为惩罚小人的成本多半会高到不值得实行。由于这些额外规则的存在,反而可能把事情搞复杂,在法律执行时引入更多争议。

此网站过去使用的CC协议就是这种防君子不防小人的规则的典型代表。实际情况是,极少有人理解和遵守CC协议,重视著作权的人会直接找到我请求授权,不重视著作权的人会进行不规范转载。考虑到互联网上存在一种叫做超链接的东西,全文转载的形式是否真的有必要,也使我怀疑:尤其是在大多数网站并不具有匹敌此网站的内容展示能力的时候,转载只会劣化我的内容。在将文章变成可维护的文章后,文章内容随时可能出现变更,我不希望有人对文章进行转载之后,又无法跟进新的更改。

我找不到继续使用CC协议的理由,重做整个站点,正好是停止使用它的时机。

退出其他平台

同时使用和维护多个内容发布平台效率低下,且并非每个内容发布平台都有能力显示足够复杂的内容。一个很好的例子就是微信公众号,将内容同步到这些平台上相当费力,加上在中国运营的互联网服务普遍存在的特色风险,我决定退出这类平台。

数字极简主义思潮让我意识到大多数互联网服务都没有继续被使用的价值,所以我进一步将内容缩减到几个足够常用的平台上。如果在站外看到本网站上的内容,它要么是授权转载,要么是非法转载,不再有我自己在其他平台上发布的情况。

内容成熟度

数字花园里的内容根据成熟度被分为五个阶段,这是它们的纯文本表示形式:

  • 🌱

  • 🌿

  • 🌲

  • 🌳

  • 🍂

使用emoji表情是为了方便在纯文本编辑器里使用,即使在不同的平台上,这几个表情也很少有歧义。每个阶段的图案所代表的含义很大程度上是不言自明的,仅凭直觉就能理解它们的含义。

内容并不总是按照“内容成熟度”的先后顺序发展的,例如一些内容可能永远也不会到达🍂阶段,而一些处于🍂阶段的内容可能被重整回🌱或🌿。

内容成熟度也并非是“草稿”与“已发布”状态的替代品,将它们视作内容潜在的改善余地会更合适。

在实际使用时,直接显示emoji表情可能会破坏掉界面的美感,这时我会将它们转换成对应的颜色来使用。

在一个页面里列出所有条目

将条目在一个页面里列出很有意义:分页和其他的行为会导致条目被隐藏,一旦条目被隐藏,它就不会得到足够多的关注,进而无法得到维护。

个人知识管理的公开方案

在博客时代,我摸索过个人知识管理系统和将它的内容公开的方案,但最终并没有得出一个令人满意的结果。在停止更新网站的这段时间里,我从Zettelkasten等方法论中取经,总结出了一个新的方案。这个方案虽不完美,但已经是不自己开发编辑器的前提下能够达到的最优解,并且能够和数字花园融合起来。于是你现在可以在网站的首页上看到“笔记”一节,每个条目都是以大纲视图呈现的Org-Mode格式的笔记内容。

有了这个方案之后,我就可以尽可能避免写涉及技术细节的文章——它们是最缺乏可维护性的那类题材。相反,技术细节很适合写成笔记,因为笔记对文本完成度的要求比文章低得多:写笔记时,我不需要在意文体和结构,不需要斟酌用词,一切都是以方便使用和理解为目标编写的。笔记能随着使用而逐步更新完善,也可以轻易舍弃。

一切都是纯文本

这个数字花园建立在纯文本的基础上,一切都是由纯文本文件控制的,没有所谓的网站后台。纯文本的好处不胜枚举,但最重要的是我可以用我习惯的编辑器——我可受不了在没有Vim模式的情况下编写大段文本内容。

保存即发布

由于数字花园的内容只是纯文本文件,因此也不会有发布按钮。在我本地编辑完以后,包括静态文件在内,都会被自动同步到服务器上,待页面缓存过期,新内容就会显示,一切都在不知不觉间完成。这种发布方式本身并不新鲜,在很多年前就已经存在了,但并没有真正广泛流行过。

在技术上实现这种“不知不觉”的用户体验,其实比预想的要麻烦很多,难点包括但不限于:

  • 文件的同步不是快照式的,对程序而言缺乏事务性,逻辑很复杂。

  • 需要由服务器承载的职责更多,例如:

    • 需要动态生成用于标题的中文Web字体。

    • 需要对文章使用到的图片进行编码转换和缩放处理。

    • 需要服务器能够自动移除已经不再使用的静态资源。

虽然在实施过程中遇到了很多复杂的设计决策,但最后还是完成了。