Wikiは氏ね

ようこそ「Wikiは氏ね」のページへ! あなたは何人目のお客様かカウントしていません!

なんだこのページ

PukiWiki(1.4.7)の使いやすいんだか使いにくいんだかのよくわからなさにブチ切れてペナーが作ったページ。主旨はない。

PukiWikiで目についた事

遅い

覚え書きみたいなのを書き込むには、ページ更新、ページ読み込みの動作が遅すぎる。書き込み速度は知らん。

ユーザー側での対策

サーバー側での対策

分かりにくい

ヘルプの記法をざっと見ただけでは、さほどPukiWikiに魅力を感じられない。HTMLで書くのとどう違うのか? と思わせられる。

PukiWikiを使いこなすには、さらにプラグイン解説のページに目を通さなければならない。ここまでやって、やっとPukiWikiの有用性が見えてくる。

詳しい機能説明=プラグイン機能リファレンスになっていて、目的別機能説明になっていない。

よって、付属のヘルプだけで使い方を覚えるとなると、PukiWikiの仕様を体で覚えなければならない。Wikiは誰でも編集できますってのは半分ウソみたいなもんだ。

ヘルプが使いにくい

付属ヘルプそのものがWikiで書かれていて、デモンストレーションになっているのだが、これがかなりまずい。

まず、先に書いたけど遅い。マニュアルはキビキビ引きたいものだ。

あと、Web上に設置されるPukiWiki全てに付属するので、GoogleとかでPukiWikiについて検索する時に涙が出るほどヒットしてくる。まじめに邪魔。

それと、上で書いたが、肝心の便利そうな機能についてはプラグイン機能別リファレンスでしか記述されていない。ヘルプの内容の構成そのものも分かりやすいとは思えない。

記法が不便

PukiWikiはHTMLの知識なしでも、誰でも簡単に編集できるシステムである…と誤解してはならない。

はっきり言ってHTMLの知識はほとんど役に立たず、PukiWikiの仕様を新たに覚えなければならないと考えた方が正しい。

HTMLがページ内で使えないというのもあるが、PukiWikiの記法が一癖も二癖もあるところに自分はそれを感じる。

見出し要素の記法などは、実際に書く時スマートな記述になるが、整形済みテキストの記法がひどい。全ての行頭に半角スペースを入れろだなんて嫌ですやりたくありません。10行や20行に渡るテキストを貼り付ける場合、正規表現置き換えが出来るエディタを使いこなせる人でもないと、結構な作業をしなければならなくなる。しかも、これをやると編集結果にまでどうしても行頭にスペースが入る仕様。(ごめんなさい勘違い)そんな場合はよっぽどHTMLのPREタグの方が使いやすい。

それと、全体を通して改行が2つ連続していないと無視されるので、いわゆるコピペ文章を貼り付けると、編集結果が結構かなり変わり果てた姿になる。それが嫌で整形済みテキスト記法を使おうとするのだが…ッギャー!

関連:改行を2個以上続けて入れないと無視されるのですが…

情報がない

今の時代、情報が存在しないというわけではないが、正しく言うと「PukiWikiについて」の情報が見つからない。

まず、「PukiWiki」でGoogle検索すると、PukiWikiを使った個人サイトがバンバンヒットしてくる。いらねーよバカと、「PukiWiki 記法」でやると、個人Wikiのヘルプページが任せろ!と言わんばかりに大集合する。全部編集で削除して回りたくなる。

要するに、PukiWikiそのものについて解説しているページが、設置されたPukiWikiに邪魔されてなかなか見つからない。しかも、しらみつぶしに情報を探ろうとしても、検索結果に並んでいるページはなぜか軒並み重いので無駄にイライラする。

しかしそこは基本に戻り、PukiWiki公式サイトで情報を確認しようとアクセスすると、やっぱり重い。サイト全体がWikiかなんかで、リクエストのたびにページを生成しているのが原因だと思われる。

おまけに、公式サイトの質問箱一覧や、サイト内検索の結果リストなどは、記事番号だけがズラッと並ぶ。しかも重い。

