如何把 GitHub 用作个人 wiki wiki搭建知识库 步骤

您的位置: >>
  Wikipedia大家都很熟悉,而Mediawiki则是Wikipedia背后的功臣,整个Wikipedia都构建在mediawiki之上,mediawiki的稳定性和高效性值得信赖,同时Mediawiki非常易于扩展,可以通过Extension的方式添加非常多的功能,而且Mediawiki的Extension社区也非常活跃,大家可以到Mediawiki Extension目录下去下载自己需要的扩展程序。
  上周末,帮朋友写了一些Mediawiki的扩展,立即被Mediawiki的强大扩展性折服,主要实现的功能有:增加Google Analytics统计、自定义标题、增加Google Adsense广告之类,写Mediawiki的扩展,最好的参考是Mediawiki扩展手册:http://www.mediawiki.org/wiki/Manual:Extensions。
  Mediawiki的扩展主要有Tag Extension、Parser Functions、Hooks、Special Pages、Skins、Magic Words,对应的中文是:标签扩展(自定义wiki标签,比如xxxx)、解析扩展(和标签类似,不过呈现方式稍有不通,为{{#foo : bar}})、钩子、特殊页面、皮肤、魔术关键字,我这里演示的是Parser Functions和Hooks,其他的差不多类似。
  一、增加Google Analytics统计和Google Adsense广告
  原理很简单,我们在页面显示之前,把Google Analytics和Google Adsense的代码append到要显示的内容即可,代码:
&?php/** * 安全设置,防止恶意调用 */if (!defined('MEDIAWIKI')) {
die( 'This file is a MediaWiki extension, it is not a valid entry point' );} /** * 扩展的基本信息 */$wgExtensionCredits['other'][] = array(
=& __FILE__,
=& '插件名称',
=& '作者',
'descriptionmsg' =& '简要说明',
=& '作者地址',); /** * 注册一个钩子,在页面显示之前,处理页面显示内容 * * 全部钩子列表:http://www.mediawiki.org/wiki/Manual:Hooks * */$wgHooks['BeforePageDisplay'][] = 'dzBeforePageDisplay';function dzBeforePageDisplay(&$out, &$skin) {
* 在LocalSettings.php定义$wgDangZhiAppendHtml
* 把要添加的Google Analytics和Google Adsense代码放里面
global $wgDangZhiAppendH
// 页面添加HTML
$out-&addHTML($wgDangZhiAppendHtml);
// 记得返回true,收工
return true;}
  短短几行代码,完成添加Google Analytics统计和Google Adsense广告代码,当然,你还可以添加任意你想添加到网页最后的代码,可以查看示例网站的源代码,Google Analytics的代码布在每个页面上。
  二、自定义文章标题
  自定义文章标题对搜索引擎来说非常重要,Mediawiki默认的标题只能和内容条目一样,缺乏灵活性,这里的原理是增加一个{{#title: 标题内容}}的标签,在页面显示之前替换成网页标题,示例网站的首页就自定了HTML标题。
/** * 还是第一示例中的显示前处理函数,这里是部分内容 */function dzBeforePageDisplay(&$out, &$skin) {
// 如果页面中存在{{#title: 标题内容}},那么指定文章标题
preg_match('/\{\{#title: ?(.*)\}\}/U', $out-&mBodytext, $matches);
if ($matches) {
$out-&mBodytext = str_replace($matches[0], '', $out-&mBodytext);
$out-&mHTMLtitle = $matches[1];
return true;}
  三、文章在新窗口打开
  Mediawiki是外国人做的东西,国外少有默认新窗口打开链接的习惯,国人的习惯可不是这样,让Mediawiki默认新窗口打开的做法非常的简单。
/** * 还记得这个函数吧 */function dzBeforePageDisplay(&$out, &$skin) {
// 新窗口打开链接
$p = array('/(&a href=\"\/index.php\?title=.+\")/U', '/(&a href=\"\/wiki\/.+\")/U');
$r = '$1 target="_blank"';
$out-&mBodytext = preg_replace($p, $r, $out-&mBodytext);
return true;}
  在页面输出之前,给需要的a标签加个target=&_blank&的属性即可。
  四、解析HTML标签
  Mediawiki为了安全考虑,不允许在内容中使用非安全HTML标签,我们可以使用一种加密HTML的方法来达到安全性和易用性的平衡。在内容中增加{{#html: 加密码 | html内容}},其中加密码是系统密钥和html内容的md5值,如果符合则显示。
/** * 初始化Parser Functions */$wgHooks['ParserFirstCallInit'][] = 'dzParserSetup';$wgHooks['LanguageGetMagic'][] = 'dzMagicSetup'; /** * 设置解析函数 */function dzParserSetup(&$parser) {
$parser-&setFunctionHook('html', 'dzParseHtml');
// 可以设置多个,$parser-&setFunctionHook('foo', 'dzParseFoo');
return true;} /** * 初始化Parser关键字 */function dzMagicSetup(&$magicWords, $langCode) {
$magicWords['html'] = array(0, 'html');
// 可以设置多个,$magicWords['foo'] = array(0, 'foo');
return true;} /** * 解析HTML */function dzParseHtml($parser, $param1 = '', $param2 = '') {
// 在LocalSettings.php定义HTML加密密钥
global $wgHtmlS
$key = md5($wgHtmlSalt . $param2);
if ($key == $param1) {
return array($param2, 'noparse' =& true, 'isHTML' =& true);;
return 'bad html';}
  Mediawiki的扩展写起来还是相当容易,文中提到的效果可以在这里体验,老外写的东西对Extension都很重视,wordpress也是这样,不似国内的某些项目,稍做修改都得hack代码,hack的坏处是升级的时候容易悲剧。
Web前端热门文章
Web前端最新文章君,已阅读到文档的结尾了呢~~
Mediawiki编辑语法介绍;常用于知识库一类建设工具。http://wiki.mbalib.com的建设技术。用于温故知新。
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
知识库简明使用(Mediawiki技术)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口在Github上搭建自己的wiki介绍
在Github上搭建自己的wiki介绍
之前考虑建一个wiki来进行个人知识管理,找来找去,觉得在Github上搭建wiki是一个好的方式。如何开始,可以看一下:其中介绍了,gollum是Github上用到的wiki引擎,使用它可以在本地上搭建一个类似的github wiki的网站,而且你在本地上记录的东西,可以通过git直接同步到Github上。这样子就很方便了,但是在Winodws下无法使用gollum。本地无法使用gollum,你也可以选择在线编辑wiki页面或是在本地上先写md文档,然后push上去。但是用起来还是会有些单调,那么你可以通过下面的方法添加Sidebar、Header和Footer:
发表评论:
TA的最新馆藏个人Wiki的最好选择,如何使用Mdwiki打造知识库_百度知道分类排行榜
作者:木木
作者:何杨
作者:何杨
作者:苗元威
站长们都信赖的交易中介平台,安全、高效、便捷。
中小企业网络营销第一平台,解决流量、转化率、品牌。
高收益、移动广告、弹窗CPM、点击CPC、包月广告。
提供公众号出售、求购、代售等交易中介以及增值服务。
增值电信业务经营许可证:苏B2-
编辑热线:5
A5创业网 版权所有.
扫一扫关注最新创业资讯

我要回帖

更多关于 wiki知识库建立 的文章

 

随机推荐