这是最近搭建公司内部wiki——LM智库的使用心得,每一位致力于wiki建设的同学都可以参考一下,而且这一定是你能找到的最方便的Mediawiki的操作手册。
文中提到的大部分的文档操作都依赖于wiki所添加的插件。如果有疑问,可以参考mediawiki(LM智库)搭建手册一文。
本着数据共享和安全性原则,mediawiki对于图片和参考文档的引用都需要首先上传到本地服务器上才能进一步使用。
进入该选项后可以根据提示将本地或者外部链接的图片或其他文件导入数据库中。注意,使用该方法导入文件时勿以本站上标出的文件类型和文件大小为参考,通过该方法只能上传图像文件与部分文本文件,媒体文件是无法上传的。
通过批量上传,用户可以上传本站标出的所有支持的文件类型,注意如果要上传exe文件,请先进行打包。
首先,windows下请将 \\10.110.53.195\pictures
映射为网络驱动器,Linux下可以通过ssh访问该文件夹,地址是[email protected]:/home/xx/upload/pictures/
然后请重命名你的图片或者文档,不可以包含中文字符。因为之后在文件中调用时,mediawiki需要通过文件名作为索引来寻找文件,请自订一个不会产生歧义的文件名。
如果需要批量重命名,这里推荐一个windows下的重命名工具(拖把重命名工具)。
之后进入“批量上传页面”,即可以看到之前上传到该文件夹下的对应文件。
全部勾选后,请填写Prepend to description,这样之后复用该文件的时候,你会有所参考。
最后选定“Upload Local Files”。
上传完成后可以在条目编辑时进行引用。
在LM智库下新建条目可以使用如下方法。
1. 在任何页面右上角的搜索框(如下所示)内输入你想要的创建的条目名称,然后点击“提交”按钮。如果已存在该条目,则会转到该条目下,如果不存在该条目,则可以根据提示新建该条目。http://10.110.53.195/wiki/你想添加的条目名
然后根据提示可以创建新的条目。
4. LM智库中以红色显示的条目,表示该条目下尚无内容,点击进入后可以直接创建该条目的内容。
5. 当你在编撰某条目时,需要在文章内容插入某条目的引用链接,但该条目尚未编写。可以先写下该条目名,然后使用文本工具
创建条目注意事项:
wiki的语法大量参考了html标签和php语言。因此,如果想比较熟练的掌握wiki语法,需要对这两种语言有一定的了解。如果大家有兴趣的话,可以参考相关的书籍。
这里给出几篇mediawiki的语法参考文档:mediawiki help,wikipedia的使用手册,18dao的wiki语法大全
需要注意的是,如果希望使用wiki语法来编撰条目,最好使用原生的mediawiki编辑器。大家可以在编辑窗口上方看到“禁用富文本编辑器”,选择之后则可以使用原生的mediawiki编辑器了。
国内的wiki一直无法得到普及,与wiki复杂繁琐的编辑方式有很大关系。因此笔者安装了富文本编辑器(WYSIWYG),希望能改善大家编写条目的环境,虽然该工具现在尚不完善,但总体上来说,比原生的wiki编辑环境还是要友好很多。
安装完该工具后,可以在编辑条目时,看到编辑栏上方出现如下所示的编辑框
看到目录栏上标出了若干目录级别。
其中以标题为首的目录级别就是文章各级的目录了。
而普通指的就是正文内容。
之后还有以编排内容,这部分在我的编辑栏中显示的是内容加框(<pre></pre>)。
通过该工具可以方便的为文章进行目录分级。
注意:
当你将所需要的图片上传到服务器上后,就可以在条目内部插入该图片了。
在编辑栏中找到“图像”按钮。
点击后弹出mediawiki image选择框
“图像风格”一栏的下拉菜单中有四个选项。对应不同的插图风格效果
default |
|
thumbnail |
|
frame |
|
border |
|
“图像位置”一栏由于显示问题,对应的选项实际上应该是
根据用户的个人情况,可以在自定义像素栏中填入图像像素的大小,在Caption栏中填入图像的说明文字。
而更为细致的图像应用,可以参考wiki语法中关于插入图像相关章节的描述。
WYSIWYG富文本编辑器支持即视即用地插入内部链接和外部链接。
在编辑器中找到按钮“插入/编辑超链接"。
点击后弹出mediawiki link选择框。
如果需要指向内部的链接地址,只需要在该对话框内输入所要找页面的关键字即可,相关页面都会显示在下方的展示框中。如果相关页面不存在,则可以通过该方法创建新条目。
WYSIWYG富文本环境下的表格创制与word类似,在此不再赘述。
值得一提的是它的选项中有一条关于“百分比”的选项,可以将此项选为100,则之后的表格会自动适配你所填入的内容。
引入了插件SyntaxHighlight后,通过syntaxhighlight文件头设置可以对代码进行高亮显示。
方法如下:
禁用富文本编辑器后,直接在代码行的首尾加上<source lang="language"></source>的包络框。
例如C语言:
<source lang="c"> int str16eq(uint16_t *a, const char *b) { while (*a && *b) if (*a++ != *b++) return 0; if (*a || *b) return 0; return 1; } </source>
显示结果:
int str16eq(uint16_t *a, const char *b) { while (*a && *b) if (*a++ != *b++) return 0; if (*a || *b) return 0; return 1; }
例如JAVA语言
<source lang="java"> Connection dial(String dialString) throws CallStateException { return dial(dialString, CommandsInterface.CLIR_DEFAULT, null); } </source>
显示结果:
Connection dial(String dialString) throws CallStateException { return dial(dialString, CommandsInterface.CLIR_DEFAULT, null); }
对条目进行归类,可以使用插件SelectCategory带来的功能。使用者可以在文本框的下方看到分类选择树。
选择对应的所属分类即可。
但是由于插件的不完善,这个方式有一定的问题。
因此,笔者同样建议同学们可以在必要的时候“禁用富文本编辑器”,以wiki语法的方式添加目录分类:
[[Category:xxxx]]
该行文字可以插入到条目的任何位置。请注意半角的特殊符号。
同时,大家可以直接在侧边栏的“模块分类”和“项目分类”中直接创建所属分类下的条目。
由于word文档的固有编排格式与wiki有一定差异,笔者不建议将word文档一一转化为wiki条目,而是推荐在允许的条件下直接上传word文档,同时在对应的分类目录下加入索引目录方便查找,可以参考“分类:SIM“的做法。
相比以往将文档存放在ftp上的做法,这样处理文档的好处在于一方面word具有了分类属性,方便归纳查找;另一方面,可以在索引目录中加入对该文件的说明,也方便日后查询的时候有所参考。
但是缺点在于,这样做无法像普通的wikI条目一样直观明了,且无法通过关键词超链接的方式生成知识网络。
因此,在之后的知识库维护上,笔者希望大家能够多编辑条目,而不是线下编写文档再上传。
WYSIWYG富文本编辑器支持从word直接将文本导入到wiki中,导入的文档除了无法导入图像资源外,可以保持原有的目录分级,排版方式。这给我们带来极大的方便。
方法如下:
1. 选定word文档中的正文部分,注意不要包括word自动生成的目录内容。
2. 在文本编辑器中找到“从MS Word粘贴”按钮。点击打开后将正文部分粘贴到文本框中。3. 此时可以看到文档已经按照之前的目录分级出现在wiki编辑框中。请手动将word中生成的各级目录前的索引号去掉,因为mediawiki会自动根据目录树生成索引号。
4. 导入word的图片资源。这里介绍一种导入word图片资源的方法:将word文件另存为html文件,则可以在对应的资源文件夹中看到该文档所有的图片资源。
5. 调整图片在wiki中的位置,大功告成。
目前dokuwiki内容可以直接移植到LM智库当中。
模板在mediawiki中的使用类似于代码中的子程序调用。你可以在wiki中设计一个模板,然后在其他的任何页面中调用这个模板,达到“一次书写,随时使用”的目的。
模板的创建与普通条目的创建方法类似,唯一不同的地方在于需要在创建的条目名称前加上“模板:”或者“Template:
”,比如创建一个数据业务的模板,则可以将名称改为“模板:数据业务”即可。
模板的内容可以为固定的内容,比如说一段文字或一行代码。在调用该模板时,显示的结果就是该行文字或代码。
此外,模板还能写入参数。比如说,你可以创建一个名为“模板:数据业务”的模板,内容为:
数据业务是{{{内容}}}
如果以{{数据业务}}的方式调用该模板,则结果是:
数据业务是{{{内容}}}
如果以{{数据业务|内容=智能手机的基本业务之一}}的方式调用该模板,则结果是:
数据业务是智能手机的基本业务之一
模板在mediawiki中被大量使用,以wikipedia为例,大家在访问源代码页面的时候会看到文尾的参考区标注了该版面引用了多少的模板。而模板之间的多重嵌套一方面将wiki内容模块化,另一方面也增加了wiki设计的难度。
更多的有关模板的使用说明,可以参考mediawiki的模板帮助,18dao的模板进阶说明,等等