Top > 管理 > Pukiwiki改造
Last-modified: Mon, 14 Jun 2010 10:10:36 JST

Pukiwiki対応メモ Edit

Pukiwiki」のページと内容にカブリ有り。いつか統合か。


正確には、みこさん作成のPukiWiki Plus!を使用しています。

スキンについて(主にajax対応)
http://totofund.com/index.php?%E8%87%AA%E4%BD%9C%E3%82%B9%E3%82%AD%E3%83%B3

http://pukiwiki.sourceforge.jp/dev/?PukiWiki%2FPlug-in%A4%CE%BB%C5%CD%CD

2007/12/07 Edit

外部リンクに付く画像が文章とくっつきすぎるので、余白を加えた。 /image/plus/ext.png

2007/12/23 Edit

browsershotsによるチェック。便利なサイトがあって助かる。Windows+IE6,IE5で大きくレイアウトが崩れる。MacOS+FireFox2はサイドバーがはみ出す。

Windows+IE6は救わなくてはいけないので、ヘッダ部分をdivだけで構成することをあきらめて、tableタグへ変更。また、bodyと全体devへのCSSでの指定(margin:?px auto;)では、全体が中央に来てくれないので、余分にdivで囲んで、align属性加えておく。
余分なdivは必要ない。http://www.mozilla.gr.jp/standards/webtips0004.html。margin:?px auto;と、IEバグ用にtext-align:centerを同時に指定する(親要素にね)。 2008/01/04。

5年ぶりにhtmlを触っているけど、まだこんなレベルなんだなぁと落胆気味。

ヘッダ部分など、1回しか出てこない部分はCSSにするメリットもそれほどないので、skinファイルにstyle属性で直接書き込んでもそれほど問題あるまい(サーバが処理し通信するデータ量は増えるのだろうけど)。2回以上同じ内容を各部分はすべてCSSで。

2008/01/03 Edit

mimetexプラグインインストール。今のホストはXREAで、Linux用のコンパイル済みバイナリをアップロード。

エラー時は、以下をチェック

  • 実行できない
    • パーミッション
      • 上のディレクトリのパーミッション
      • cgiファイルそのもののパーミッション
  • cgiエラー
    • バイナリをFTPでアップロードするときに、テキストモード(アスキーモード)になっていないか。
      • FFFTPは、デフォルトで.cgiの拡張子がアスキーモードとなる。
  • 数式を複雑にしていくと(文字数を増やすと)、エラーになる
    • mimetex本家のcgiではなく、設置したcgiを呼び出しているか。
      • mimetex.inc.phpの中で指定している

2008/01/04 Edit

minicalendarプラグインを修正。

  • 94行目辺り。ページの無い日付は、リンクにしない(閲覧のみのサイトとしての配慮)。
  • 155行目辺り。月の一覧表示のときに、右側に大きく余白が開くのを修正。

2007/01/04 Edit

区切り線を細く。2px以下にできなくて、片側を背景色と同じにして乗り切ろうかと思ったが、border-styleに対して、noneではなくhiddenを使うと細くできた。

2008/01/05 見えないテキスト? Edit

主要なブロック要素の背景に色をつけて、フォントサイズの変更などに対応できるかのチェック。