総じて

これらを体験すると、なんでPukiWikiがWikiのスタンダードになってるんだ? と疑問を持たざるを得ない。おそらく「オンライン上でアクセスして誰でも編集する事が可能」という仕組みが歓迎されただけで、記法やその他は目を向けられなかったのではなかろうか。

まあていうか「PukiWikiがスタンダード」なんて、自分の脳内調査の話だけど。

とにかく、PukiWikiで自分達のデータベースを組もうと考えるなら、上記の問題にぶち当たる事を覚悟しなければならない事を断言しておこう。

PukiWikiをどうにかする

せっかく期待してたPukiWikiが、使いこなせずに終わるだなんて悲しい話。それもこれも、あれが分からない、この情報がみつからないの連続が問題なのである。じゃあ、極端な話をすればPukiWikiについての全てが載っているマニュアルさえあれば、上に書いた愚痴みたいなものは大体解決する。もちろんそれは、参照しやすく、表示速度が高速でなければならない。

マニュアルの形式にWikiは不適?

Wikiの解説ページの大半はWikiで書かれているが、多くの人が手を加える文章であるわけでもないし、Wikiである必要がない。全文検索機能がついてくるが、PukiWikiの検索結果一覧はページ名しか並ばないので不便。そんな事より全ページにわたって表示速度が干満で、ストレスの元になる。何度もページをめくって使うマニュアルの形式に、Wikiは向かない。

完成したマニュアルの形式には、HTMLで書かれた静的ページが適しているはず。

目的別リファレンスと利用例

現在PukiWikiに付属しているマニュアルには、プラグインで実現している機能について、プラグイン名がリストアップされたプラグイン解説として説明があり、「画像を貼り付けるには? ページを階層構造にするには?」という目的を中心にした書き方がない。

PukiWikiの機能の使い方が全部頭に入っている人間には関係ないが、誰でも編集できるはずのWikiがそんな態度ではいけない。誰にも編集してもらえないWikiなんか、重くて見づらい上に内容がないWebページそのものだ。

Wiki開発者も、そんなものがWeb上を埋め尽くす事など望んでいるはずがない。これが狙い通りだったらそれはそれで凄いが。

Wiki本来の機能をフルに発揮するには、目的別リファレンスは必須だろう。

また、見出し要素や整形済みテキストなどを、実際にどう使うべきなのか、利用例を解説付きで一緒に載せる必要がある。文章のレイアウト技術は、開発側から見て別問題だが、Wikiを編集する側から見ればレイアウト技術もWikiの機能も一緒であり、どちらが分からなくても編集できないのだ。

まあそこは、付属マニュアルが大体役目を果たしている。もうひとつ、「見出しとは」といった解説もほしい。

具体的なPukiWikiの問題対策

目に付いた問題のうち、実はこうこうこうすれば解決できる…という感じの問題について、知る限りの方法をここに記す。でも近いうちにFAQに統合予定。

遅い問題(ユーザー側での解決法)

思いついた事をサッと書き込む、ちょっとした事を追記するなどの場面で、応答の遅さによるストレスを軽減できそうな方法をここに書いておく。

覚え書きなどを書き残すのならば、ページにcommentプラグインやmemoプラグインを組み込んでおくといい。

commentプラグインは一行掲示板のようなものを、「#comment」とページに書くだけで設置できる。馴染みのあるBBSのような形式なのでWikiの編集を躊躇してしまう人も手軽に書き込めるだろう。

memoプラグインは、いわば、常に編集用フォームを表示してくれるプラグイン。書き込んで送信した結果は、編集用フォームの中に記録される。

ふたつとも、通常表示から編集画面に移るプロセスが省かれるのでそのスピードは圧倒的。表示に待たされる回数が3回から2回に減る。覚え書きに最適だ。

遅い問題(サーバー側での解決法)

CGIを使わず、サーバー側でmod_phpというものを導入すればスピードアップするらしい。

