跳转至

为什么你需要一个知识库

从 2015 年起,我开始尝试搭建个人网站。时至今日,在经历了各种平台的变迁之后,我在 Power's Wiki 上搭建了个人知识库,在此记录与分享知识。接下来,我将围绕本文主题展开详细阐述。

为什么你需要一个知识库?

知识需要归档沉淀。我们平时学习积累的知识,如果不及时进行整理归纳,很快就会忘记。合理的分类归档,既有利于日后检索与参考,又能避免在同一个地方踩坑。

用输出倒逼输入。若想快速掌握一门知识,最好的方法,就是用自己的话复述给别人听。如果你把能知识清晰地描述出来,那么你才算掌握它。有了持续的输出,当你不能清晰地描述知识时,就会通过主动学习来补充。从另一个方面来讲,这也促进了我们不断去进行阅读和输入。

赛博空间的桃源。在这一片自留地上,你可以避开主流互联网上的纷争(特指某些乌烟瘴气的言论)。我常把个人知识库当作世外桃源一样的存在,这是一个可以静下心来耕耘的地方。

为什么知识库要公开?

更加精致化的输出和整理。如果选择知识库不公开,那么要求就变低了。我们对知识的归纳整理,可能会慢慢变得随意,不会很注重规范和可阅读性。久而久之,知识库会慢慢变成草稿箱,甚至可能看不懂自己先前写了些什么。

分享让思想碰撞。知识需要分享,在碰撞中可能出现新的火花。当别人遇到一样的问题时,也可以直接发自己写过的教程,这样既方便又酷。

提升个人品牌,遇见志同道合的人。持续维护一个知识库,你会收获志同道合的读者和朋友。也许他们也对摄影、编程、搞电路、造机器人、读书等等感兴趣,也在经营着一个知识库或博客。另外,把知识库链接挂在各种社交平台首页或简历上,是绝对是可以展现个人实力的。

为什么选择自建知识库?

自建知识库的相对面,是在第三方平台上写作。第三方平台,指的是语雀、知乎、简书、公众号、CSDN 这一类平台。在这一类平台上,你不用去管底层是如何构建、基础功能怎么实现、文章图片如何存放、如何部署站点更新文章、如何去做 SEO 等等,你只需要写下文字,剩下的全部由平台帮你实现。简而言之,可以傻瓜式地写作,且平台附加巨大的流量。既然如此方便,为什么我们还是提倡自建知识库呢?

首先,是 数据安全 问题。你在第三方平台上留下的文字,所有权并不归属与你。

互联网发展到现今这个阶段,大多数平台都在筑墙。他们会接受数据导入,但你若想批量迁出数据,他们会设置障碍。另外,很多平台会阻止外链,其本意是留住用户、阻止流量流向别的平台,但这非常不利于知识的交流和碰撞。

特别提及微信公众号,截至目前,发出去的文章最多也只能删改 20 个字符。而我们都知道,很多知识并不是一成不变的,是要不断更新的,这就很不利于知识的迭代更新。

将数据完全托付给平台,是非常不保险的行为。当你的文章内出现了相对敏感的内容,或是对平台的负面言论,他们常用的手段是封禁和要求删改。假若平台的服务器遭受黑客攻击,或者平台某天倒闭了,他们也没有义务恢复并归还你的数据。说到底,托付给平台,你对自己的数据没有完全掌控的权利。

其次,是 可定制性 的问题。你选择了平台,就必须接受它的样式和 UI,有时候还得忍受文章边角的各种牛皮藓广告。相比之下,自建平台,UI 可完全自定义。清爽简洁的版面,对阅读体验的提升无疑是巨大的。

说到底,第三方与自建的关系,就像租房子与买房子的关系。选择租房子,你可以付出更少,入住更方便,可以在有限制的自由里装饰你租来的屋子。但是你所拥有的,是使用权而不是所有权;而买来的房子,你可以随意更换装修风格,可以随意在房间里堆放你想要的东西,你对其拥有所有权。

为什么要知识库而不是文章流?

文章流指的是博客、公众号及大部分平台的形式,即主要以时间线来归档文章。相对地,知识库(Wiki)的形式,主要是以类别来收纳文章,就像是在翻阅一本档案,更利于检索和分类阅读。

为什么要知识库而不是文章流呢?首先,一些琐碎但不可或缺的知识,并不适合单独成文、长篇大论。如果是以文章流的形式,其权重和其他文章是相同的,这样会冲淡整个站点的文章纯度。但是,体系化的文章,又是从这些零散的知识生长而来的。相对而言,以知识库的形式作为载体,以类别形式来做区分,就很合适了。

另一方面,我之前在 卡片式写作 这篇文章中曾经提及,每一份的基础知识,相当于一张小卡片,一层一层往上抽象,不同的顶层文章可以调用相同的底层卡片,既提高知识的复用率,也减少做重复的无用功。

工具的选择

