1.Raneto Docs简单说明
a Raneto是一个基于Markdown的开源的node.js知识库平台,它使用Markdown文件来存储知识库,Raneto我们也可以将其称之为”静态网站生成器”,因为它不需要数据库存储数据,所有的内容都是存储在Markdown(.md)文件中,他拥有以下几个特性(官方介绍)
a.1 简单 我们可以使用自己喜欢的文本编辑器来创建和管理一个完整的知识平台。
a.2 Flat Raneto是一个”flat file” CMS,意味着系统没有数据库,没有Mysql查询,没有任何东西。
a.3 Fast Raneto轻量级,不使用数据库,使其访问速度也非常的快速。
b Raneto官网:http://raneto.com/
c 学习文档:http://docs.raneto.com/
d 源码: https://github.com/gilbitron/Raneto
e 那么综上所述,Raneto的用途到底是什么呢?个人觉得它的用途就是给公司或者团队建立一个知识库平台,将(知识,规范(编码规范、操作规范)、技术等等)分享到上面,可以有效的减少沟通时间,当然它也可以用来开发个人网站门户网站等,完全没有开发量,但是优缺点太明显,故而使用否在你的决定范围之内。
f 我们团队大量的用到了这个东西,因为部署简单,团队内部的一些事情也不方便去公司的Wiki上去写(各位懂得),故而我们有大量的使用,故而将它分享给大家,希望大家能够喜欢。
2.准备工作
a 通过上面简单的介绍之后我们已经了解了Raneto到底是干什么的,那么接下来我们就需要在Linux下搭建它并且配置使用它。
b 从上面我们知道Raneto是基于nodejs的,故而在Linux系统下面为了运行Raneto,我们首先需要安装nodejs,接下来在安装Raneto。
c nodejs下载包地址:http://nodejs.cn/download/
d Raneto下载地址:https://github.com/gilbitron/Raneto/releases
e 操作需要的软件以及系统如下:虚拟机(Vmware),虚拟机中安装的Centos系统,Xshell,Xftp,nodejs包,raneto包。
3.Nodejs安装
a 通过上面简单的准备工作之后,现在我们已经拥有了可以安装的包以及发布的环境,如果没有,请参考上面的文章,自行下载准备。
b 因为Raneto是基于nodejs的,所以我们首先需要给linux安装nodejs,那么如何安装呢?请继续向下看
c 使用XShell连接Centos,连接成功后使用命令跳转到local下面创建自己的文件夹kencery,在此文件夹下面创建nodejs文件夹,命令如下:
c.1 (1):cd usr/local/ (2):mkdir kencery (3):cd kencery/ (4):mkdir nodejs (5):cd nodejs/
d 然后使用Xftp将在上面下载的nodejs包复制到nodejs文件夹里面。
e 将上传的node-v6.2.0-linux-x64.tar.gz包解压,解压之后命名为:node,如图所示:
e.1 tar -zxvf node-v6.2.0-linux-x64.tar.gz
e.2 mv node-v6.2.0-linux-x64.tar.gz node
f 编辑文件添加环境变量
f.1 vim /etc/profile
f.2 在文件末添加如下命令并且保存,确认添加无误:
#(/usr/local/kencery/nodejs/node此路径是nodejs的解压的路径)
export NODE_HOME=/usr/local/kencery/nodejs/node
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
f.3 输入如下命令使刚才修改的文件生效 source /etc/profile
g 所有上面的操作完成之后,我们输入如下命令查看nodejs的版本,如果出现版本则说明安装成功,否则则是安装失败,请检查流程
g.1 node -v
4.Raneto安装
a 通过上面简答的准备工作之后,我们已经拥有了可以安装的包和发布的环境并且也安装成功了nodejs,如果上面没有准备充分,请自行准备。
b 使用XShell连接Centos,连接成功后使用命令跳转到local下面创建自己的文件夹kencery,在此文件夹下面创建raneto文件夹,命令如下:
b.1 (1):cd usr/local/ (2):mkdir kencery (3):cd kencery/ (4):mkdir raneto(5):cd raneto/
c 然后使用Xftp将在上面下载的raneto包(Raneto-0.9.0.tar.gz)复制到raneto文件夹里面,并且将包解压,解压之后命名为raneto,如图所示:
c.1 tar -zxvf Raneto-0.9.0.tar.gz
c.2 mv Raneto-0.9.0 raneto
d 解压之后跳转到raneto下执行安装命令,命令如下:
d.1 (1):cd raneto/ (2):npm install(时间不是一般的哦长) (3):npm start
e 如果以上命令执行没有意外,这时候说明你的raneto已经启动了,这时候在安装的本机上已经可以使用http://localhost:3000来访问了,但是如果想在自己的机器上访问,则需要给linux下开放3000端口,并且重启防火墙。
f 安装完成之后使用我本地电脑访问(http://192.168.37.133:3000/),但是当加载完成的时候我们页面是乱的,监控看了一下,发现里面有一个lib文件夹没有,为什么没有呢?(只能说我真的不知道,不过我怀疑是被墙了,所以在执行命令的时候没有下载下来,但是有想源码中下载下来就应该含有呀,但是确实没有),不过不重要,找到这个lib文件夹(themes/default/public/)并且放入到安装的路径下即可。页面乱如图所示:
f.1 lib文件下载地址:http://pan.baidu.com/s/1pK81Gan
g 最后重启Raneto(Ctrl+C关闭),使用命令npm start(如果你希望在后台运行:nohup npm start
,然后你就可以关掉命令行了。当你再次需要关闭Raneto时,需要ps -fe | node
得到PID之后 kill PID
))重新启动,访问发现页面变得很整齐,很规整。
5.Raneto配置完成之后的文件结构说明
a 当Raneto安装完成之后,在学习使用它之前,先简单看一下它的文件结构让我们对其有个简单的了解,截图如下:
a.1 如图所示,大部分文件夹以及文件我们不需要了解,也不需要配置,我们主要了解example和package.json这两个配置文件即可,example为默认系统中的页面内容,package.json为配置启动哪一个文件夹作为系统使用的内容。
a.2 至于其他文件我们做简单了解,app应用程序的配置文件,bin安装文件,node_modules为raneto依赖的包内容(比如搜索引擎),themes为网站的主题信息。
a.3 配置文件简单说道这里吧,这种东西主要还是要应用在实践中,故而我们开始配置自己的内容。
6.Raneto配置自己的网站数据
a 输入路径((http://192.168.37.133:3000/),打开页面,发现系统已经默认自带了讲解raneto的页面信息,但是相对来说这个对我们没有任何使用价值,我们需要自己的东西,这时候要就需要自己配置。原始的页面等信息不需要动。
b 首先跳转到raneto的解压路径下,然后创建文件夹kencery,在kencery文件夹内新建content目录(顾名思义就是放内容文件),然后我们在将example目下的server.js、package.json、config.default.js复制到kencery目录下,最终部署完成之后如图所示:
c 当上面的配置完成之后我们回到raneto的解压路径下,看到含有一个package.json(不是kencery下的,而是主目录下的),打开它,我们找到节点scripts,如下如所示,修改我画起来的红框里面的内容和为我们创建的文件夹的名称之后保存即可。
d 最后重启raneto,继续访问发现已经是访问我们配置的新的内容了,在这里我们配置就已经完成了,但是我们发现内部没有页面,这时候我们按照example下的content的结构添加几个页面去测试,你就会明白该怎么设置了。
7.Raneto在线编辑/排序/其它
a 当上面给我们自己配置成功自己的网站信息之后,输入路径访问,发现内容很少,这时候我们就需要写入大量的网站信息到系统中,但是发现在我们访问的页面上默认是不能进行在线编辑的,那么这时候如果我们还去服务器上面去写数据的话,会导致操作比较慢,所以Raneto默认含有配置在线编辑的选项,只是默认是不启用的,我们将其启用。
a.1 首先我们打开为我们自己创建的文件夹(kencery),修改文件config.default.js 中的allow_editing的值为true,然后保存。
a.2 重新启动raneto,打开页面,进入页面详细页面之后,发现多了一些小+号和Actions,单击这些内容自行测试。
b 如下图所示,我们看到了三个模块(首页、权限管理、添加),这时候我们如果想要将权限管理排序在第一位该如何做呢?
b.1 打开kencery下的config.default.js文件中,我们发现有这样一个属性:page_sort_meta: ‘sort’。
b.2 继而跳转到content下的权限管理文件夹下,创建sort文件,在内部写入0,保存
b.3 重新启动raneto,打开首页页面,发现排序已经完成。
b.4 备注:如果大家看到首页这个内容还在,那是因为首页是系统默认的,如果不想其排序在第一个,可以删除之后创建首页文件,而不是放到content文件夹下,结构如图所示:
备注:可以详细看一下kencery下的config.default.js文件中的所有的属性,均有备注,很容易知道,请大家自行测试,查看页面变化。
8.Raneto限制用户只能登陆才能访问信息
a 按照上面的步骤我们已经创建了很多页面,但是这是属于公司内部的东西的,不希望所有人都能浏览我们的知识库,只想我们一个团队的人看到,所以我们需要给网站配置登录信息(当然最好部署在局域网内,不允许局域网外的人访问最好)。
b raneto暂时不支持配置多个用户名密码,也就是说只能配置一个用户名密码。
c 首先我们找到kencery下的config.default.js配置文件中的authentication和credentials属性,启用权限,并且填写你自己的用户名密码,如图所示:
d. 然后回到安装的路径下,条主电脑themes/default/templates目录下的layout.html,打开layout.html,
d.1 在body标签开始之下添加
{{#config.authentication}}
{{#loggedIn}}
d.2 在body标签结束之前添加如图所示(跳转路径自己定义)
c. 保存上面的文件之后重新启动raneto,继续打开网站浏览,发现已经提示我们需要跳转到登录页面了,输入刚才设置的用户名密码,单击登录,跳转到主页。
9.对其进行汉化
a 综上完成之后,我们打开网站,输入用户名密码进入系统之后,全部页面已经完全展示,但是我们发现页面中除了我们自己录入的中文数据之外,其它的全部都是英文,这时候我们的需求就是如何将提示以及页面静态信息汉化呢?下面我们就来说明一下
a.1 首先我们打开kencery下的config.default.js文件,找到属性 locale: ‘en’,将其值修改为’zh’,保存关闭。
a.2 然后找到安装包路径下的app/translations,在下面看到含有一个文件en.json,拷贝一份命名为zh.json,打开之后,按照模块去修改内部的内容,如图所示(下面图片上我只是简单修改了一点点,其他内容大家自己去测试吧)
a.3 修改完成之后保存,重新启动raneto,继续浏览页面发现已经完成了汉化。
每天一点点都是进步
如果文章哪里存在问题,欢迎大家指出来,我会在第一时间修改。