管理 | 差分 || 新規作成 || カテゴリ一覧 | ページ一覧 | 更新履歴 | 差分履歴 || アンテナ || PUT || more≫ ≫omit
shortcut: FrontPage || WikiLab | StoreRoom/最新 | 日々の泡 | むず痒いパソコン日記/最新 || HelpPage ||[edit]
category: WikiLab/WorkReport

WikiLab/WorkReport/0 - wiki ことのはじまり。2002/10/07-2002/11/02

LastModified :
[管理]

wiki ことのはじまり。2002/10/07-2002/11/02

2002/10/07(Mon) wiki を拾う。

[TOP↑] [管理]

大分前、まだ自分のサイトを持つ前だったかもしれない。 ある掲示板に「みんなでWebサイトをつくるCGIだよ」というような意味の書き込みがあって、URLが張られていた。 どういう意味なんだろうと思って行ってみると、「自由に書き換えてみてください」という但し書きのある、テキストエリアのあるページに辿り着いた。

なんだかよく解らないので、しばらくウロウロして、何もしないまま引き返した。 小心者なので、通常の掲示板にだって、よほど必要に迫られなければ書き込まない。

* * *

今日、何か調べ物をしていて、Google 検索で辿り着いた先が、ある wiki 内のページだった。 「これって、随分前に見た "誰でも自由に編集できる" とかいうやつかな?」。

それでも相変わらず、「よく解らない」。 「本当に、"誰でも" "何でも" 自由にやっちゃっていいの?」 「一定の条件下にある、誰でも」とか「ある限度内では、何でも」ではなく? 何か書いて送信して、「あなたには書き込みの権利ないです」とか怒られたら、なんかメゲる。 別に実際書き込もうと思ったわけではないけど。

小心者は「本当に "誰でも" "何でも" なのか」を確かめるために、自分の所に Wiki を設置して実験を試みることにした。

なるほど、こういうものなのか。面白い。

ただ、やっぱりこのシステムは解りづらい。そして閲覧者に、少しの勇気を要求する。 とても小さな会員制の掲示板を持っているんだけど、例えばそのヨコにただ Wiki を設置して「はい、お使いください」と言っても、誰も何をしたらいいのか判らないことになりそう。 少なくても、掲示板を始めた時みたいにはいかないだろう。

* * *

それにしても、なんだか沢山あるクローン。まずは基本から、というワケで、「日本で一番ポピュラー」とどこかで紹介されていた YukiWiki:FrontPageを設置。 でも色々探してる途中で、「ファイルアップ機能付き」とか、「一覧をディレクトリ構造で表示できる」とか、「それイイ!」というのが一杯あった。 YukiWiki がベースの NaneyOrgWiki っていうのがちょっと気になったんだけど、配布はされてない模様。

…いいなあ。賢いヒトは、探さなくても自分で好きなようにできちゃうのね。

* * *

ちょっと思ったこと。

こんなシステムなのに荒れていないように "見える" のは、「不快な書き込みがあれば、誰でも消せる」からなのかしら。一方、「全部消しちゃう」なんていう荒らされ方をしてても、通りすがりの第三者には「だた寂れてる Wiki」のようにしか見えないわけで…。

* * *

ところで、ひとつ問題。なぜかデータ保存のディレクトリを指定できない。 デフォルトでインストールディレクトリに保存されるようになっていて、そのままなら動く。 でも、下階層にフォルダを作ってそこに入れようとすると、[software error]と言われてしまう。 さすがにパスの記述ミスとか、パーミッションとかは念入りに確認したので、そんな問題ではないと思うんだけど。また cgiwrapper とかの問題かしら。

補足:cgiwrapper_ っていうのはね。

[TOP↑] [管理]

使っているプロバイダでは、cgi-bin ディレクトリ内の cgi を呼び出すときは、実際のディレクトリ構造とは違うURLで呼び出すことになっている。 一方、cgi-bin 以下の cgi 以外の普通のファイル、テキストや画像を呼び出すときには実際のディレクトリ構造通りのURLで呼び出さないと、CGI として実行されてしまう。 もちろん、画像ファイルなんかを CGI として実行できるはずはないので、エラーが出る、というわけ。

2002/10/08(Tue)

[TOP↑] [管理]

知人約1名(with NN4.x)に wiki お披露目。

2002/10/09(Wed)

[TOP↑] [管理]

後日考えたこと。
もしかしてまた cgiwrapper かしら? 一応、「巧くいかなかったらまずソコを疑う」のが通常だから、パスをチェックしなかったはずはないと思うけど。

2002/10/10(Thu)

[TOP↑] [管理]

