说明
个人准备建立一个小企业内部的知识库,主要的要求有如下几条:
- 支持Markdown进行编辑
- 简单,易用
- 可以和源码管理工具集成,便于进行知识的版本管理
经过比较和查找,没有发现完美的开源方案,但是找到了一个小而美的东东Raneto,除了第三条无法满足,其它还是不错的,于是进行了一下尝试。
Raneto
Raneto需要node.js上执行,至少4.0.0版本,不需要数据库的支持。
使用
$ git clone https://github.com/gilbitron/Raneto.git
$ cd Raneto
$ npm install
$ npm start
默认的端口为3000,可以在浏览器中访问一下,看一下效果
配置
- 设置自己的文档目录
# 创建自己的文档库目录,这里假设是hutou
$ mkdir hutou
$ cd hutou
# 拷贝配置文件
$ cp ../example/*.js .
$ cp ../example/*.json .
# 创建文档目录
$ mkdir content
# 创建一个演示用的文档
$ cd content
$ touch firtfile.md
$ echo "this is a test" > firtfile.md
- 配置文档目录
修改raneto根目录下的package.json
"scripts": {
"start": "DEBUG=raneto node hutou/server.js",
"start_win": "set DEBUG=raneto&&node hutou/server.js",
},
-
再次启动服务看一下效果
优化配置
目前虽然可以使用,但是不能每次修改文件都到服务器上去操作。所以去配置一下把,首先进入工作目录,修改** config.default.js**配置文件
site_title: '虎头的个人文档库',
locale: 'zh',
这些配置应该可以望文知义
这个配置文件中有用户的配置,可以自己增加用户
credentials : [
{
username : 'admin',
password : 'password'
},
{
username : 'admin2',
password : 'password'
}
],
登录之后可以编辑文档
中文搜索
这个时候的全文检索英文可用,中文是不可用的。调查了一下,有如下的方法可以解决中文搜索的问题
下面的文字摘自网上,验证可行
解决不能搜索中文的BUG
先下载一个lunr.js,链接:https://github.com/codepiano/lunr.js,解压并将文件夹命名为lunr,接下来进入node_modules
目录,找到里面的lunr重命名为lunr2(不建议删除),然后再将刚下载的lunr复制进去。还要改一个地方,进入node_modules/raneto-core/node_modules目录,刚上面那个是一样的,将这里的lunr重命名为lunr2,再将刚下载的lunr复制进去。再次重启,这里重启的时候可能会出现error,原因是node.js少了一些库,仔细看缺了哪些库,然后npm install ****
我验证了一下,应该是缺少nodejieba,在package.json中增加下面的内容
"nodejieba": "^2.0.0"
整合
raneto本身没有插件体系,如果有时间想整合一下资源将知识库的版本管理(依赖与版本管理工具)整合进来