打造知识体系的好工具,Doukuwiki简单教程

老规矩,本篇文章依然不是广告,而是我经过近一年来对wiki程序的试用心得——个人知识管理系统,还是Doukuwiki最理想。

对于科研工作者/技术人员来讲,是否建立了知识体系基本上可以决定其技术“段位”,其重要性不言而喻。这个事儿也是最难的,多年前我和一位业界大佬聊天,提出希望能在读博期间建立起基本的知识体系。结果大佬直接给了一个呵呵,“你想多了,能毕业就行了”。多年后的今天,竟一语成谶(掩面而泣中)。

还是有点不甘心,我仔细考虑了在建立知识系统之路上的各种障碍,主要有三:

第一,研究生学习阶段的“基于项目学习法”。一个项目能印出来的科学问题及其解决方法是有限的,同时硕博研究生在攻读学位期间接触的项目数量也是很有限的,且大多具有同质性。优点是可以在局部小问题上有所突破,缺点是全局观不足;

第二,文献阅读量不足。对于自己专精的领域,阅读一篇文献的时间应该不会很长,因为只需要摘取其中几个idea就够了。而对于自己不很擅长的领域,很少有人能做到去泛读,这毕竟要花费时间嘛。但在如今跨学科跨领域的“交叉创新”大行其道的背景下,应该也多用一些时间去阅读。多看几场博士论文答辩就发现,总有一些大佬是各种研究方向都懂的,真是不服不行。

第三,知识的遗忘太快。尤其对于独立的知识点,比如某个小项目小课题,完成一段时间以后,甚至连之前自己写的一些代码含义都得看一阵才能想起来。遗忘是学习的伴侣,始终如影随形,只有通过成体系地理解掌握才可以部分克服。

此外,知识是“死”的,知识对于我们只有知道不知道、掌握不掌握等两类状态。学习的过程主要目的是获得能力和经验,增加对知识点组合利用效率和水平。因此对于“知识”,我想没必要多耗费精力去记忆,完全可以将其“外包”给数字化工具,比如一个知识库。

这就涉及到知识管理软件,多年来我试用过多种软件:

  • 笔记软件类,代表性的软件有印象笔记、有道云笔记、OneNote等。这类软件多提供云空间,可支持手机、PC等多终端访问,而且通过如一键收藏等功能进行知识的存储非常方便。但主要问题是太容易存储,查找和读取只能通过搜索。知识点之间的联系少,当存储的内容很多时,实现精准搜索不太容易。而且过于便捷的存储,容易造成“只收藏不阅读”的情况;
  • 博客类网络软件,代表性的如CSDN社区等。大量计算机专业人士喜欢用博客来作技术文档,是因为博客写作很方便、自由,分享的代码既可以作为日后工作的基础又可以对自己专业水平的宣传,同时在博客平台通过超链接引用其他网络资源非常方便。此外还有一个重要的理由,就是“费曼学习法”,写过博客的人都会懂,感兴趣的朋友可以百度一下;
  • 百科类软件,代表性的如Mediawiki、Dokuwiki等。Wiki软件很特殊,它事实上兼顾了笔记类软禁和博客类软件的优点,既能像X笔记那样录入单条知识点,又可以像博客那样充分利用网络资源,在此基础上还具有强大的内链功能和对文档局部内容直接编辑的功能——这两个wiki软件的特质使其具备成为强大的知识管理系统的潜力

我开个脑洞,想了一下wiki软件在科研领域的几个应用场景:

  1. 知识网络建立。在输入知识点的时候无需多想,先写下来,后续一旦产生了两个知识点之间相关联的灵感,可通过搜索和内链方便地快速建立联系,就像给一个网络中的不同节点之间建立关联这么方便;
  2. 多人在线协同写paper。各合作作者之间分工协作,有负责编程的,有负责组织文献的,有负责语言撰写的,有负责关键技术的……大家可以在同一个在线目录下各自同步进行编辑撰写,提高效率;
  3. 课题组建立知识技术库。在一个课题组内,成员之间的研究领域有时略有差异,知识库就可以最大限度地保存技术文档,利于上下级研究生之间的知识与课题衔接,避免重复造轮子。

在过去的近一年中,我对常见的wiki程序进行了广泛的考察,包括国内的HDwiki,国外的TiddlyWiki,WikiPad,以及一些单文件wiki程序等,得出的结论是:功能最强大的是Mediawiki,易用性最强的是Dokuwiki。之所以不推荐Mediawiki是因为其配置和运维很麻烦,对于国内非计算机工科背景的课题组而言,费较大精力配置服务器和wiki程序并保证其稳定运行不是很必要。

Dokuwiki是基于txt文本文档的wiki程序,不需要数据库,既可以架设服务器进行外网访问,也可以在局域网中用一台电脑搭建服务以供其他电脑访问,还可以支持本地运行。只需要对page文件夹下的txt文档进行复制粘贴就可以进行数据内容的备份、分享,不需要MySQL等数据库软件就是这么方便。

下面我就利用本地版Dokuwiki来介绍一下基本操作流程:

Dokuwiki单机版的安装流程

下载程序,访问DokuWiki的官方网站 https://www.dokuwiki.org

点击左上角Download,进入下载页面:

在下载页面中,可对下载内容进行配置,包括选择软件版本,包含的语言(中文在列表的最后),流行的插件(插件在安装之后还可以再安装)等。对于单机版,重要的是要勾选MicroApache选项:

下载完成后,解压缩,可见两个文件夹。其中dokuwiki是网站程序文件,server是本地php服务程序文件。每次在启动时,需要双击run.cmd,弹出Apache HTTP Server的防火墙通知,点击“允许访问”:

