Wikipedia風なPukiWikiスキン "Monobook for PukiWiki"

Monobookとは、Wikipedia で使われている MediaWiki のデフォルトスキンの名称です。 PukiWikiをMonobookぽくするためのスキンがMonobook for PukiWikiです。

Table of Contents

[編集]ライセンス

GNU General Public License, version 2

[編集]ダウンロード

[編集]設定

部分編集プラグインがparaedit.inc.phpからsecedit.inc.phpに変更になりました。バージョンアップの際はまずparaedit.inc.php導入の際に施した本体改造を元に戻してください。

ファイルをいくつか書き換えます。

[編集]default.ini.phpの設定

[編集]読み込むスキンファイルの変更

必須です。この設定だけでも動きます。 ちょっとこのスキンを試してみるだけなら、ここだけ設定して様子を見てください。

-      define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'pukiwiki.skin.php');
+      define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'monobook/monobook.skin.php');

[編集]リスト構造の左マージン

リストの左マージンをどのくらいとるかの設定です。 気にならなければ変更しなくてもかまいません。

 $_ul_left_margin = 0;   // リストと画面左端との間隔(px)
-$_ul_margin = 16;       // リストの階層間の間隔(px)
+$_ul_margin = 0.75;     // リストの階層間の間隔(em)
 $_ol_left_margin = 0;   // リストと画面左端との間隔(px)
-$_ol_margin = 16;       // リストの階層間の間隔(px)
+$_ol_margin = 0.75;     // リストの階層間の間隔(em)
 $_dl_left_margin = 0;   // リストと画面左端との間隔(px)
-$_dl_margin = 16;       // リストの階層間の間隔(px)
+$_dl_margin = 0.75;     // リストの階層間の間隔(em)
-$_list_pad_str = ' class="list%d" style="padding-left:%dpx;margin-left:%dpx"';
+$_list_pad_str = ' class="list%d" style="padding-left:%sem;margin-left:%sem"';

[編集]添付ファイルの一覧を常に表示する

-$attach_link = 1;
+$attach_link = 0;

[編集]関連するページのリンク一覧を常に表示する

-$related_link = 1;
+$related_link = 0;

[編集]ja.lng.phpの設定

[編集]Symbols

-$_symbol_anchor   = '†';
+$_symbol_anchor   = ' ';

[編集]pukiwiki.ini.phpの設定

プラグインで複数行引数を使えるようにします。MenuBar等でstyleプラグインを使う場合は必須です。

-define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
+define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled

[編集]monobook.skin.phpの設定

[編集]画像の指定

ロゴ画像を変更したりfaviconを指定したい場合はここで指定します。 2つともimageディレクトリに置いてください。 指定したロゴ画像のサイズがデフォルトのものと異なる場合は、CSSの調整が必要になります。

$logo = 'pukiwiki.png';
$favicon = 'favicon.ico';

[編集]ナビゲーションに表示するタブの設定

ページ上部に表示するナビゲーションタブ(右側*1)を設定します。タブの数に制限はありません。 選べるタブの種類はMonobook for PukiWiki/指定可能なタブ名にあります。

$tabs = array('edit', 'diff', 'attach');

[編集]外部リンクにアイコンを付ける場合

relink.inc.php を利用して外部リンクにアイコンを付ける場合の設定です。

$enable_relink = TRUE; // TRUE:有効 FALSE:無効

この機能は実験的なもので不具合があるかも知れません。 また内部リンクは相対パスに書き換えます。

[編集]カウンタの設定

フッタにカウンタを表示するかどうかの設定をします。

$enable_footer_counter = TRUE; // TRUE:表示する FALSE:表示しない

[編集]monobook_navigation.inc.phpの設定

上部ナビゲーションタブに表示するメッセージを変更したい場合は、該当部分を書き換えます。

[編集]monobook_toolbox.inc.phpの設定

ツールボックスに表示するメッセージを変更したい場合は、該当部分を書き換えます。

[編集]wikinote.inc.phpのノートに関する設定

ノートのprefixを設定します。下のように設定した場合、FrontPageのノートは「note/FrontPage」となります。

$default_options['prefix']       = 'note/';

次にノートを作成したくないページを正規表現で指定します。わからない場合は変更しないでください。

$default_options['except']       = '^test$|hoge';

