名前¶
CGI::Kwiki - トリッキーすぎないお手軽なWiki。
概要¶
> mkdir cgi-bin/my-kwiki
> cd cgi-bin/my-kwiki
> kwiki-install
Kwiki software installed! Point your browser at this location.
KWIKI スタート¶
Kwikiのオフィシャルホームページは http://www.kwiki.org です。この サイト自身がKwikiです。ここには配布されているドキュメントよりもずっと 多くのKwikiについての情報があります。
詳細¶
Wikiはユーザーにページの追加と、全ての既存ページの編集を許すWebサイト です。これはWebコラボレーションのもっともポピュラーな形態の一つです。 もしWikiが初めてであれば、最古のWikiであり、Wikiがどのように働くのかに ついての多くの情報をもつ http://c2.com/cgi/wiki?WelcomeVisitors を 訪ねて下さい。
世界には何ダースものWikiの実装があり、その多くがPerlでかかれています。 多くのPerlハックは共通であるのに、モジュールは少なく、CPANにもリリース されて来ませんでした。その有名な例外はCGI::Wikiです。これは拡張性の ある、活発にメンテナンスが行なわれているwikiフレームワークです。
もう一つの例外がこのモジュール、CGI::Kwikiです。CGI::Kwikiはシンプルさ と拡張性にフォーカスしています。新しいkwiki Webサイトの作成は1コマンド でできます。このモジュールはPerlとともにインストールされるもの以外の 前提モジュールはありません。これはバックエンドにデータベースを必要と しませんが、データベースを使うこともできます。デフォルトのkwikiの 動作は、HTMLテーブルのサポートを含むフル機能です。Kwikiの動作は大きな トラブルを起こすことなしに、カスタマイズ可能です。
特殊な機能¶
CGI::Kwikiには大半のWiki実装には見られない装飾的なaddonが同梱されて います。これらはデフォルトのKwikiのまったくシンプルなインターフェース に干渉しないことを約束します。
どんなホットな機能が追加されたかを、時々 http://www.kwiki.org/index.cgi?KwikiFeatures でチェックしてください。
Kwikiスライドショウ¶
まるでPowerPointのようなスライドショウを、一つのkwikiページで作成 できます。スライドやその他の改良にはJavaScriptマジックが使われて います。サンプルページであるKwikiSlideShowをご覧下さい。
拡張¶
CGI::Kwikiは完全にオブジェクト指向です。各クラスモジュールのサブクラス を作り、その一つないし複数のメソッドを上書きすることで、その最終的な 動作を簡単に変更することができます。これらは一般にたった数行のPerl コードで実行されています。
これを説明する最良の方法は例示でしょう。configファイルから始めましょう。 デフォルトのconfigファイルはconfig.yaml
と呼ばれます。これは次の ような行を含んでいます:
config_class: CGI::Kwiki::Config
driver_class: CGI::Kwiki::Driver
cgi_class: CGI::Kwiki::CGI
cookie_class: CGI::Kwiki::Cookie
database_class: CGI::Kwiki::Database
metadata_class: CGI::Kwiki::Metadata
display_class: CGI::Kwiki::Display
edit_class: CGI::Kwiki::Edit
formatter_class: CGI::Kwiki::Formatter
template_class: CGI::Kwiki::Template
search_class: CGI::Kwiki::Search
changes_class: CGI::Kwiki::Changes
prefs_class: CGI::Kwiki::Prefs
pages_class: CGI::Kwiki::Pages
slides_class: CGI::Kwiki::Slides
javascript_class: CGI::Kwiki::Javascript
style_class: CGI::Kwiki::Style
scripts_class: CGI::Kwiki::Scripts
これらはkwikiを作り上げる全てのクラスのリストです。このいずれかを、 あなたの独自のクラスに変更することができます。
BOLDの指定方法を*bold*
から'''bold'''
に変更したいのだと しましょう。その時は、Formatterクラスのbold()
メソッドを上書きする だけです。config.yaml
の変更から始めましょう。
formatter_class: MyKwikiFormatter
次に、MyKwikiFormatter.pm
と呼ばれるモジュールを書きます。この モジュールを正しいkwikiのインストールディレクトリに置きたいと思えば、 そうして構いません。このモジュールは、このようなものになるでしょう:
package MyKwikiFormatter;
use base 'CGI::Kwiki::Formatter';
sub bold {
my ($self, $text) = @_;
$text =~ s!'''(.*?)'''!<b>$1</b>!g;
return $text;
}
1;
どう、たいして難しくないでしょ?データベースストレージから検索エンジン、 メインドライバーコードまでCGI::Kwikiのあらゆる面をこのように変更する ことができます。もしクラスのセットを世界中で共有したくなったら、 ディストリビューションとしてパッケージ化し、CPANに置くだけです。
ところで、設定ファイルのフォーマットをデフォルトのYAMLから変更する こともできます。もしXMLを使いたい、というのであれば、 CGI::Kwiki::Config_xml
というモジュールを書き、config.xml
を 呼ぶだけです。
SEE ALSO¶
これ以外のCGI::KwikiのドキュメントはKwikiのインストールによって入手 できます。Kwikiをインストールし、リンクを辿るだけです!もし何か トラブルが起きたり、あるいはKwikiの動作を見たいだけであれば、まずは http://www.kwiki.org を訪れてください。
作者¶
Brian Ingerson <INGY@cpan.org>
コピーライト¶
Copyright (c) 2003. Brian Ingerson. All rights reserved.
このプラグラムはフリーソフトウェアです; Perl自身と同じ条件下で再配布や 編集を行なうことができます。
http://www.perl.com/perl/misc/Artistic.html 参照