7行で書くWiki

結城浩

2004年2月17日

Wikiで検索しているうちにリンクでたどりついた「7行で書くWiki」。 2ちゃんねるの「Webプログラミング板」で「nobodyさん」たちが作ったもののようです。 はっきりいってすごいです。これだけでちゃんと動くWikiになります。

#!perl -w
use CGI":all";charset$c='EUC-JP';$w='\b(([A-Z][a-z]+){2,})';$f=script_name;$/=(
);($p)=(path_info||FrontPage)=~/$w/;if(open F,($m=param z)?">$p":$p){eval{flock
F,2};print F$m||=<F>}$_=pre(escapeHTML$m).hr.ul map{li"".localtime((stat)[9]),
$_}sort{-M$a<=>-M$b}grep/^$w$/&-f,<*>;s|$w|(!-f$1&&$1).a{href,"$f/$1"},-f$1?$1:
"?"|eg;put header,start_html(-title=>$p,encoding,$c,lang,ja),h1($p),startform(0
,"$f/$p"),p(textarea(z,$m,6,60),br,submit),endform,hr,$_,end_html

改行とスペースとを補うと、以下のようになります。

#!perl -w
use CGI ":all";
charset $c = 'EUC-JP';
$w = '\b(([A-Z][a-z]+){2,})';
$f = script_name;
$/ = ();
($p) = (path_info || FrontPage) =~ /$w/;
if (open F, ($m = param z) ? ">$p" : $p) {
    eval{
        flock F, 2
    };
    print F $m ||= <F>
}
$_ = pre(escapeHTML $m).hr.ul
    map{ li "".localtime((stat)[9]), $_ }
        sort { -M $a <=> -M $b }
            grep /^$w$/ &-f,<*>;
s|$w|(!-f $1 && $1).a{href, "$f/$1"}, -f $1 ? $1 : "?"|eg;
put
    header,
    start_html(-title => $p, encoding, $c, lang, ja),
    h1($p),
    startform(0, "$f/$p"),
    p(textarea(z, $m, 6, 60), br, submit),
    endform,
    hr,
    $_,
    end_html