[HTMLモード] というのが試してみたくて、[YukiWiki] の機能追加版の [WalWiki] を設置してみる。 …が、どうやると [HTMLモード] になるのかが解らない。

スクリプトを眺めて、使用できるタグを指定するところは見つけた。 ついでに、指定したページのみで使えることも判った。 でも、指定したページでタグを書いただけではダメなのである。 なんかもう一つ手順があるんでしょうね。

付属のドキュメントでは探せないので、配布元のWiki内を検索してみるが、やっぱり「HTMLモードがある」ということしか判らない。 配布元の Wiki 内にいながら、Google で [WalWiki HTMLモード] で検索する。 …。あらら。[YukiWiki] の配布元のほうに 説明のページ があった。

そもそもこのページから [WalWiki] を見つけたわけだけど、

<HTML>だけの行から、</HTML>だけの行まではHTMLを直接記述できる。

YukiWiki:WalWiki

という説明をナナメ読みして読み違えて、普通の HTML タグ、<html><head><body> とかの <HTML> と混同してしまったのだった。いや、そう思って読めば、上の説明はとても意味不明なんだけど、ナナメだから…。

* * *

ところでやっぱり。wiki ってば、慣れないうちは非常に使いにくい。 書く分には申し分がないんだけど、他所様のページを読むとなると、迷路に入り込んだような気分になってしまう。至る所にあるリンクを踏んで、「?」となる。

例えば、[検索]の画面で、タイトルの[SearchPage]に張られたリンクを「何だろう」と思ってクリックする。 なんだか知らないが[SearchPage]を検索されてしまって、「見つかりません」と言われてしまう。 ソボクに、「…じゃあ、何でこんなところにリンクが張ってあるの…?」と思ってしまう。

InterWiki のリンクをそうと知らずに踏んで、行った先のCSSが元のページのものとよく似ていたりすると、 「外に出た」事にすら気付かないので、[一覧] を見て「さっきまで見ていたページはドコ!?」ってことになってしまう。

なにか用語らしきものにリンクが張ってあり、当然何か説明があるのかと思ってリンクを踏むと、 「私には解らない」議論が展開されてたりするし、だたひと言「テスト」と書かれていたりする。 外部への URL が1行書いてあって、だったらページ内に直接書けばいいのに、と思ったり。 用語の後ろに [?] のリンク文字列があると、これはもう、絶対に「解説」を期待してしまうんだけど、なぜか編集画面が出てしまう。

リンクをポイントして表示されるツールチップも、最初の頃はとても意味不明。 単語の説明らしきものが出ることもあれば、説明にしてはとても不親切なものが表示されることもあり、 なんでそんなものが出てくるのか全く解らず、「どういう冗談なんだろう」と思うこともある。

もちろん、WikiName を理解してしまえばなんと言うこともないんだけど、その WikiName がコトバの説明ではなかなか理解しづらい。

「読みたいものを探す」のも結構困難。はっきりと読みたいものが決まっているわけでもなく、「何となく興味のある周辺情報をうろうろ見て回りたい」というような場合、アルファベット順の[一覧]だけではなぁ。

2002/10/11(Fri)

[TOP↑] [管理]

「書くには申し分ない」のはちょっと訂正。 ながーい文書の途中にちょっと追加で挿入したい場合、その位置を探すのにちょっと難渋する、という程度なんだけど。

でも、そういう問題ではなくなってきた。Wiki の問題ではなく、NN4.x の問題。 なんと、NN4.x では、テキストエリア内に30,000byte までしか文字入力ができない という制限が発覚。 かなり困った。この制限を越えると、話の途中で「分家」ページを作らなくてはいけない。 [一覧] から探すという関係上、ページがむやみに増えるのは非常に好ましくない。

追記。

[TOP↑] [管理]

WikiLab/ざれごと なんと、NN4.x ではテキストエリア内の文字列を検索することもできないらしい。

2002/10/19(Fri)

[TOP↑] [管理]

ちょうど掲示板より Wiki で展開したほうが適している話題があったので、掲示板の皆さんに Wiki をお披露目してみる。すげぇ食いつき悪ぃ。っていうか、誰も使わない。

最初の wiki を設置して、使い方を覚えがてらまず作ったのはヘルプページだったんだけど、どんなに丁寧にヘルプを書こうが、読まない人には意味がない。むしろ丁寧に書かれすぎた長文 Help は読む気を失せさせるのも、経験上、とてもよく知っている。

結局、ほとんど私自身が「FTP機能付きHTMLエディタ」的に使ってラクをしただけ。 普通に HTML を書くとなると、「メモ書き」程度のものをわざわざアップするのも躊躇われるけど、wiki だと仰々しくならないので、本当に「ちょっとしたメモ」でも OK な感じ。