自分は過去にmod_perlの導入に挑戦して、組み込むところまではなんとかうまくいったんだけど、恥ずかしながらそのmod_perlを使ったPerlスクリプトの実行は未だに(2007/01/03)出来ていない。

mod_phpというのはApacheのモジュールってやつらしいので、An httpdなどでの利用は不可能。Apacheそのもののセッティングも結構レベルが高いので、オイラ程度の知識では火傷する。

なんか聞いたところによると、レンタルWikiみたいなものが存在するらしい。オイラみたいに設置がうまく行かなくてギャーギャー言っているのに向いているかもしれない。調べたらここに書く事とする。

PukiWiki勝手にFAQ

PukiWikiについて、とある疑問にぶつかった時、それは記法で解決できるのか、それか設定ファイルの書き換えか、それともプラグインで解決できる事なのか…これも、設計側と使用を熟知した人間にしか分からないところだ。

ここは、オイラがそんな場面に遭遇した時の記録みたいなもの。参考になれば幸い。

改行を2個以上続けて入れないと無視されるのですが…

1.4.7で確認。PukiWikiは、改行を2つ以上続けて入れないと無視される。実はバージョン1.4.4以降に限ってひとつずつで適用されるようになる。

情報元はこちら

設定ファイルを書き換える必要がある。(pukiwiki.ini.php)の425行目あたりの、

/////////////////////////////////////////////////
// Convert linebreaks into <br />
$line_break = 0;
この0を1にすればOK。

添付ファイルのファイルサイズ上限を変更したい

1.4.7で確認。pluginフォルダ内のattach.inc.phpをテキストエディタで開き、20行目あたりの

// Max file size for upload on script of PukiWikiX_FILESIZE
define('PLUGIN_ATTACH_MAX_FILESIZE', (1024 * 1024)); // default: 1MB

この部分の「1024*1024」で、アップロードファイルサイズ上限が1024×1024バイト(1MB)に設定しますって事になってるから、この数字を書き換えればいい。

凍結パスワードはどこで設定すればいいの?

1.4.7で確認。pukiwiki.ini.phpを開き、193行目あたりの

/////////////////////////////////////////////////
// Admin password for this Wikisite

// Default: always fail
$adminpass = '{x-php-md5}!';

// Sample:
//$adminpass = 'pass'; // Cleartext
//$adminpass = '{x-php-md5}1a1dc91c907325c69271ddf0c944bc72'; // PHP md5()  'pass'
//$adminpass = '{CRYPT}$1$AR.Gk94x$uCe8fUUGMfxAPH83psCZG/';   // LDAP CRYPT 'pass'
//$adminpass = '{MD5}Gh3JHJBzJcaScd3wyUS8cg==';               // LDAP MD5   'pass'
//$adminpass = '{SMD5}o7lTdtHFJDqxFOVX09C8QnlmYmZnd2Qx';      // LDAP SMD5  'pass'
ここの
$adminpass = '{x-php-md5}!';
の行を書き換える。

以下はここからの引用。

「pukiwiki.ini.php」ファイルの89行目を1にする。次に、あなたのPukiWikiのトップページ、あるいはFrontPageを開く。URLの最後に「?md5=pass」をペーストしてEnterキーを押す。この時、「pass」には、あなたが決めたパスワードを入れる。するってえと、「パスワード:c9b063ef84bb65bee726e3470db1aba9」(例)と表示される。この右側をコピーして、「pukiwiki.ini.php」の94行目と96行目のadminpassにペーストする。ただ、1.4.4の説明によれば、これは危険な手法らしい。

参考になりそうだが、「これは危険な手法らしい。」とか書いてあるのが気になる。

オイラは、ここを書き換える最、