至于知识库的选型,个人看重的主要是以下几点:

  • 基础功能:侧边栏可显示文章标题及其归属类别,主版面显示文章内容,内容支持 Markdown 语法,内容与框架相互独立。
  • 搜索功能:搜索功能是类别归档的补充,有时候以大类别查找一个特定的知识点并不方便,但有了全站搜索就能直接传送到点。
  • 项目开源:知识库的平台一定要是开源的,因为闭源的项目,可能会因维护者个人或团队的原因停止更新或支持,遇到 bug 也未能及时处理解决(此处特指 GitBook 和 Bitcron)。
  • 静态网站:静态网站能托管在 GitHub Pages 等平台,无需单独购买服务器,一方面省钱易维护,另一方面也对 SEO 友好。
  • 应易于搭建,便于部署与更新:知识库的架设不应该花过多的时间,内容更新的流程也不应过于复杂。
  • UI 简洁美观:为了阅读体验,版面 UI 应尽量保持清爽美观,且最好有夜间模式。

自建知识库的局限性

当我看到他人对某个平台只有赞美,没有批评;对该平台的某些问题只字不提,选择性失明,过分赞美某些长处;所有的赞美都是热血澎湃,丧失理性…… 我便提高警惕,强迫自己不被带动情绪,理性看待这个平台的一切东西。

我不希望大家只了解自建知识库的优点,需要说明的是,自建知识库有一定的局限性。只有充分了解其利与弊,才能根据自己的目的去做出选择。

流量问题。依靠第三方平台,你产出的内容更容易被大家读到,也更容易被展示在搜索引擎结果的前十之内。相对来说,自建平台一般很大的流量,也就意味着没什么读者。不过,我们可以使用一文多发的方法来解决这个问题,简而言之,就是基于知识库,使用 Artipub 等工具,将内容同步发至各第三方平台,将流量引导至个人知识库。

自建知识库有一定的技术门槛。对于没有接触过 Jamstack(JavaScript,API & Markup)理念及其相关技术链的读者而言,可能需要经过一定的学习。这个问题我会在 个人知识库的搭建 - 基于 Docusaurus 这篇文章中逐一进行讲解。

静态网站无在线编辑器。换句话说,如果选择了静态网站,那么编辑器和网站本身是分离的,无法像知乎那样在其网页或 App 上直接编辑内容并发布。你需要一个本地的编辑器,例如 VS Code 或 Typora. 不过解决方法也是有的,可以跳转文章 如何在 iPad 上运行 VS Code

知识点同时隶属与多个类别。一般来说,知识库仅以类别收录文章,为了避免冗杂,单篇文章仅可属于于一个类别。但举个例子,如何设计一款单片机的最小系统 这篇文章,既属于 电路设计 一类,又属于 STM32 一类,那该如何收录?我的解决方法是根据文章的内容,收录于相关程度更高的类别。之所以不采用标签系统,是因为标签容易泛滥,泛滥之后检索起来不如类别分类加搜索功能方便。

我都用过哪些平台?

  • WordPress:使用方便但底层过于庞大复杂,需要使用数据库,不利于迁出。
  • Hexo:较为冗杂,且没有比较好看的 Wiki 主题。
  • GitBook:CLI 版本已停止更新支持,V2 版本国内访问速度较慢。
  • Jekyll:技术相对较旧且缺少更新支持。
  • GitHub Issues/Gist/Wiki:国内访问速度较慢,UI 不可定制。
  • Bitcron:托管动态网站,可定制性较差,访问速度时快时慢。
  • DokuWiki:需自备服务器,且其本身过于老旧。
  • Gridea:部署简单,但可定制性较差,只能用其专用编辑器。
  • wiki.js:需自备服务器搭建,一般适用于团队知识库,存在部分小问题。
  • 语雀:相对还不错的第三方知识库平台,缺点是 UI 不可定制,且数据迁出不方便。
  • Hugo:部署速度快,但没有比较好看的 Wiki 主题。
  • Gatsby:与 Hugo 相似。
  • Ghost:动态网站,UI 美观,需要自备服务器(或花钱买服务),可定制性较差。
  • docsify:比较推荐。部署简易,UI 美观,但因为其加载时渲染的特性,在某些设备上运行性能较差。
  • Docute:比较推荐。部署简易,UI 美观,也是加载时渲染内容,相比 docsify 少了很多插件。
  • VuePress:比较推荐。各方面相对都很不错,社区插件多,局限性是官方文档较乱,有些微小的 bug。
  • Docusaurus:比较推荐。各方面相对都不错,局限性是编译较慢,框架比较臃肿。
  • MkDocs(配合 Material 主题):比较推荐。各方面相对都很不错,编译也相对快,我的网站现在使用的方案。

之前我也写过一些关于自建博客和知识库的文章,有兴趣可以参考一下:

总结

临渊羡鱼,不如退而结网。在下一篇文章 个人知识库的搭建 - 基于 Docusaurus 中,我将对如何自建知识库展开详细讲解。

参考与致谢

原文地址:https://wiki-power.com/
本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。