その後の経過。

[TOP↑] [管理]

ファイルアップ CGI を付けて以降、イベントがあったときなどのアルバムとして機能している模様です。 多分、「掲示板ではできない使い方」というのがポイントなんだろう。 掲示板にもファイルアップ機能は付いているけど、一つの書き込みに1ファイルなので、何枚も無造作に貼り付けるということができない。その点 wiki だと後から順番を入れ替えたりもできるしね。

2002/11/01(Fri)

[TOP↑] [管理]

「ところで[WikiAntenna]って、どうやって使うのよ」というわけで、[WalWiki]配布ページに行き、関係ないものを拾ってくる。フィルアップロード用のCGI。

せっかく画像をインライン表示できるのに、一々メールで送ってもらって私がリンクを張る、というのは便利さ半減だ。というか、面倒くさい。

そんなわけで、上のナビゲーションバーにファイルアップ CGI へのリンクを張る。

めも。wiki とは関係ない迷走。

[TOP↑] [管理]

ところで、この CGI はとても簡易なもので、例えば「自分のアップしたファイルだけを消す」というような制限ができない。配布元では、制限の機能を追加する予定はないという。 でもとっても親切なことに、そういうことがしたければこちらをどうぞ、とURLが張ってある。早速もらってくる。

しかし、よくありがちなことに、「高機能すぎて、使い方がややこしい」。 あまりなれないヒトだと、何がどうなってるのかわからないかもしれない、ということで、これは「自分用wiki」にくっつけることにする(なぜ素直に FTP を使わない)。

しかし、巧く動かない。例によって、「cgiwrapperのワナ」に嵌る。 アップしたファイルは CGI から呼び出されているので、パスは「CGI用」のパスでいいはずなのに、アップしたテキストファイルを開こうとするとエラーが出てしまう。 もちろん、「実際のディレクトリ構造」にしてもエラーが出る。 設置を諦めかけたところで、やっと気が付いた。 ちゃんと、「そういうプロバイダ用」の設定個所があった…。

「とりあえず動く状態」にしてから他の設定をいじろうと思ったので、「アップロード先ディレクトリ」を指定したすぐ下にある設定、「アップロード先ディレクトリの URL 表現:# @nifty 等のように,CGI 用のディレクトリとデータ用のディレクトリの# URL が異なるサーバの場合に指定します」という設定個所を見落としていた。

せっかくの心遣いを気付かずにいて、ゴメンナサイ。

2002/11/02(Sat)

[TOP↑] [管理]

「ところで[InterWiki]って、どうやって使うのよ」を調べに行って、また関係ないものを拾ってくる。CafeWikiという、別なWikiクローン。

ここで例の「データ保存のディレクトリを指定できない問題」再燃。 データディレクトリくらいは指定できなくても諦められるが、 こちらは、CSS や 画像のディレクトリも指定できない。非常に困る。

画像などは「実際のディレクトリ構造通り」のパスで、是が非でも、指定しなくてはいけない。 データディレクトリみたいに「cgi ファイルのカレント」では済まないのだ。 昨日学習したばかりなので、「特殊事情」を抱えた人用の設定がないか探すが、今度は本当にない模様。

しばし考え [modifier_url_data] でファイル内を検索すると、

my $file_skin = "$modifier_url_data/template.html"; 
my $url_stylesheet = "$modifier_url_data/template.css"; 
my $icontag = qq(<img src="$modifier_url_data/icon_cafewiki.png" alt="cafewiki icon" width="40" height="40">); 

この3箇所で呼び出されている。 順に一つずつ、ディレクトリを指定してみる。 と、一つ目の[template.html]を書き換えたときにだけエラーが出ることが判明。 幸い、[template.html]は使わないので、下の2つ、変数を使わず直接パスで指定する。えへへ、できた。

2002/11/02(Sat) 初めての改造。

[TOP↑] [管理]

昨晩というか、今日の早朝というか、新たに手に入れた [CafeWiki] を色々眺め回す。 ページをディレクトリ構造で保存できるし、ページの下に子階層のページにリンクがあるし、「閲覧してて迷子になる」ことはなさそう。

とても気に入ったけど、問題は CSS がNN4.xで崩れてしまうこと。 いつもの「気になるところをちょっと直す」程度では済まなそう。 ついでに、ページのアタマに見出しがインデックスされない。 う〜ん、けっこうあれ、便利なのに。

そんなこんなでスクリプトを眺めていて、前々からちょっと不満だった、 「見出しが2段階だけ」というのを何とかできないかと思い立つ。 というわけで、1277行目、

