差分表示


* PyukiWiki に関するメモ。
[CR]
RIGHT:&date(Y-n-j[lL],2006-02-23);
[CR]
もともとは [[PHP>http://www.php.gr.jp/]] に慣れようかなという思いもあって
[[PukiWiki>PukiWiki:FrontPage]] をちょっとさわってたのですが、
いざ自サイトを [[PukiWiki>PukiWiki:FrontPage]] にしようと思ったら PHP が
使えなかった...
いや知ってて安いレンタルサーバーのコースを選択してたわけですが、
使えるコースにいざ変更しようと思ったら、一旦、今の契約を解除して
新規に契約し直すしかないというのにめげたのでした。
しかたないので、今の状態でも使える Wiki を、と探すと運よく
perl で書かれた [[PukiWiki>PukiWiki:FrontPage]] クローン(?)の
[[PyukiWiki>PyukiWiki:FrontPage]](v0.1.6rc2)に出会え...
つーことで、ちまちまと [[perl>http://www.perl.com/]] を
勉強中(なにか間違っているような気は、する^^;)
[CR]
~
[CR]
ちなみに、公式サイトとかは、
[CR]
- [[PyukiWiki公式サイト>nekyo:FrontPage]]
- [[PyukiWiki共同開発サイト>PyukiWiki:FrontPage]]
[CR]
開発者は [[Nekyo>Nekyo:FrontPage]] 氏で、
v0.1.6からは共同開発体制になり
主にななみ氏が、がしがし開発されているよう。
最新版は[[PyukiWiki共同開発サイト>PukiWiki:Download]]のほうにある
(2006-03-06現在、v0.1.6rc7)。
[CR]
[[ロードマップ>PyukiWiki:ロードマップ]] をみると、結構早くv1.0になるようで
(8月)、予定されている機能も楽しみ.
(これらが実装されると、このページの内容はかなり不要になるし^^;)
[CR]
[CR]
[CR]
** &date(Y-n-j[lL],2006-02-20); インストールについて
[CR]
(以下、v0.1.6rc4,5付近で記述。バージョンがあがると事情は変わるかも)
[CR]
[CR]
初めてインストールする場合は、[[ダウンロード>PyukiWiki:Download]]した圧縮ファイルを
展開し、まずはreadme.txtを読む。~
で、pyukiwiki.ini.cgi の諸設定を
――最低限パスワードは変更しましょう
 $::adminpass = crypt("pass", "AA");
の "pass" を自分(達)専用のパスワードに変更――し、
readme.txt に沿ってサーバーに必要なファイルを転送し、
転送したファイルの&ruby(パーミッション){属性};を設定。~
[CR]
(プロバイダ/サーバーによるだろうけれど、
己とこの場合、
Win機で [[FFFTP>http://www2.biglobe.ne.jp/~sota/ffftp.html]] 
で丸ごと転送し、index.cgi のみ属性を755に変更...でもいけてるよう)
[CR]
あと、pyukiwiki.ini.cgi の設定についていくつか。~
といっても pyukiwiki.ini.cgi のコメントを見て、自分の好みに
設定するだけ、なんだが^^;~
バージョンが変わると設定事情も変わるので、以下は v0.1.6rc4 について、だけど
(0.1.6rc2~rc4の間でも結構増えてるし)
[CR]
- $::wiki_title に自分のWiki(サイト)名を設定する。
- 自分用のロゴ画像を用意した場合は、$::logo_??? のあたりをそれにあわせて修正。
- $::modifier, $::modifierlink を自分の都合にする
(たぶん...元のままのほうがよいのか、でないほうがよいのか、ちょっと扱いに自信なし)
- WikiName(大文字小文字交じりの単語)の頁への自動でリンクがいらない場合は
 $::nowikiname = 1;
にする。おそらく日本人の習慣的にはあまり有用じゃないような気も。とくに
多人数で使うWikiとしてでなく、個人サイトなCMSとして使う場合、
勝手に新規頁を作るエントリが増えるのは好ましくないかも、で。
- 個人サイトとかで、他人にページを勝手に作られたくない場合は
新規ページ作成時にパスワード入力必須の指定、
 $::newpage_auth=1;
をする。(現状、まだ、条件によって不完全な模様... )
- 最終更新日や最近の更新/更新履歴で表示される日付に時間がつくのが嫌な場合は、
 $::lastmod_format="Y-m-d(lL)";
 $::recent_format="Y-m-d(lL)";
のように、時間の指定を外して日付の指定だけにする。~
場合によっては日もなくして年月ってのもありかも。
日付/時間の指定はいろいろあるので、説明をみて好みに設定してみれば、で。~
(気にしすぎかもしれないけれど、具体的な更新時間の痕跡が目に見えるのは、
職場や取引先の会社の人間に個人サイトがばれちゃってる身にはちとつらいのね^^;)
- パスワード必須状態で、でもゲストからのコメントや掲示板書き込みはできてほしい場合は
 $::writefrozenplugin = 1;
にする。
[CR]
その他いろいろあるけど、説明みて好みにすれば、で、...
(このサイトの場合、skin/ 以下の css & cgi を弄っちゃってて、
(そのあと増えた)便利な指定のいくつかは効かない状態になってしまってたりon_)
[CR]
[CR]
[CR]
** &date(Y-n-j[lL],2006-02-20); 編集をパスワード必須にする
[CR]
個人サイトなので、勝手にページを増やされたくないなあ、と
思うわけです。~
新規作成については、パスワード必須のモードが追加されましたが、
日記等、プラグインからの新規ページでは無効の場合があるとのことだし、
インストール直後の既存ページでは凍結されていないものもまま
あったりで、また、凍結の解除ボタンがあるのでご操作する可能性も
(己は)0でなく... で、このサイトでは edit.inc.pl を弄って、
編集なら必ずパスワード必須にし、凍結解除ボタンも
取っ払ってしまいました。
[CR]
edit.inc.pl でやったことは、
sub plugin_edit_action
の最後のelse中の&plugin_edit_editformの最後の引数のadmin=>0をadmin=>1にし、
sub plugin_edit_editform 中の my $frozen を=1にして、常時(凍結状態でなくても)
凍結状態ということにし、
また解除できないようにするために2箇所(
sub plugin_edit_editform_pukilike と sub plugin_edit_editform_pyukiwiki
)から、チェックボックスの指定
 <input type="radio" name="myfrozen" value="1" (略)
 <input type="radio" name="myfrozen" value="0" (略)
の2行を
 <input type="hidden" name="myfrozen" value="1">
に置き換えました。
[CR]
...初期状態で凍結されていないページでが
ナビゲーターに"編集"と"凍結"が現れたりするのはちょっとみっともないけれど
己が使う分には、とりあえず、で。
(wiki.cgi を弄りたくなかったし)
RIGHT:&date(Y-n-j[lL],2006-02-26);ラジオボタンを残さずにすむように修正。
[CR]
※ でも、実は、listfrozen というプラグインが標準装備されてるようで、
 ?cmd=listfrozen
を実行すれば、ページリストみながら一括で凍結・凍結解除が出来たよう...~
デフォルトで1ページ1ページ凍結して回らなくてもよかった模様~
(なにやってんだか>己...ま、解除できなくするのは己には必要だし、で^^;)
[CR]
[CR]
[CR]
** &date(Y-n-j[lL],2006-02-20); サイト全体に対するロボット検索の禁止
[CR]
 Wikiを更新したり、プラグインをいろいろ弄ったりしてる場合、
いきなり本サイトを弄ってお試し、ってわけには行かないので、
実験用の(隠し)サイトを用意したりしてるわけです。
[CR]
で、これらは基本的に未公開だしリンクさえ張られなければ大丈夫な
んでしょうが、多少、念をいれて、ロボット検索避け、を記述しておきたいなあ
と思うわけです。
[CR]
~.skin.cgi にてhtmlのhead生成があるのでそこに追記すりゃあえーだろと、
やってみましたが、実はすでに PyukiWiki のほうで Editや検索ページ対策で
全ページにロボット歓迎/避けどちらかの<meta>タグが組み込まれるように
なっていたのでした...~
避け/歓迎を両方かいたらどうなる?... なんてこと考える暇あったら修正で、
ま、判定があるわけだから、逆に言えば、その判定の箇所に変数で判定を1つ
追加すればいいはずだ、で、みてみれば楽チンに。
[CR]
pukiwiki.ini.cgiに
 $::no_robots=1;
のようなロボ禁指定の変数を用意しておき、lib/wiki.cgi中の
 sub meta_robots
内の最初のif文の||条件に
 || $::no_robots != 0
を追加して、あと、同様に 
lib/autometarobot.inc.pl 中の meta_robots にも追加、
で、とりあえず、
 <meta name="robots" content="NOINDEX,NOFOLLOW,NOARCHIVE">
 <meta name="googlebot" content="NOINDEX,NOFOLLOW,NOARCHIVE">
が入る模様。
[CR]
※ wiki.cgi は弄りたくなかったのだけど...~
要望したほうがよいかな....
[CR]
[CR]
[CR]
[CR]
** &date(Y-n-j[lL],2006-02-20); サイドメニューの切り替え
[CR]
このサイトでは、メニューは上に配置して、横のメニューは右にして
ページ本体の種類で切り替えるようにしていますが、
その切り替えに PukiWiki の includesubmenu もどきを用意して
おこなっています。(ものは[[倉庫/pyukiwiki]])~
[CR]
includesubmenu は MenuBar でのみ機能する状態...なので、
MenuBarには #includesubmenu だけにして、
上のメニューは pukiwiki.skin.cgiを弄って別のページ(HeaderMenu)を
表示しています。~
...なんか自分でもしっくり来ない感触が残りますが(ページ名が気にいらないとも)。
[CR]
※ [[開発サイトのロードマップ>PukiWiki:ロードマップ]]
をみてると、MenuBarの拡張が予定されているようなので、そちらのほうが
まだしっくりきそうな気も。
[CR]
[CR]
RIGHT:&date(Y-n-j[lL],2006-02-24); ※ sitemap機能はMenuBarでのみのようなんで、SubMenu 側にページ一覧を記入していると使えないのだったon_
[CR]
// RIGHT:&date(Y-n-j[lL],2006-02-24); Calendar関係弄ってて、月ごととか自動生成関係のページはMenuBarからだと大丈夫でも、SubMenuに設置するといろいろ不具合が、出る....ちょっと泥沼...
[CR]
[CR]
[CR]
[CR]
** &date(Y-n-j[lL],2006-02-20); 無理やり html
[CR]
Wiki中に無理やりhtmlタグを記述するためのプラグイン、
 &htm(タグ);
をでっちあげてみたり。
&htm(タグ);を書けば単純に<と>をタグくっつけて、<タグ>を埋め込むだけという...
Wiki書式の意義を思えばかなり本末転倒な存在なので、使わないほうがいいのだけど^^;
~
というか、不特定多数が書き込み可能な環境では絶対 plugin フォルダに
入れちゃまずい plugin だわな。(公開しないほうがいいんだろうなあ)
[CR]
[CR]
[CR]
[CR]
** &date(Y-n-j[lL],2006-02-26); rss で通知するページを限定する
[CR]
mixi の外部日記の設定で
 http://hogehoge/?cmd=rss10
なんてすると、サイト全体の変更が通知されてしまいちと慌ててしまったのでした。
で、(v0.1.6rc?での) rss10.inc.pl をみると、
 if(&is_readable($title) && $title!~/$::non_list/) {
という見せないページをはじく処理があるから、
 if($title =~ /\d\d\d\d-\d\d-\d\d/ && &is_readable($title) && 略
のように、とりあえずページ名に日付 ????-??-?? がついている場合だけ
okということにして対処。
条件直埋せずにiniあたりで設定できるように変数でやったほうが、と
か、思うもとりあえず己だけなら、で。
もちろん、rss10.inc.plを直で書換えたわけで
なくrss10hoge.inc.pl とかにコピーして別プラグインとして用意。
~
(できれば、ファイルの日付でなく、ページ名の日付でソートして出力
したい気はするけれど...)
[CR]
※ じつは rss10page プラグインなんてのが最近増えていた模様...
ちょっと用途が違うぽいけれど..
[CR]
[CR]
あ、と。~
Rssリーダーを自分の環境に入れてみたり。~
自サイト情報やよそ様をみたり...で、やっぱりMenuBar等はいらないよ
なあ、で、上記 if条件の /$::non_list/をいじることで...~
さすがに一覧にもページが出なくなると面倒なのでnon_listとは
別に $::rss_non_list のような変数を用意して置き換え、
pyukiwiki.ini.cgi に $rss_non_list=条件 を
($non_listのコメントを参考に) 追加して。
ちょっと記述が長い... 許可ページ条件も併用したほうがよいのかも。
[CR]
それと、頭でわかっていたつもりでも
いざ専用ツールで情報表示すると、更新時間が一覧表示されると
やっぱり気になるなあ、で、ためしに、先のファイル中の
 my $date = $1 . "T" . $2 . sprintf("%+02d:00", $gmt);

 my $date = $1 . "T" . '00:00:00' . sprintf("%+02d:00", $gmt);
にしてみました。
こんなことするくらいなら rss10.cgi.pl を削除すりゃ
ええやん、て気もしてくるけど、
はてなの日記とか他をみると、全記事 09:00 だったりで
世の中そんなものなのかもな、で、よしとしとこー。~
(ま、その気で調べりゃすぐわかるとしても)
[CR]
[CR]
**
[CR]
----
#comment