ヘッダやフッタはほとんど画像で構成しているが、フォントサイズを大きくすると、フッタの高さが崩れる。ツールバーの画像の間にスペース文字が入っているのではないかと思われる。余分なスペースや改行、インデントを除去していけばなくなるとは思うが、ブロック要素にfont-size:1pxを指定すると崩れなくなる。とりあえずこれでよし。他に直すところがいっぱいで… (T-T

2008/01/05 <FORM>の<INPUT>欄 Edit

FORMのINPUT欄に対して、size属性で文字数を指定している場合、ブラウザのフォントのサイズ変更でINPUT欄の大きさが激変する。親のブロック要素にwidthで大きさを指定していると、IE7,firefox2.0だとはみ出す。IE6だと、指定しているにもかかわらず、親の大きさを広げる。結局、floatによる2段組が崩壊する。

コメント欄は2段組を破壊して致命傷になるので、div.commentformに対して、泣く泣くフォントサイズ絶対指定font-size:14pxを断行。ついでに、ヘッダにある検索フォームも14pxを指定。私用ではあるが、div.edit_formにも14pxを指定。

2008/01/13 minicalendarプラグインの月別表示の調整 Edit

minicalendar.inc.phpを自作用フォルダへコピーして修正。左側にカレンダー、右側に内容表示という構成をtableタグで行っているが、divタグへ変更。内容領域の幅はトップページと合わせる。

2008/05/08 Edit

minicalendar_viewerの大改造

  • 一覧表示のとき、途中までで文章を切る。
  • 一覧表示での日付をページへのリンクとする。
    • 管理に書いたとおり、CSSのinheritが使えなくて見た目がイマイチ

2008/05/10 作成日時、更新日時 Edit

wikiのデータとして、日付を持っているわけではなく、ファイルシステムの更新日時が使われているようだ。

作成日時をキープして、本文更新時は更新日時のみ変更して、コメント付けでのページの変更は、更新日時が変わらなければベスト(これだと、ファイルシステムと別でデータもつしかないよね)。

[TODO]

2008/05/10 サイト全体のカウンタ設置 Edit

gcounterプラグインを使用した。全体のアクセスに対して、各ページがどれくらい参照されるか知りたいため(当然、興味もたれる内容を充実させたいもんね)。

カウンタのログファイルは(サーバーの都合上)編集しづらい。もう、めんどくさいので、ファイルを全て削除!

2008/05/11 ソースコードのハイライト Edit

PukiWikiPlus!同梱のcodeプラグインを使ってきたが、行番号が崩れる。 GeShiとPEARのcodehighlightが有名みたいだ。

2008/05/11 PukiWikiPlus!のTITLE:を使い倒したい Edit

Pukiwikiのデフォルトスキンで表示される、ページ名は使ってない(<h1>~</h1>で表示されるところ)。変わりに、本文に、アスタリスクひとつでページ名に相当するタイトルを入れている。この部分にページ名か、PukiwikiPlus!のTITLE:を使えば、自動化が進むはず。

  • メリット
    • アスタリスク1個、2個、3個の見出しを1つページ(タイトル)で使ってしまっている。これを3段階使えるようになる(たまに困っていた)
    • タイトルの部分が適当にでもいいから、自動で作成される
  • デメリット
    • PukiwikiPlus!標準から外れていく

taruさんのページを参考にして、minicalendar_viewerの一覧表示で長い文章を途中でカットする方式にすると、インクルード元にTITLE:がないと、インクルードしたページのTITLE:が$newtitle変数に代入されてしまう(?)。

2008/05/15 TITLEを使い倒したい2 Edit

recentプラグインで列挙されるのも、ページ名ではなく、タイトルとか。showcase.ini.phpもよさげ

2008/05/15 コメント欄をスキンに埋め込めないか Edit

単純に、スキン上でdo_plugin_convert('comment');はダメ。設置自体はできるが、書き込みができない。

コメントは、該当ページのソースに書き込まれる。スキン上でこのプラグインを呼び出すことは、プラグインがどこに書き込んでいいのかわからなくなっているような状態のはず(間違ってたら訂正欲しいです)。

ということは、違うページに書き込む、pcommentプラグインならいけるのではないかと。数ヶ月前に少し試してみた記憶では、デフォルトでは、書き込み制限をかけているときに、commentプラグインは書き込めるが、pcommentプラグインは書き込めなかったので、ここにも修正が必要と思われる。

ちょっと調べたら同じことやってそうな人発見 http://nazuna.sumomo.ne.jp/pukiwiki/lib_1.4.5_view/?pukiwiki 参考にさせてもらって pcommentでトライだ。

2008/05/16 スキンへのコメント欄の埋め込み Edit

昨日の続き。commentプラグインをスキンに埋め込むのはNGだったので、pcommentでトライ。結果はあっさりオッケー。ページ名を変える場合も、コメントページは自動でついてくる。あとは、書き込み制限がかかっている時も、pcommentで書き込みできるようにすること。

コメントがまだ無いときに書き込もうとすると、ページの新規作成することになるが、単なる書き込みの権限とは別のロジックになっているのか調べないとわからない。


余談。commentプラグイだと、本文を編集したわけでなく、コメント欄への記入だけでも、更新があったことになってしまう。pcommentだと、本文の更新時刻は残る。recentプラグインの表示は、コメントの書き込みがあったこともわかる。用途次第だが、こちらの方が嬉しい人も少なくないだろう。

2008/09/08 Edit

aliasプラグインを追加。サイト開設のゴタゴタの時に名前を変えたページに対していまだにアクセスがあるのでをこっそりと(?)リダイレクト設定。

2010/06/07 Edit

社内の部品データベースをPukiwikiベースで作っているのだが、ページ読み込み部分をオーバーライドしようと考えていて、readプラグインの呼ばれ方とその動作を調査中。readプラグインの差し替えだけで済むか、本体の改造をしなければいけないか見極めるつもり。

プラグインとコマンドの指定が無い場合(クエリストリングにページ名のみの場合)、lib/init.phpの、

// cmdもpluginも指定されていない場合は、QUERY_STRINGをページ名かInterWikiNameであるとみなす
if (! isset($vars['cmd']) && ! isset($vars['plugin'])) {

	$get['cmd']  = $post['cmd']  = $vars['cmd']  = 'read';

	$argx = explode('&', $arg);
	$arg = is_array($argx) ? $argx[0]:$argx;
	if ($arg == '') $arg = $defaultpage;
	$arg = rawurldecode($arg);
	$arg = strip_bracket($arg);
	$arg = input_filter($arg);
	$get['page'] = $post['page'] = $vars['page'] = $arg;
}

ここで設定されている。

2010/06/10 Edit

cacheディレクトリにある、拡張子がrelは、リンク先をまとめたもの。拡張子がrefはバックリンクのリスト(自分を参照しているページのリスト)。

2010/06/14 Edit

ページの書き換えは、cmd=edit。次のクエリ引数を理解する必要有り。

  • digest(編集前のページソースのmd5値。edit.inc.phpの中のplugin_edit_write()で競合の検出に利用される)
  • ticket (md5(MUTIME)という値。html.phpのedit_formで作られている。使われ方が不明)。
  • id(たぶん部分編集のキー。全体編集の場合は空文字列になっている)

editプラグインでは、lib/file.phpのpage_write()して、header('Location:XXX');で書き変えたページに飛ばす。ページ消去も同様。

page_write()からは、file_write()が、リンク情報の更新は、lib/lib.phpのlinks_update()へ伝播する。



コメント

適当に書いて頂いて構いません。スパム対策があるので、書き込めない場合があります。また、ボタンを押した後にしばらく時間がかかります。

新規コメント(ラジオボタンで親コメント選択可)
お名前
  • oKLQIaaLiRYyNN -- qmnplqxrgp 2009-07-23 (木) 19:16:42
  • oCOItmBNZ -- wdseteabzlt 2009-07-20 (月) 08:10:31
  • UUEJmZAZA -- pkkdyf 2009-06-13 (土) 00:02:45
  • KJbNAGxgd -- nwfauw 2009-03-20 (金) 14:48:36
    • OKrLaSnTsjHl -- sasfdgdwd 2009-04-04 (土) 05:21:47
  • riGtCdIrdgVqdoEHj -- ihuzmsokn 2008-12-02 (火) 11:57:47