搭建个人知识库(wiki)
一、Wiki是什么
Wiki,概念的发明人是沃德·坎宁安(Ward Cunningham,1949.5.26-),WikiWiki一词来源于夏威夷语的“wee kee wee kee”,原本是“快点快点”(quick)的意思。
本文根据实际使用经验,讨论一种实用的分布式个人知识库(wiki)架构。
二、系统特点
完整的分布式个人知识库包括以下功能:
- 使用文件系统管理文档,无需数据库。
- 使用Git分布式管理档案
- Markdown编辑
- 可以本地编辑与管理Markdown文档
- 可以在线编辑与管理Makedown文档
- ACL权限控制,内外网ACL权限独立管理。
三、架构
四、组件
以下组件可以根据需要选择:
- 本地Markdown编辑器:Typora
- 基于文件系统的在线Wiki系统:DokuWiki
- 云服务器:Linux或者Windows系统
- Git Server:GitStack
下文分别说明各组件。
4.1 本地Markdown编辑器
本地编辑Markdown的编辑器很多,本文推荐Typora。
Typora,完全免费,支持Windows、Linux、OS X主流操作系统,使用操作系统的目录层次结构管理Markdown文档。功能丰富,所见即所得编辑。支持多种格式文档导出、全文搜索等。
4.2 在线Wiki系统
如果希望Wiki发布到网络上,则需要一个在线Wiki管理系统。
本方案推荐使用DokuWiki。相比较于WordPress,优点如下:
- 轻巧,便于部署。
- 直接使用文件系统管理Markdown文档,无需数据库。
- 插件、主题足够使用。
Typora与DokuWiki很好地结合使用,使用同一套Markdown数据,前者负责本地Markdown编辑,后者负责前端在线服务(也可以在线编辑Markdown文档)。
4.3 云服务器
4.4 Git Server
五、关键问题
5.1 Typora和DokuWiki融合
虽然两者可以直接结合使用,但是毕竟是两套独立系统,还需要做一些改造,以便更好地融合:
- Typora默认文件后缀是.md,而DokuWiki默认是.txt,可以修改后者源代码,使后者默认支持.md文件扩展名。
- DokuWiki默认使用自己独特的Markdown格式,与标准Markdown格式有很大差异,可以通过安装Markdowku插件解决。
- 将Typora的默认文件夹设置成DokuWiki的数据目录,以达到Typora编辑DokuWiki文档的目的。
5.2 权限控制
在特定网络环境下,例如外网,我们希望控制用户访问Wiki的权限。DokuWiki的ACL(访问控制列表),可以达到按用户设定Wiki访问权限的目的。
5.3 分布式
为了解决Wiki数据分布式共享,建议使用git管理Wiki数据,在云服务器上部署Git Server,这样,我们可以随时随地,异地共享数据。
5.4 内外网分离
在内网和外网分别部署DokuWiki,分别设置ACL权限,可以达到内外网独立管理目的,而Wiki数据来自同一个Git仓库。
六、组件下载官网
打赏作者以资鼓励: