一、Wiki是什么

Wiki,概念的发明人是沃德·坎宁安(Ward Cunningham,1949.5.26-),WikiWiki一词来源于夏威夷语的“wee kee wee kee”,原本是“快点快点”(quick)的意思。

本文根据实际使用经验,讨论一种实用的分布式个人知识库(wiki)架构。

二、系统特点

完整的分布式个人知识库包括以下功能:

三、架构

img

四、组件

以下组件可以根据需要选择:

下文分别说明各组件。

4.1 本地Markdown编辑器

本地编辑Markdown的编辑器很多,本文推荐Typora。

Typora,完全免费,支持Windows、Linux、OS X主流操作系统,使用操作系统的目录层次结构管理Markdown文档。功能丰富,所见即所得编辑。支持多种格式文档导出、全文搜索等。

img

4.2 在线Wiki系统

如果希望Wiki发布到网络上,则需要一个在线Wiki管理系统。

本方案推荐使用DokuWiki。相比较于WordPress,优点如下:

Typora与DokuWiki很好地结合使用,使用同一套Markdown数据,前者负责本地Markdown编辑,后者负责前端在线服务(也可以在线编辑Markdown文档)。

img

4.3 云服务器

如果需要把Wiki发布到互联网上,那么推荐使用云服务器,数据安全,且可以部署自己的应用,例如,部署上git server等,达到Wiki数据分布式管理目的。

img

4.4 Git Server

如果云服务器选择Windows系统,那么git server建议使用GitStack。GitStack非常小巧,便于部署,提供Web管理界面。

img

五、关键问题

5.1 Typora和DokuWiki融合

虽然两者可以直接结合使用,但是毕竟是两套独立系统,还需要做一些改造,以便更好地融合:

5.2 权限控制

在特定网络环境下,例如外网,我们希望控制用户访问Wiki的权限。DokuWiki的ACL(访问控制列表),可以达到按用户设定Wiki访问权限的目的。

5.3 分布式

为了解决Wiki数据分布式共享,建议使用git管理Wiki数据,在云服务器上部署Git Server,这样,我们可以随时随地,异地共享数据。

5.4 内外网分离

在内网和外网分别部署DokuWiki,分别设置ACL权限,可以达到内外网独立管理目的,而Wiki数据来自同一个Git仓库。

六、组件下载官网