2018年4月25日 星期三

在Mediawiki上安裝navbox

看到Wikipedia的navbox非常好用,使用率也很高,所以也想在自己的Mediawiki上面安裝,但發現網上幾乎沒有這方面的教學,又或者相當模糊,讓自己花了好多時間才摸索到安裝的方法,因此記錄一下自己安裝的過程:

1. 安裝Scribunto插件

Scribunto插件的主要目的是可以讓你建立Module:XXX的頁面,然後在上面寫lua script。因為MediaWiki的navbox是用lua script寫出來的,需要建立一些Module頁面並貼上lua代碼,所以想用的話就先要安裝Scribunto。

安裝步驟:https://www.mediawiki.org/wiki/Extension:Scribunto#Installation
大致上就是下載後把資料夾放在extensions資料夾內,再於LocalSettings.php加上以下代碼:
wfLoadExtension( 'Scribunto' );
$wgScribuntoDefaultEngine = 'luastandalone';
幫Lua程式加上執行權限,(雖然我試的時候已經有執行權限了):
chmod a+x /path/to/extensions/Scribunto/engines/LuaStandalone/binaries/yourOS/lua
記得把yourOS換成自己的作業系統(我的是lua5_1_5_linux_64_generic)

如果想有syntax highlighting(代碼上色),需要先安裝SyntaxHighlight_GeSHi插件,然後再於LocalSettings.php加上:
$wgScribuntoUseGeSHi = true;

安裝SyntaxHighlight_GeSHi的步驟請看:https://www.mediawiki.org/wiki/Extension:SyntaxHighlight#Installation

不過當初我嘗試加上的時候,遇到了個問題:在自己的測試機(Ubuntu 16.04 Desktop)是可以順利啟用代碼上色的,但到了正式機(Ubuntu 16.04 Server)卻無法上色,查了很久才發現是/usr/bin內沒有以python為名的程式(只有python3.5),而測試機則已經有一個python link指著另一個python版本的程式,於是我也在正式機內加上一條link,這樣SyntaxHighlight_GeSHi執行pygmentize的時候就能找到python了。

2. 在MediaWiki上建立頁面


建立以下頁面,可以從MediaWiki把原始碼抄過來(不要用Wikipedia的,因為需要加更多額外的Module)
Template:Navbox
Module:Navbox
Module:Navbar
Module:Arguments

建立以下頁面(預設會有不過是空的),從Wikipedia把原始碼抄過來
MediaWiki:Common.css
MediaWiki.Common.js

建立完畢後就可以用navbox了。範例代碼:

{{Navbox
|name = Navbox/doc
|state = uncollapsed
|image = {{{image}}}
|title = {{{title}}}
|above = {{{above}}}
|group1 = {{{group1}}}
|list1 = {{{list1}}}
|group2 = {{{group2}}}
|list2 = {{{list2}}}
|list3 = {{{list3}}} ''without {{{group3}}}''
|group4 = {{{group4}}}
|list4 = {{{list4}}}
|below = {{{below}}}
See alternate navbox formats under: [[#Layout of table|''Layout of table'']]
}}

沒有留言:

張貼留言