公司内部使用wiki 一般是偏重量点的 confluence 或 mediawiki,但显然个人使用的话,没必要使用这么相对重的产品,个人需的wiki 我感觉满足以下功能即可。

1、支持树型导航;
2、支持markdown语法;
3、支持静态页面生成;
4、可以检索;
5、无需数据库

可选的产品很多:mdwiki、wikitten、gitbook、vimwiki、dokuwiki、tiddlywiki、amWiki 等。对于测试后,发现wikitten不错,基本满足以上功能,不过其检索有点弱,只支持标题检索 。

一、wikitten安装

直接去 wikitten 页面下载代码,解压到相应的数据目录下。在nignx 上进行如下配置即可:

 1server {
 2    listen 80;
 3    server_name wiki.361way.com;
 4    index index.html index.htm index.php default.html default.htm default.php;
 5    root /wikitten;
 6    location ~* ^/static/(css|js|img|fonts)/.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt|swf|pdf|txt|bmp|eot|svg|ttf|woff|woff2)$ {
 7        access_log off;
 8        expires max;
 9    }
10    location / {
11        rewrite ^(.*)$ /index.php last;
12    }
13    location ~ /index.php$ {
14        try_files $uri =404;
15        #fastcgi_pass  unix:/tmp/php-cgi.sock;
16        fastcgi_pass  127.0.0.1:9001;
17        include fastcgi.conf;
18    }
19}

重新加载nginx服务即可。

二、wikitten配置文件

到站点的根目录下复制config.php.example 为 config.php其中有如下几项:

1define('APP_NAME', 'My Wiki'); - 站点标题
2define('DEFAULT_FILE', 'index.md'); - 默认主页文件, must be located in library folder
3define('LIBRARY', '/path/to/wiki/library'); - 数据文件所在目录
4define('ENABLE_EDITING', true); - 是否可以直接查看md源码
5define('USE_PAGE_METADATA', true); - Enable the JSON Front Matter (meta data), see below for more details
6define('USE_DARK_THEME', true); - 使用黑色主题
7define('USE_WIKITTEN_LOGO', false); - 不使用官方logo

上面的信息都比较好理解,其中USE_PAGE_METADATA这项有点特别。这里单独说明下,该选项启用后,并不会在每个页面下有一个tag可点的标签出现,其只是对SEO有益的一个配置。启用后,可以在每个页面开头加上如下内容,如下:

1# cat test.md
2---
3"title": "测试首页",
4"tags": ["my", "custom", "tags"],
5"description": "测试页描述",
6"author": "yangbk"
7---

注:上面这部分是以三个小横线包含内容的,建议修改为三个反斜杠,因为有些md 程序里是不识别三个横线这种用法的。

这时候查看网页源代码会发现如下内容:

wikitten
wikitten

三、其他

views、static、plugins这几个目录就不用单独说了吧,看名称就知道啥意思,如果想对程序进行功能扩展、或者修改其显示样式,应该知道从哪里改了吧?由于其默认css调用的bootstrap.min.css 主题,我就参照segmentfault的markdown显示,修改了该文件的部分内容。

wiki之间的对比,可以参考:https://www.v2ex.com

整合Wikitten和MDwiki搭建个人知识库,可以参考:https://blog.361way.com/integration-wikitten-mdwiki/5634.html (原页面原于无法打开,从搜索引擎镜像了一份过来)

使用lunr.js为Wiki系统增加全文搜索支持,可以参考:https://blog.361way.com/lunrjs-wiki-search/5636.html(原页面原于无法打开,从搜索引擎镜像了一份过来)