关于知识库,我想要的是什么
心里想的太多了,为什么每次都是在反思自己要做什么,而不是在分享自己做了什么。 不过还是要反思,要不然怎么进步,虽然现在还是在原地打转,但至少在转,而没有停下来。
关于知识的整理,一直是杂乱的,不知道记在什么地方。 其实当年的Gitbook还是挺好的一个工具,在一个git仓库里,只有纯粹的内容文件,没有杂七杂八的支持文件,比如package.json,node_modules等等这些,只需要一个命令就可以进行构建,预览等等,cli是按装到global目录下的;而且还提供了GUI的编辑器,类似现在的Typora吧。当然也有一些不足的地方,比如首页目录的展示也是markdown文件,配置起来有些乏力。
我想做的是可以是基于文件系统的数据库系统,每个文件夹是一个仓库,也是一个数据库,可以便于用git管理,git可以跟踪到文件内容的变更。纯文本文件为什么乏力呢,文件系统只提供了简单的文件名和文件内容两个属性吧,可能还有文件创建修改日期等,仅此而已,日期还会经常改变,复制到另一台电脑上,日期就变成了当前时间。为了弥补这个不足,现在用的这个Docusaurus和hexo等,都是在markdown文件的头部有一些配置项之类的部分,叫做Front-matter?如下所示,这部分当然是放在文件内容中的。
---
title: Hello World
date: 2023/7/13 20:46:25
---
如果用数据库的形式,最简单的方式可能是json/yaml等格式化文本,来保持每个文件的属性,就可以解放正文内容的部分,正文就可以单纯的去写文章了。用这种方式也便于扩展属性,当然它也有自己的不足,比如文档的属性与正文就分离开了,需要去不同的地方编辑,这时就需要一个可视化的编辑器来支持了。就类似,我们使用sql或者可视化IDE来编辑数据库内容一样,底层的数据是如何存储的我们并不关心。
- 基于文件系统的数据库系统,便于用git来管理
- 文件夹是一个仓库,数据库,根目录会有一个文件或文件夹来表明,例如
.git
表明这个文件夹是一个git仓库,package.json
表明这个文件夹是一个npm模块 - 提供工具来管理这个仓库,类似数据库管理系统DBMS,工具同时接口给人来使用
- 可视化工具
想想又复杂了,先从简单的来。