在原run.cmd窗口中,不需要输入内容,当要退出php本地服务时,在此窗口按任意键就可以了。

如果一切顺利的话,浏览器会自动弹出并显示安装界面。如果没有自动弹出,可以打开浏览器,输入http://localhost:8800访问,初次访问时也会直接跳转到安装界面。注意在安装界面的右上角可以切换语言为中文。

 

在填写完毕上述基本信息之后,完成安装,刷新页面后就见到了首页:

注意主页面区域右侧的这几个按钮,分别是编辑页面、查看修订记录、反向链接和回到顶部。

其中,编辑页面是对当前页面整体进行编辑;修订记录里可以对当前页面中的修改历史进行查看和溯源,这对于多用户协同操作时出现误操作后的“回滚”很有用;反向链接是指向当前页面的“站内链接”,这对于确认当前页面(知识点)在整站(知识体系)中的位置很有帮助。

下面介绍几个重要问题,首先是如何新建一个页面。与传统的网站内容管理系统不同,wiki站点内没有“新建文章”这一说法。只需要在搜索框输入需要检索的内容,如我输入“添加一个知识点”之后,搜索结果是“没有找到‘添加一个知识点’这个页面,需要新建一个么?”

点击下图中的红色部分(在dokuwiki中,绿色为有效内部链接,红色为无效内部链接)

这样就可以创建一个名为“添加一个知识点”的页面了,在这个空白页面的编辑区内,可以输入相关的内容。

再需要注意的是,这个编辑区是纯文本的,不支持复制粘贴word文档这种懒人操作。编辑区可以进行的操作,在其上部的按钮区中都有相应的说明,点击按钮之后就会有相应的格式化提示,例如:

====== 添加一个知识点(这是标题) ======
**这是加粗** //这是斜体//
===== 二级标题 =====

===== 二级标题 =====

==== 三级标题 ====

[[https://10kn.com|添加一个外部链接]]

==== 三级标题 ====

* 列表项目1
* 列表项目2
* 列表项目3

点击“保存”,就可以看到格式化后的文档:

一定要善用标题,一方面对于较长的文档而言,右上角自动生成的层级目录可以将文档很好地结构化,便于浏览;另一方面,注意到每级标题中右下角的“编辑”按钮了吧,很多时候我们只需要对一篇文档中的局部进行编辑,分级之后编辑起来非常方便。

创建目录(命名空间)

利用wiki建立成体系的知识系统,不仅需要单页面来描述的知识点,更需要用一些文件夹对知识点进行分类整理,在dokuwiki里这个概念称为“命名空间”。

创建一个新的命名空间很简单,创建页面的默认路径是在根目录下(对应dokuwiki程序文件夹的data>pages目录),如果想要在一个新分类下创建一条知识点,只需要在搜索框中输入一条带有冒号:(必须为英文输入法的冒号)即可,如

创建后的页面结构见左侧侧边栏:

一些常用的插件

Dokuwiki的一大优势是有丰富的插件库,基本上能想到的功能都可以通过现有插件实现。而且即便是单机版,仍然可以通过在线搜索的方式安装插件,非常便利。

在任意页面的右上角,点击“管理”链接,进入管理界面:

在管理界面中,常用的是插件管理、用户及其访问编辑权限管理和全站配置管理。这里主要介绍插件管理,点击“扩展管理器”后,可见当前已安装的插件列表。

侧边栏插件

虽然wiki程序的优点是创建页面很容易,但现在的页面结构只能看到当前页面,之前输入了什么全得靠站内搜索。而简单导航插件(Simplenavi)会给页面增加一个侧边栏,并在其中展示出站内全部页面和目录结构,使用户对全站内容有全面了解。

添加插件很简单,在扩展管理器中,点击“搜索和安装”选项卡,按插件名称进行搜索后安装:

安装插件后,新建一个名为sidebar的页面,并在页面中输入代码{{simplenave>}}

点击保存后,即可见到效果:

参考文献插件

本文主要介绍dokuwiki在学术领域中的应用,那么参考文献管理插件自然必不可少,先来看一下安装后的效果:

格式上还是可以满足基本要求的,唯一缺点是当对某篇文献有多次引用时,文献列表会生成多个相同的项目。毕竟这不是Endnote嘛,也可以理解了。

安装插件,需在扩展管理器中搜索“RefNotes”,下载安装后,在需要添加文献的位置用“[(文献信息)]”格式标识文献即可,如上面的例子,格式就是:

公式编辑器

如果有较多的公式编辑需求,可以安装公式编辑器插件(Math Plugin),在扩展管理器内搜索Math即可。安装后可通过<m></m>标签识别公式区域,公式按照LaTeX格式编写,举个例子:

<m>S(f)(t)=a_{0}+sum{n=1}{+infty}{a_{n} cos(n omega t)+b_{n} sin(n omega t)}</m>

显示为:

优点是可节约站内空间,公式更新方便,但缺点也挺明显:输入过程不直观且当页面中公式较多时网页响应速度变慢,当公式中有过多分式时显示效果不理想。这就需要根据个人喜好进行选择了,我多数情况下会直接使用上传图片的方式。

PDF在线阅读插件

此插件的名称为PDF.js,功能是提供PDF文档的上传管理和在线阅读功能,例如:

这可以用来组建一个文献文档系统,不过载入速度实在是不算快,而且对网络环境要求较高,在内部局域网环境倒是可以尝试。

基本上暂时能想到的就是以上这些了,欢迎留言交流,有后续补充的话再随时添加。

长河

在曾经的博客时代,是“首个桥隧工程领域独立博主”,目前是一名默默耕耘的普通高校教师。一家之言,仅供参考,未必成熟、绝不权威。

相关推荐

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。