$adminpass = '{x-php-md5}!1a1dc91c907325c69271ddf0c944bc72';
こうしてしまい、まともに動作せず困っていた。正しくは「!」が入らない。みんな注意してね('A`)

左側のメニューを編集したい

1.4.7で確認。一般のページと同様に編集できる。メニューの正体はMenuBarという名前のページだ。

Wiki上部のメニューの「一覧」をクリック、出てきたリストにある「MenuBar」をクリック。これで一般のページと同じように表示できる。あとは「編集」をクリックすれば編集ページに移動できる。

ページの一番上にWikiの名前を入れたい

1.4.7で確認。デカデカとFrontPageとか書かれても、なんのWikiだかわかんねーよ! その隣にWikiの名前を表示する方法。

設定ファイルの書き換えが必要。skinフォルダ内のpukiwiki.skin.phpをテキストエディタで開き、92行目あたりの

<div id="header">
 <a href="<?php echo $link['top'] ?>"><img id="logo" src="<?php echo IMAGE_DIR . $image['logo'] ?>" width="80" height="80" alt="[PukiWiki]" title="[PukiWiki]" /></a>

 <h1 class="title"><?php echo $page ?></h1>

<?php if ($is_page) { ?>
 <?php if(SKIN_DEFAULT_DISABLE_TOPICPATH) { ?>
   <a href="<?php echo $link['reload'] ?>"><span class="small"><?php echo $link['reload'] ?></span></a>
 <?php } else { ?>
   <span class="small">
   <?php require_once(PLUGIN_DIR . 'topicpath.inc.php'); echo plugin_topicpath_inline(); ?>
   </span>
 <?php } ?>
<?php } ?>

</div>
この部分の、
 <h1 class="title"><?php echo $page ?></h1>
この行が、FrontPageと表示させてるところなので、
 <h1 class="title"><?php echo $page_title ?> - <?php echo $page ?></h1>
こう書き換えてやればページ名の左にWiki名が表示されるようになる。

タイトルバーにあるWikiの名前を変更するには?

1.4.7で確認。設定ファイルを書き換える必要がある。pukiwiki.ini.phpの114行目あたり、

// Title of your Wikisite (Name this)
// Also used as RSS feed's channel name etc
$page_title = 'PukiWiki';
ここの「PukiWiki」を好みの名前に変えればいい。

なお、この設定はWiki内全体(スキンでWiki名を呼び出す時など)で効果を発揮する。

ページ右上のアイコンを別のものにするには?

1.4.7で確認。「PIKIWIKI」と書いてある、元素を連想させるあのアイコン画像をオリジナルのものに差し替えるには、デフォルト画像ファイルを上書きするか、別でファイルをアップロードした上で設定ファイルを書き換える必要がある。

デフォルト画像ファイルに上書きするのなら、imagesフォルダ内のpukiwiki.pngファイルに好みの画像を上書きすればいい。pukiwiki.gifではないので注意。

別のファイル名にしたい場合は、skinフォルダ内のpukiwiki.skin.phpを開き、15行目あたりの

// Set site identities
$_IMAGE['skin']['logo']     = 'pukiwiki.png';
$_IMAGE['skin']['favicon']  = ''; // Sample: 'image/favicon.ico';
ここの「pukiwiki.png」という部分を別の名前に変えて、imagesフォルダに同じ名前の画像ファイルをアップすればOK

どちらでも、画像のサイズは80*80固定なので注意。

ページのリストを作るのが面倒…

準備中

ページ内目次を自動生成する方法ってないの?

1.4.7で確認。ページ編集で可能。ページ内に「#contents」と書くだけで、ページ内の見出しを元に目次が自動生成される。もちろん各見出しへのリンクになっている。

この機能を使うには、見出しを使ったレイアウトが必要。

FrontPageってなんだ?

FrontPageはいわば、そのWikiのトップページ。Wikiの顔である。だから、そこにWikiの概要を書いておこう。

でっかくFrontPageって書いてあるだけじゃなんのページだかわかんねーよ! タイトルちゃんと書け! と思った、言われた、だけどどうすれば…という方は「ページの一番上にWikiの名前を入れたい」をどうぞ。

テーブルや箇条書きの中で改行するには?

1.4.7で確認。「&br;」という記号が、改行に置き換えられる。

|テーブル内で|改行の&br;テスト|

編集画面で上記のように書くと

テーブル内で改行の
テスト

こうなるはず。箇条書きなどでもこの方法が使える。

テーブルの中で「|」が使えない

1.4.7で確認。古いバージョンだと出来なかった覚えがある。テーブルの中に「|」を表示するには「数値参照文字」というものを使う。

「|」がテーブルの区切りとして認識されてしまうけどそうしたくない場合、代わりに編集画面で「&#x7c;」と書けば表示画面で「|」として表示されてくれる。これが数値参照文字。他にもいろんな記号、文字がこの形式で書ける。

|数値参照文字テスト|_&#x7c; ̄&#x7c;○|

↑これが ↓こうなる

数値参照文字テスト_| ̄|○

本家のFAQ「Q. 表(table)のなかで縦棒(|)の記号を使いたい」

付属ヘルプに数値参照文字についての記述があるが、実際の記号の書き方も載せてほしいところ。

荒らし来たらどうするんだよ!

1.4.7で確認。Wikiは荒らしに弱い。誰でも編集できるのがコンセプトだからだ。しかし、まったく無力かそうでないかは設定と管理次第だ。Wikiに限った話じゃないけど…。

PukiWikiが古いバージョンだと、添付ファイルのバックアップ機能がなかったり、それでいて誰でも削除できる設定になっていたりして、誰かがWikiにあるファイルを全部削除したりするので注意。

あと、いくらWikiだからって完全放置しない事。みんなで適当に書き込んでいったら不思議とコンテンツが綺麗に並ぶなんてことはないし、定期的に管理人が目を通し、管理する必要がある。それがコンテンツの荒廃を防ぎ、それが荒らし防止になる。それでも悪意のある参加者が現れた時に、即座にコンテンツを凍結する事ができるメリットもある、はず。

コンテンツ全体を凍結させるには、設定ファイルの書き換えが必要。pukiwiki.ini.phpの25行目あたり、

// PKWK_READONLY - Prohibits editing and maintain via WWW
//   NOTE: Counter-related functions will work now (counter, attach count, etc)
if (! defined('PKWK_READONLY'))
	define('PKWK_READONLY', 0); // 0 or 1
ここのdefine…の行を、
	define('PKWK_READONLY', 1); // 0 or 1
こうすれば読み取り専用になり、書き換えができなくなる。しつこい嫌がらせなどが続いた場合こういう対策が出来るように覚えておこう。

添付ファイル削除事件は体験談だけどあとはネット活動を通しての想像です('A`)

ページに画像を貼り付けるには?

1.4.7で確認。あらかじめアップされている画像を表示するのと、Wiki内に画像をアップして参照するのとで手順が違ってくる。

あらかじめアップされている外部の画像を表示するには、画像のURLを貼り付けるだけでOK。多分Iswebなど外部からの画像ファイルの参照を許可していないサーバからは無理だけど、それはここに限った話ではない。

Wiki内にアップロードする場合は、少し手間がかかる。

まず、画像を貼り付けるページを表示し、ページ上部にある「添付」から、ローカルに保存してある画像をアップロードする。

そして、ページ内の画像を表示したい位置に、「&ref(ファイル名);」と記述するか、「#ref(ファイル名)」と記述する。前者は文中に挟み込むように書けるが、後者はブロック要素なので、

画像を貼り付けます。
#ref(sample.png)
こんな感じで書きます。

このように一行使う必要がある。このブロック要素の方は、本文を回り込ませる事が出来るのが特徴。詳しくはヘルプのrefプラグインの項目を参照してほしい。

ファイルのアップロード、リンクの貼り付けをしたい

1.4.7で確認。Wiki上のコンテンツとしてZIPファイルなどをアップロードし、閲覧者がダウンロードできるようにする事が出来る。

このページにある「ページに画像を貼り付けるには?」の、Wiki内に画像をアップロードして表示する手順とまったく同じ方法で可能。

ファイルへのリンクを表示するページを表示し、「添付」でファイルをアップロードし、#ref(ファイル名)と本文に書けばいい。

つづく

つづく

参考サイトリンク集