Mediawiki/Extensions

提供:maruko2 Note.
移動: 案内, 検索

目次


MediaWiki の extension は、Category:All_extensions (www.mediawiki.org) に数多く紹介されている。

インストール済み extension は、特別ページバージョン情報 で確認できる。

ほとんどの extension は、ソースコードを extensions ディレクトリに配置し、LocalSettings.phprequire_once('extensions/foo/foo.php'); のように記述すれば有効になる。

extension名 簡単な説明
Lockdown 名前空間と特別ページへのアクセス制限を追加する。
ConfirmEdit アカウントの追加時や、ページ編集時にキャプチャ(CAPTCHA)による質問を追加する。
Renameuser ユーザー名を変更するユーザーを、利用者グループで制限する。
UserPageEditProtection 利用者ページ(利用者:maruko2 など)を、別のユーザーが編集できないようにする。
SpecialInterwiki インターウィキの編集ページ 特別:インターウィキ (Special:Interwiki) を追加する。
DynamicPageList_(third-party) カテゴリ名、名前空間、ページ名のパターン、編集日など様々な条件でページのリストを作成することができる。リストのフォーマットもいろいろと指定することができる。
SyntaxHighlight_GeSHi ソースコードなどの構文に色付けするシンタックスハイライト機能を追加する。
Cite ページに脚注を追加するための機能拡張。
ToggleDisplay2 ページの一部分を表示/非表示させるようにする。
HTMLets サーバ内の HTML ファイルを、MediaWiki のページ内にインクルードする機能を追加する。
Widgets ページ内に様々なウィジェット(Widget)を追加する機能を追加する。
Vector MediaWiki 1.16 から採用された Vector スキンのインターフェイスに付加機能を追加する。

Lockdown

Website
Lockdown

名前空間と特別ページへのアクセス権限を、利用者グループごとに設定することができる。

設定例

LocalSettings.php
require_once('extensions/Lockdown/Lockdown.php');
$wgSpecialPageLockdown['Export'] =
$wgSpecialPageLockdown['Ipblocklist'] =
array('user');

ConfirmEdit

Website
ConfirmEdit

アカウントの追加時や、ページ編集時にキャプチャ(CAPTCHA)による質問を追加する。

キャプチャの種類は複数用意されている。

FancyCaptcha の設定例

yum install python-imaging
yum install words
yum install ipa-gothic-fonts

次のようなコマンドで、キャプチャ画像を生成する。あらかじめ画像を保存するディレクトリを作っておく。

python captcha.py \
--key=foo \
--wordlist=/usr/share/dict/words \
--font=/usr/share/fonts/ipa-gothic/ipag.ttf \
--output=../../images/captcha/
--key 必須 LocalSettings.php の $wgCaptchaSecret に記述する任意のパスフレーズを指定する。
--wordlist 必須 文字列リストのファイルを指定する。
--font 必須 使用するフォントファイルを指定する。
--output 必須 キャプチャ画像を保存するディレクトリを指定する。
--count デフォルト値: 20 生成するキャプチャ画像の個数を指定する。
--font-size デフォルト値: 40 フォントサイズを指定する。大きくするとキャプチャ画像が大きくなる。
LocalSettings.php

基本設定

require_once('extensions/ConfirmEdit/ConfirmEdit.php');
require_once('extensions/ConfirmEdit/FancyCaptcha.php');
$wgCaptchaClass = 'FancyCaptcha';
$wgCaptchaDirectory = '/var/www/mediawiki/images/captcha/';
$wgCaptchaSecret = 'foo';

利用者グループごとに、キャプチャをスキップするかどうか設定する

$wgGroupPermissions['*'            ]['skipcaptcha'] = false;  //デフォルト false
$wgGroupPermissions['user'         ]['skipcaptcha'] = true;   //デフォルト false
$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = true;   //デフォルト false
$wgGroupPermissions['bot'          ]['skipcaptcha'] = true;   //デフォルト true
$wgGroupPermissions['sysop'        ]['skipcaptcha'] = true;   //デフォルト true

キャプチャを必要とする操作を指定する(デフォルト設定)

$wgCaptchaTriggers = array();
$wgCaptchaTriggers['edit']          = false; // Would check on every edit
$wgCaptchaTriggers['create']        = false; // Check on page creation.
$wgCaptchaTriggers['addurl']        = true;  // Check on edits that add URLs
$wgCaptchaTriggers['createaccount'] = true;  // Special:Userlogin&type=signup
$wgCaptchaTriggers['badlogin']      = true;  // Special:Userlogin after failure

設定内容の説明や、その他の設定($wgCaptchaWhitelistIP など)は ConfirmEdit.php に書かれている。

Renameuser

Website
Renameuser

ユーザーアカウントの利用者名を変更する権限を、どの利用者グループに割り当てるか指定する。

変更権限のある利用者グループで 特別:利用者名変更 (Special:Renameuser) ページにアクセスすると、任意の利用者名を変更することができる。

設定例

LocalSettings.php

利用者グループ "ビューロクラット" に利用者名変更権限を割り当てる例。

require_once('extensions/Renameuser/Renameuser.php');
$wgGroupPermissions['bureaucrat']['renameuser'] = true; //デフォルト値

UserPageEditProtection

Website
UserPageEditProtection

ユーザーの利用者ページ(利用者:maruko2 など)を、ユーザーのみが編集できるようにする。

設定例

LocalSettings.php

sysop 利用者グループは全ユーザーの利用者ページを編集できるよう設定する。