最後にノートのタイトルに付けるprefixを設定します。下のように設定した場合、note/FrontPage のタイトルは「ノート:FrontPage」となります。

$default_options['title_prefix'] = 'ノート:';

[編集]見出し編集

見出し編集を利用するにはPukiWiki本体の改造が必要になります。

過去のバージョンではparaedit.inc.phpを使用していましたが、現在はsecedit.inc.phpを使用しています。 paraedit.inc.php用の本体改造を施している場合は、まず改造前に戻してから行ってください。 (paraeditプラグインを外す方法

lib/pukiwiki.php
+require(PLUGIN_DIR . 'secedit.inc.php');

 /////////////////////////////////////////////////
 // Main
lib/convert_html.php
 	function canContain(& $obj)
 	{
 		return FALSE;
 	}

+	function wrap($string, $tag, $param = '', $canomit = TRUE)
+	{
+		$secedit = plugin_secedit_wrap($string, $tag, $param, $this->id);
+		return $secedit ? $secedit : parent::wrap($string, $tag, $param, $canomit);
+	}

 	function toString()
 	{
 		return $this->msg_top .  $this->wrap(parent::toString(),
 			'h' . $this->level, ' id="' . $this->id . '"');
 	}
 }

 // ----
 // Horizontal Rule

secedit.inc.phpでは、その見出しに含まれる小見出しも含めた編集が可能です。その機能を利用する場合はsecedit.inc.phpの設定を次のようにしてください。

plugin/secedit.inc.php
-define('PLUGIN_SECEDIT_LEVEL', false);
+define('PLUGIN_SECEDIT_LEVEL', true);

[編集]アップロード

以上の設定をしてファイルをアップロードすればインストールは完了です。 ただしEUC-JP版PukiWikiを使っている場合は、ファイルの文字コードをEUC-JPに変換してから アップロードしてください。

[編集]MenuBarの作成

MenuBarのソースを見ればだいたいわかると思いますが、簡単に説明します。

[編集]MenuBarで背景色白のボックスの中に何かを書きたい場合

styleプラグインを使用して <div class="menubox"> を呼び出します。 ただし、複数行引数を使えるように設定しておく必要があります。

***目次
#style(class=menubox){{
-リスト1
-リスト2
--リスト3
}}

[編集]MenuBarに検索ボックスを設置したい場合

searchプラグインの代わりにmonobook_searchプラグインを使います。

***検索
#monobook_search

[編集]MenuBarで最新のX件を表示したい場合

recentプラグインの代わりにmonobook_recentプラグインを使います。

#monobook_recent(20)

[編集]MenuBarに人気のX件を表示したい場合

popularプラグインの代わりにmonobook_popularプラグインを使います。

#monobook_popular(20,note,true)

[編集]ツールボックスを使いたい場合

monobook_toolboxプラグインを使います。引数には表示したいリンクを指定します。指定できる引数の種類は Monobook for PukiWiki/指定可能なタブ名にあります。何も指定しない場合は全てのリンクを表示します。

***ツールボックス
#monobook_toolbox(new,backup,related,recent,list,help,freeze,upload,rename)

[編集]3段組にするには

「SideBar」という名前のページを作成すると、自動的に3段組になり、そのページが右サイドバーになります。 MenuBarと同じ要領で編集してください。

2段組で運用したい場合はプラグインsidebar.inc.phpを削除しておくと、いたずらでSideBarというページを作られても3段組になりません。

[編集]リバート機能

上部ナビゲーションタブに「編集タブ」があり、差分かバックアップの特定の版を表示している場合は、「編集タブ」が「差し戻しタブ」になり、その版へリバートすることができます。

管理者のみが使えるようにするには revert.inc.php を下のように書き換えてください。

-define('PLUGIN_REVERT_USE_ADMIN_ONLY', FALSE);
+define('PLUGIN_REVERT_USE_ADMIN_ONLY', TRUE);

[編集]謝辞

このスキンでは sonots氏が作成されたプラグインと tmk氏が作成されたプラグイン、 MediaWiki に付属の画像ファイルを利用しています。 これらのファイルがなければこのスキンを完成させることはできませんでした。それぞれの作者の方々に深く感謝します。

Tag: PukiWiki スキン Monobook for PukiWiki


*1 左側の「本文」「ノート」は固定です。