# wget https://osdn.jp/projects/pukiwiki/downloads/64807/pukiwiki-1.5.1_utf8.zip # tar zxvf pukiwiki-1.5.1_utf8.zip # ln -s ./pukiwiki-1.5.1_utf8 /usr/local/apache2/htdocs/pukiwiki
※注)phpを利用するのでapacheのモジュールとして設定すること。phpのコンパイル時には、--enable-mbstring --enable-mbstr-enc-trans の2つのオプションを指定すること。
基本的にpukiwikiのフォルダはすべて直接ファイル名を指定しても見えてしまうので、apacheのBASIC認証を利用してフォルダ全体をみれないように設定します。
最低必要と思われるカスタマイズを列記してみた。
puiwikiでは、wikiname( TestName のような途中に大文字が入る単語 )を自動的にWikinameとみなし、リンクを張ろうとする。そのため作成していない名前でも、リンクマークとして名前の最後に「?」が自動付与され見苦しくなる。よって、この昨日を解除する。
# emacs pukiwiki.ini.php $nowikiname = 1;
ここのサイトから、ParaEdit Plugin(paraedit.inc.php)を、pluginフォルダにコピーする。(ファイルは1つで終了)一応、このページの添付ファイルにも置いておく。
メインモジュール、lib/pukiwiki.phpの// main の直前に以下の2行を追加
# emacs lib/pukiwiki.php .... // Paraedit revised include_once(PLUGIN_DIR . 'paraedit.inc.php'); $post["msg"] = _plugin_paraedit_parse_postmsg($post["msg_before"],$post["msg"],$post["msg_after"]); ////////////////////////////////////////////// // Main ....
スキンモジュール、skin/pukiwiki.skin.php の pkwk_common_headers();前に3行追加
# emacs skin/pukiwiki.skin.php ... // // Paraedit Revised // if(exist_plugin('paraedit')) { $body = _plugin_paraedit_mkeditlink($body); } // HTTP headers pkwk_common_headers();
ライブラリモジュール、lib/convert_html.php の以下の2行を以下のように3行に変更する。
return $this->msg_top. $this->wrap(parent::toString(),'h'.$this->level," id=\"{$this->id}\"");
$paraedit_flag = (preg_match("/^content_1_/", $this->id)) ? ' paraedit_flag=on' : ''; return $this->msg_top. $this->wrap(parent::toString(),'h'.$this->level," id=\"{$this->id}\"$paraedit_flag");
ダウンロードし、Pluginフォルダにコピーした、paraedit.inc.phpを修正する。ここでは、文字を利用せず画像を利用する。
# emacs plugin/paraedit.inc.php define(_EDIT_LINK, '<div style="text-align: left; font-size: x-small; float: left; padding: 0px; "><a href="%s">\ <img src="image/paraedit.png" width="9" height="9" alt="Edit" title="Edit" /></a></div>');
編集リンクの挿入位置を選択する。
define(_PARAEDIT_LINK_POS, '$1$link$2$3'); // <h2>の後
この位置以外にも数種類の位置が選択可能。詳しくソースに例が載っている。
template を全ページに適用
$ vi pukiwiki.ini.php ... $auto_template_rules = array( '((.+)\/([^\/]+))' => '\2/template', '(()(.+))' => 'template' ←ここの追加と、一行上の行末のカンマ ); ...
templateを編集する場合は rules.ini.php の一部を以下の用にコメントアウトする。こうすることによりページ作成日の日付やページ名が自動で反映される。date ? 等の扱いの問題。
$str_rules = array( 'now\?' => format_date(UTIME), 'date\?' => get_date($date_format), 'time\?' => get_date($time_format), '&now;' => format_date(UTIME), +// '&date;' => get_date($date_format), '&time;' => get_date($time_format), +// '&page;' => array_pop($page_array), '&fpage;' => $vars['page'], '&t;' => "\t", );