$wgOnlyUserEditUserPage = true;
$wgGroupPermissions['sysop']['editalluserpages'] = true;
require_once('extensions/UserPageEditProtection.php');

SpecialInterwiki

Website
SpecialInterwiki

登録済みのインターウィキを表示・編集したり、新規登録する 特別:インターウィキ (Special:Interwiki) ページを追加する。

設定例

LocalSettings.php

sysop 利用者グループのみ、特別:インターウィキ ページでインターウィキの編集・新規追加ができるようにする。

require_once('extensions/Interwiki/Interwiki.php');
$wgGroupPermissions['*']['interwiki'] = false;
$wgGroupPermissions['sysop']['interwiki'] = true;

DynamicPageList_(third-party)

Website
DynamicPageList_(third-party)

カテゴリ名、名前空間、ページ名のパターン、編集日など様々な条件でページのリストを作成することができる。リストのフォーマットもいろいろと指定することができる。

設定例

LocalSettings.php
require_once('extensions/DynamicPageList/DynamicPageList2.php');

DynamicPageList の Wiki文法マニュアル

非常に多くのパラメータが用意されているので、DPL:Manual (semeb.com) ページを参照。

Controlling output format: 出力フォーマットを指定するパラメータ
Controlling output order: 出力順を指定するパラメータ
Controlling output volume: 情報を付加して出力するパラメータ
Criteria for page selection: ページを選び出す条件を指定するパラメータ
Other parameters: デバッグ情報など。

Wiki文法記述例

例えば、Mac OS X というカテゴリに含まれるページのうち、ページ更新順に並べ、更新の新しい 3ページだけリストするには、次のように書く。

Wiki文法

<dpl>
category     = Mac OS X
ordermethod  = lastedit
order        = descending
count        = 3
</dpl>

表示結果

  • 大文字小文字を区別するので注意
  • メイン名前空間を指定する場合、namespace = のように空白で指定する。

SyntaxHighlight_GeSHi

Website
SyntaxHighlight_GeSHi

ソースコードなどの構文に色付けするシンタックスハイライト機能を追加する。

設置例

svn を使うと楽に設置できる。GeSHi も同時にダウンロードできる。

cd extensions
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi

svn が利用できない場合は、SyntaxHighlight_GeSHi ディレクトリ内に GeSHi のソースコードを配置する。

extensions/
├── SyntaxHighlight_GeSHi/
│   ├── SyntaxHighlight_GeSHi.class.php
│   ├── SyntaxHighlight_GeSHi.i18n.php
│   ├── SyntaxHighlight_GeSHi.php
│   └── geshi/
│       ├── contrib
│       ├── docs
│       ├── geshi
│       ├── contrib
│       └── geshi.php
LocalSettings.php
require_once('extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php');

Wiki文法記述例

Wiki文法

<source lang="php" line start="100" highlight="3">
<?php
if($true)
   echo "true";
else
    echo "false";
?>
</source>

表示結果

  1. <?php
  2. if($true)
  3.    echo "true";
  4. else
  5.     echo "false";
  6. ?>

<source> タグは XML などいくつかの言語で使用されているため、<syntaxhighlight> タグの使用が推奨されている。

Cite

Website
Cite

ページに脚注を追加するための機能拡張。

設置例

LocalSettings.php
require_once( 'extensions/Cite/Cite.php' );

Wiki文法記述例

ガリレオは1597年にケプラーに宛てた手紙の中で既に地動説を信じていると記して
いる<ref>青木靖三『ガリレオ・ガリレイ』岩波新書、1965年</ref>。

その他には、天の川が無数の恒星の集合であることなども発見した<ref>マクラクラ
ン (2007) p51など</ref>。

== 脚注 ==
<references />

ToggleDisplay2

Website
ToggleDisplay2

設置例

LocalSettings.php
require_once('extensions/ToggleDisplay2.php');

Wiki文法記述例

Wiki文法

<toggledisplay>
非表示にする内容
</toggledisplay>

表示結果

[表示する]

HTMLets

Website
HTMLets

サーバ内の HTML ファイルを、MediaWiki のページ内にインクルードできるようになる。

設置例

LocalSettings.php

$wgHTMLetsDirectory で指定したディレクトリ内の HTML ファイルのみインクルードすることができる。

require_once('extensions/HTMLets/HTMLets.php');
$wgHTMLetsDirectory = "htmlets";

Wiki文法記述例

foo.html というファイルをインクルードする場合、拡張子を除いた foo という名前で指定する。

<htmlet>foo</htmlet>
<htmlet nocache="yes">foo</htmlet>

Widgets

Website
Widgets

設置例

ソースコードを extensions フォルダに解凍。

あるいは svn を使う。

cd extensions
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/Widgets

Widgets/compiled_templates ディレクトリを apache ユーザで書き込めるようにする。

chown -R apache Widgets/compiled_templates
LocalSetting.php
require_once('extensions/Widgets/Widgets.php');
$wgGroupPermissions['sysop']['editwidgets'] = true;

Widget名前空間ができるので、Widget名前空間にページを作成する。(MediaWiki のテンプレート機能を使う。)

例えば、Widget:Ustream を利用する場合、Widget:Ustream のページを作り、Widget:Ustream の full source code をコピペする。

このWikiサイトの Widget 一覧

Vector

Website
Vector

設置例

LocalSettings.php

$wgVectorUseSimpleSearch 右上にある検索ボックスを、シンプルな検索ボックスにする。

require_once ("extensions/Vector/Vector.php" );
$wgDefaultUserOptions['vector-collapsiblenav'] = 1;
$wgVectorUseSimpleSearch = true;
LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数