Monobook for PukiWiki の変更点


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

#contentsx(depth=1:2)

*ライセンス [#i1dd2c6a]
GNU General Public License, version 2

*ダウンロード [#b75bcf34]
-[[Monobook for PukiWiki 1.0>http://sourceforge.jp/projects/pukibook/downloads/38340/monobook-1.0.zip]]
--PukiWiki 1.4.7 対応
--[[更新履歴>Monobook for PukiWiki/Changelog]]
--[[スキンに含まれる各ファイルの簡単な説明>Monobook for PukiWiki/ファイル一覧]]
--このスキンの文字コードはUTF-8です。EUC-JP版PukiWikiを使用している場合は文字コードを変換してください。
--質問は[[このページのノート>note/Monobook for PukiWiki]]にお願いします。
--要望や提案、バグ報告などは[[チケット>http://sourceforge.jp/ticket/newticket.php?group_id=4051]] にお願いします。
-[[Monobook for PukiWiki 2008.01.06>http://sourceforge.jp/projects/pukibook/downloads/37315/monobook_20080106.zip]] 旧版
-[[Monobook for PukiWiki 2007.08.03>http://sourceforge.jp/projects/pukibook/downloads/37314/monobook_20070803.zip]] 旧版
-[[Monobook for PukiWiki 2007.03.30>http://sourceforge.jp/projects/pukibook/downloads/37313/monobook_20070330.zip]] 旧版
-[[Monobook for PukiWiki 2007.02.24>http://sourceforge.jp/projects/pukibook/downloads/37312/monobook_20070224.zip]] 旧版

*設定 [#te719307]
#htmlinsert(Caution,text=部分編集プラグインがparaedit.inc.phpからsecedit.inc.phpに変更になりました。バージョンアップの際はまずparaedit.inc.php導入の際に施した本体改造を元に戻してください。)
ファイルをいくつか書き換えます。

**default.ini.phpの設定 [#xdf153d9]

***読み込むスキンファイルの変更 [#dbeb717a]
&color(red){''必須''};です。この設定だけでも動きます。
ちょっとこのスキンを試してみるだけなら、ここだけ設定して様子を見てください。
#geshi(php){{
-      define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'pukiwiki.skin.php');
+      define('SKIN_FILE', DATA_HOME . SKIN_DIR . 'monobook/monobook.skin.php');
}}

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

#geshi(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"';
}}

//***大・小見出しから目次へ戻るリンクの文字 [#r54e69c6]
//#geshi(php){{
//-$top = $_msg_content_back_to_top;
//+$top = '';
//}}

***添付ファイルの一覧を常に表示する [#nd2d0e19]
#geshi(php){{
-$attach_link = 1;
+$attach_link = 0;
}}

***関連するページのリンク一覧を常に表示する [#i498da19]
#geshi(php){{
-$related_link = 1;
+$related_link = 0;
}}

**ja.lng.phpの設定 [#ie620181]
***Symbols [#b986c9e7]
#geshi(php){{
-$_symbol_anchor   = '†';
+$_symbol_anchor   = ' ';
}}

**pukiwiki.ini.phpの設定 [#multiline]
プラグインで複数行引数を使えるようにします。[[MenuBar等でstyleプラグインを使う場合>#menubox]]は必須です。
#geshi(php){{
-define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
+define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled
}}

**monobook.skin.phpの設定 [#j71ee4d9]

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

#geshi(php){{
$logo = 'pukiwiki.png';
$favicon = 'favicon.ico';
}}

***ナビゲーションに表示するタブの設定 [#ff062ccc]
ページ上部に表示するナビゲーションタブ(右側((左側の「本文」「ノート」は固定です。)))を設定します。タブの数に制限はありません。
選べるタブの種類は[[Monobook for PukiWiki/指定可能なタブ名]]にあります。
#geshi(php){{
$tabs = array('edit', 'diff', 'attach');
}}

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

#geshi(php){{
$enable_relink = TRUE; // TRUE:有効 FALSE:無効
}}

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

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

#geshi(php){{
$enable_footer_counter = TRUE; // TRUE:表示する FALSE:表示しない
}}

**monobook_navigation.inc.phpの設定 [#yf5cca91]
上部ナビゲーションタブに表示するメッセージを変更したい場合は、該当部分を書き換えます。

**monobook_toolbox.inc.phpの設定 [#i4501037]
ツールボックスに表示するメッセージを変更したい場合は、該当部分を書き換えます。

**wikinote.inc.phpのノートに関する設定 [#t8853279]
ノートのprefixを設定します。下のように設定した場合、FrontPageのノートは「''note/FrontPage''」となります。

#geshi(php){{
$default_options['prefix']       = 'note/';
}}

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

#geshi(php){{
$default_options['except']       = '^test$|hoge';
}}

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

#geshi(php){{
$default_options['title_prefix'] = 'ノート:';
}}

**見出し編集 [#te09af8c]
見出し編集を利用するには&color(red){''PukiWiki本体の改造''};が必要になります。

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

:lib/pukiwiki.php|
#geshi(php){{
+require(PLUGIN_DIR . 'secedit.inc.php');
 
 /////////////////////////////////////////////////
 // Main
}}

:lib/convert_html.php|
#geshi(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|
#geshi(php){{
-define('PLUGIN_SECEDIT_LEVEL', false);
+define('PLUGIN_SECEDIT_LEVEL', true);
}}

*アップロード [#e7bd1700]
以上の設定をしてファイルをアップロードすればインストールは完了です。
ただし&color(red){''EUC-JP版PukiWikiを使っている場合は、ファイルの文字コードをEUC-JPに変換''};してから
アップロードしてください。

*MenuBarの作成 [#i6db1b67]
[[MenuBarのソース>ソース:MenuBar]]を見ればだいたいわかると思いますが、簡単に説明します。

***MenuBarで背景色白のボックスの中に何かを書きたい場合 [#menubox]
styleプラグインを使用して <div class="menubox"> を呼び出します。
ただし、[[複数行引数を使えるように設定>#multiline]]しておく必要があります。
 ***目次
 #style(class=menubox){{
 -リスト1
 -リスト2
 --リスト3
 }}

***MenuBarに検索ボックスを設置したい場合 [#sfd28958]
searchプラグインの代わりにmonobook_searchプラグインを使います。
 ***検索
 #monobook_search

***MenuBarで最新のX件を表示したい場合 [#ef8be1fa]
recentプラグインの代わりにmonobook_recentプラグインを使います。
 #monobook_recent(20)

***MenuBarに人気のX件を表示したい場合 [#f91a03dd]
popularプラグインの代わりにmonobook_popularプラグインを使います。
 #monobook_popular(20,note,true)

***ツールボックスを使いたい場合 [#ub650b3b]
monobook_toolboxプラグインを使います。引数には表示したいリンクを指定します。指定できる引数の種類は
[[Monobook for PukiWiki/指定可能なタブ名]]にあります。何も指定しない場合は全てのリンクを表示します。
 ***ツールボックス
 #monobook_toolbox(new,backup,related,recent,list,help,freeze,upload,rename)


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

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

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

管理者のみが使えるようにするには [[revert.inc.php]] を下のように書き換えてください。
#geshi(php){{
-define('PLUGIN_REVERT_USE_ADMIN_ONLY', FALSE);
+define('PLUGIN_REVERT_USE_ADMIN_ONLY', TRUE);
}}

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

&tag(PukiWiki,スキン,Monobook for PukiWiki);