if (/^(\*{1,2})(.*)/) {
$h = length($1) + 1;
push(@result, splice(@saved),
'<h' . $h .'>' . &inline($2, @keys) . '</h' . $h . '>');

適当に見当をつけて、if (/^(\*{1,2})(.*)/) { ここを if (/^(\*{1,3})(.*)/) { に書き換える。 …正解だと思ったのに、エラーが出てしまいました。

しばらく考えてもエラーの原因が思いつかなかったので、一旦戻してもう一度書き直す。 動いた。…なんか余計な文字を削ったか足したかしたな…?

気を良くして、[YukiWiki]と[WalWiki]も書き換えようとして、ハタと困る。 例のページアタマのコンテンツの処理があるせいか、コードが違う。まず475行目からの

if (/^\*\*(.*)/) {
    push(@toc, qq(-- <a href="#i$tocnum">@{[&escape($1)]}</a>\n));
    push(@result, splice(@saved), qq(<h3><a name="i$tocnum"> </a>) . &inline($1) . '</h3>');
        $tocnum++;
} elsif (/^\*(.*)/) {
    push(@toc, qq(- <a href="#i$tocnum">@{[&escape($1)]}</a>\n));
    push(@result, splice(@saved), qq(<h2><a name="i$tocnum"> </a>) . &inline($1) . '</h2>');
        $tocnum++;

これを、ずぼらに書き直す。

if (/^\*\*(.*)/) {
    push(@toc, qq(-- <a href="#i$tocnum">@{[&escape($1)]}</a>\n));
    push(@result, splice(@saved), qq(<h3><a name="i$tocnum"> </a>) . &inline($1) . '</h3>');
        $tocnum++;
} elsif (/^\*(.*)/) {
    push(@toc, qq(- <a href="#i$tocnum">@{[&escape($1)]}</a>\n));
    push(@result, splice(@saved), qq(<h2><a name="i$tocnum"> </a>) . &inline($1) . '</h2>');
        $tocnum++;
} elsif (/^\*\*\*(.*)/) {
    push(@toc, qq(--- <a href="#i$tocnum">@{[&escape($1)]}</a>\n));
    push(@result, splice(@saved), qq(<h4><a name="i$tocnum"> </a>) . &inline($1) . '</h4>');
        $tocnum++;

どうやらダメらしい。見出しのアタマに * が付いてしまうだけ。 ところでちょっと気になることがある。何で、<h3>、<h2>の順番で書いてあるんだろう。 なんとなく、感覚的には、普通<h2>、<h3>の順番に書くと思うのは、私だけか? つまりこの順番には何か「意味」があるんじゃないかしら、というわけで、順番どおり書き直す。

if (/^\*\*\*(.*)/) {
    push(@toc, qq(--- <a href="#i$tocnum">@{[&escape($1)]}</a>\n));
    push(@result, splice(@saved), qq(<h4><a name="i$tocnum"> </a>) . &inline($1) . '</h4>');
        $tocnum++;
} elsif (/^\*\*(.*)/) {
    push(@toc, qq(-- <a href="#i$tocnum">@{[&escape($1)]}</a>\n));
    push(@result, splice(@saved), qq(<h3><a name="i$tocnum"> </a>) . &inline($1) . '</h3>');
        $tocnum++;
} elsif (/^\*(.*)/) {
     push(@toc, qq(- <a href="#i$tocnum">@{[&escape($1)]}</a>\n));
     push(@result, splice(@saved), qq(<h2><a name="i$tocnum"> </a>) . &inline($1) . '</h2>');
        $tocnum++;

どうやら意味があったらしい。 どんな意味かは知らないが、とにかくできたらしい。 ニコニコ (*^-^*)

…もしかして、「改行」も何かの文字で指定できるかもしれないかな、と野望を抱く。 確か改行できるwikiがどこかにあったはず、それをもらってきてお手本にすればよいのかも、と思うが、PHP のものしか見つからない。

ともかくも、すっかり朝なので一眠り。

* * *

別に私自身はそんなに改行したいとは思わないんだけど、やっぱり改行できないのはウケが悪い。 私の中の「厳格さま」は私に対してだけ厳格なので、改行したいヒトにはさせてあげたい。 そういえば、[CafeWiki]は、テキストエリア内の改行が有効なので、もしかしたらお手本になるかもしれない。 1328行目、push(@result, &inline($_, @keys)."<br>"); ここかなあと思ってみるが、じゃあ、「何か文字があったときに、改行」ってするにはどうしたらいいのか解らない。基本がないというのは悲しいことだ。

今度は、<em>なんかはどうやって書いてるんだろうと [YukiWiki] を眺める。660行目、

$line =~ s|''([^']+?)''|<em>$1</em>|g;

これらしい。 [$]やら[~]やらの意味を、一応手元の本で調べてはみるが、さらっと読んで10秒で「おおなるほど」というわけにはいかない。基礎知識のカケラも持っていないというのは、本当に憂慮すべきことだ。

ええい、メンドクサイ、悲しんだり憂えていても仕方がない。適当にマネして書いてしまえ。 とりあえず、\n で改行ということにして、すぐ下の行に書いてみる。

$line =~ s|(\\n)|<br>|g;

これでどうだ。

うわあ、なんとびっくり。正解だったようです。 エラーが出るのに備えて腹筋に力を入れてたのに、「マネをする」というのは素晴らしい学習法です。意味はそのうち解るでしょう。勘さえ良ければ。

ところでこの調子なら、打ち消し線も追加できそうな予感がしたが、困ったことが一つ。 私の中の「厳格さま」が、<s> の使用を却下するのだ。でも <del>は NN4.x では使えないのだ…。葛藤。

あ、でもそうか。Wiki のよいトコロを忘れていた。 暫定的に <s> にしておく、というココロ構えでいいんだ。 NN4.x がほぼ撲滅されたときに <del> が出力されるように直して、そ知らぬ顔ができるんだ。

* * *

つくづく、もうすこし賢かったらなぁ、と思う。 色んな Wiki に、色んな便利そうな機能がついてるんだけど、賢かったら自分にとって美味しいとこだけもらってきちゃったりとかできるのに。

NN4.x の 30,000byte 問題やら、書き込む場所を探すのが大変やらで、「パラグラフ指向の wiki」っていうのに興味があるんだけど、そういう改造なんかできちゃうと、嬉しくてしょうがない。

[[ なんかのもじれつ ]]と書くと、そこにテキストボックスができて、テキストボックスのすぐ上に文字列が挿入できる、というのでもよいんだけど。 ページが長くなったら、節の一番下にこのテキストボックスを入れておくとか。 [YukiWiki] や [WalWiki] にも一行レスのテキストボックスはあるけど、あれって、1ページに一つしか入れられないしなぁ。

もちろん、[CafeWiki] についてるページの階層構造化(とページの移動や名前の変更)や、 [PukiWiki] の機能でも楽しそうなのがあるし、そういうのって自分でできたら、便利なことこの上ない。

現実には、何ヶ月も前に買って開いてもいない Perl の本、しまいには「あれ、Perl の本って、買おうと思っただけでまだ買ってなかったんだっけ?」と本置き場を探し、「ああ、買ってはいたのか」という有り様。

* * *

欲しい機能で、ちょっとできそうかも、という「ページ内の見出しへのリンク」。 現状でも、URL を指定して、エイリアスに見出しを書けばできるわけだけど、できれば、[[ ページタイトル/見出し文字列 ]]みたいな書式でリンクできるといいよなあ。

* * *

そうして晩方。なぜか「取り消し線」でなく、「番号付き箇条書き」機能が「自分用 wiki」に追加されているのであった。

* * *

どこかの wiki で、ある機能の実装について、「整然としてしまうのが問題」「Wikiの面白さが失われる」というようなコメントがあった。 確かに、慣れれば Wiki の混沌はとても面白いんだけど、飛び込んですぐだと、「何がなんだか解らない」で終わってしまう。 どっちかっていうと、多少の「面白さ」は失われても、「掲示板並にとっつきやすい Wiki」っていうのが欲しいんだけどなぁ。

追記。

[TOP↑] [管理]

$line =~ s|(\\n)|<br>|g;

これ、() は要らないと後で知りました。

$line =~ s|''([^']+?)''|<em>$1</em>|g;

括弧内は、$数字 のところを示すようです。括弧が複数あれば、$1 $2 $3 … となるらしい。

おしまい。

[TOP↑] [管理]

そしてこの辺で、興味は KOROBO へ逸れたらしい。

再開。

[TOP↑] [管理]

そして再び KOROBO から戻ってきて、一部重複しつつ、とても読みにくい WikiLab/WorkReport へ続くらしい。

shortcut: FrontPage || WikiLab | StoreRoom/最新 | 日々の泡 | むず痒いパソコン日記/最新 || HelpPage || [edit]
select css: default | sakura | mono | greenheck | snow | NN4.x用(多分) || LinuZau!! | VikiWiki!? || others |

管理 | 差分 || 新規作成 || カテゴリ一覧 | ページ一覧 | 更新履歴 | 差分履歴 || PUT