56 |
# use Jcode; |
# use Jcode; |
57 |
use Fcntl; |
use Fcntl; |
58 |
my $version = '2.0.beta1.2002-05-29'; |
my $version = '2.0.beta1.2002-05-29'; |
59 |
|
my $walversion; |
60 |
############################## |
############################## |
61 |
# |
# |
62 |
# You MUST modify following '$modifier_...' variables. |
# You MUST modify following '$modifier_...' variables. |
69 |
my $modifier_dbtype = 'YukiWikiDB'; # Slow, available on all environment. |
my $modifier_dbtype = 'YukiWikiDB'; # Slow, available on all environment. |
70 |
# my $modifier_sendmail = '/usr/sbin/sendmail -t -n'; # Your sendmail. |
# my $modifier_sendmail = '/usr/sbin/sendmail -t -n'; # Your sendmail. |
71 |
my $modifier_sendmail = ''; # If you don't need mail notification. |
my $modifier_sendmail = ''; # If you don't need mail notification. |
72 |
my $modifier_dir_data = '../wiki'; # Your data directory. |
my $modifier_dir_data = './wikidata'; # Your data directory. |
73 |
my $modifier_rss_title = "WalWiki $walversion"; |
my $modifier_rss_title = "WalWiki $walversion"; |
74 |
my $modifier_rss_link = 'http://suika.fam.cx/~wakaba/-temp/wiki2/wiki'; # Blank is not allowed. |
my $modifier_rss_link = 'http://suika.fam.cx/~wakaba/-temp/wiki2/wiki'; # Blank is not allowed. |
75 |
my $modifier_rss_description = 'This is WalWiki, yet another Wiki clone based on YukiWiki'; |
my $modifier_rss_description = 'This is WalWiki, yet another Wiki clone based on YukiWiki'; |
83 |
my $file_conflict = "$modifier_dir_data/conflict.txt"; |
my $file_conflict = "$modifier_dir_data/conflict.txt"; |
84 |
my $file_format = "$modifier_dir_data/format.txt"; |
my $file_format = "$modifier_dir_data/format.txt"; |
85 |
my $url_cgi = 'wiki'; |
my $url_cgi = 'wiki'; |
86 |
my $url_stylesheet = './WalWiki/Theme/wiki.css'; |
my $url_stylesheet = 'wiki-style.css'; |
87 |
my $icontag = '<img src="/icons/folder" alt="*" width="40" height="40" />'; |
my $icontag = '<img src="/icons/folder" alt="*" width="40" height="40" />'; |
88 |
my $maxrecent = 50; |
my $maxrecent = 50; |
89 |
my $cols = 80; |
my $cols = 80; |
104 |
my $RecentChanges = 'RecentChanges'; |
my $RecentChanges = 'RecentChanges'; |
105 |
my $AdminChangePassword = 'AdminChangePassword'; |
my $AdminChangePassword = 'AdminChangePassword'; |
106 |
my $CompletedSuccessfully = 'CompletedSuccessfully'; |
my $CompletedSuccessfully = 'CompletedSuccessfully'; |
107 |
my $FrontPage = 'FrontPage'; |
my $FrontPage = 'HomePage'; |
108 |
my $IndexPage = 'IndexPage'; |
my $IndexPage = 'IndexPage'; |
109 |
my $SearchPage = 'SearchPage'; |
my $SearchPage = 'SearchPage'; |
110 |
my $CreatePage = 'CreatePage'; |
my $CreatePage = 'CreatePage'; |
117 |
my $bracket_name = '\[\[(\S+?)\]\]'; |
my $bracket_name = '\[\[(\S+?)\]\]'; |
118 |
my $embedded_name = '\[\[(#\S+?)\]\]'; |
my $embedded_name = '\[\[(#\S+?)\]\]'; |
119 |
my $interwiki_definition = '\[\[(\S+?)\ (\S+?)\]\]'; |
my $interwiki_definition = '\[\[(\S+?)\ (\S+?)\]\]'; |
120 |
my $interwiki_name = '([^:]+):([^:].*)'; |
my $interwiki_name = '([^:]+):i:([^:].*)'; |
121 |
############################## |
############################## |
122 |
my $embed_comment = '[[#comment]]'; |
my $embed_comment = '[[#comment]]'; |
123 |
my $embed_rcomment = '[[#rcomment]]'; |
my $embed_rcomment = '[[#rcomment]]'; |
124 |
my $embed_interwiki = '^\[\[#(box|text|password):(\S+)\]\]$'; # Walrus add (5) |
my $embed_interwiki = '^\[\[#(box|text|password):(\S+)\]\]$'; # Walrus add (5) |
125 |
|
my %embed_command = ( |
126 |
|
searched => '^\[\[#searched:([^\]]+)\]\]$', |
127 |
|
); |
128 |
############################## |
############################## |
129 |
my $info_LastModified = 'LastModified'; |
my $info_LastModified = 'LastModified'; |
130 |
my $info_IsFrozen = 'IsFrozen'; |
my $info_IsFrozen = 'IsFrozen'; |
142 |
$SearchPage => 1, |
$SearchPage => 1, |
143 |
$AdminChangePassword => 1, |
$AdminChangePassword => 1, |
144 |
$CompletedSuccessfully => 1, |
$CompletedSuccessfully => 1, |
145 |
$FrontPage => 1, |
#$FrontPage => 1, |
146 |
); |
); |
147 |
my %form; |
my %form; |
148 |
my %database; |
my %database; |
157 |
$CreatePage => 'create', |
$CreatePage => 'create', |
158 |
$RssPage => 'rss', |
$RssPage => 'rss', |
159 |
$AdminChangePassword => 'adminchangepasswordform', |
$AdminChangePassword => 'adminchangepasswordform', |
160 |
$FrontPage => 'FrontPage', |
#$FrontPage => 'FrontPage', |
161 |
); |
); |
162 |
my %command_do = ( |
my %command_do = ( |
163 |
read => \&do_read, |
read => \&do_read, |
203 |
sub do_read { |
sub do_read { |
204 |
&print_header($form{mypage}); |
&print_header($form{mypage}); |
205 |
&print_content($database{$form{mypage}}); |
&print_content($database{$form{mypage}}); |
206 |
|
my ($r, $c) = get_search_result ($form{mypage}); |
207 |
|
if ($c) { |
208 |
|
print q{<h2>See also</h2>}; |
209 |
|
print $r; |
210 |
|
} |
211 |
&print_footer($form{mypage}); |
&print_footer($form{mypage}); |
212 |
} |
} |
213 |
|
|
316 |
&update_recent_changes; |
&update_recent_changes; |
317 |
} |
} |
318 |
&set_info($form{mypage}, $info_IsFrozen, 0 + $form{myfrozen}); |
&set_info($form{mypage}, $info_IsFrozen, 0 + $form{myfrozen}); |
319 |
&print_header($CompletedSuccessfully); |
&print_header($CompletedSuccessfully, -goto => $url_cgi.'?'.&encode($form{mypage})); |
320 |
&print_message($resource{saved}); |
&print_message($resource{saved}); |
321 |
&print_content("$resource{continuereading} @{[&armor_name($form{mypage})]}"); |
&print_content("$resource{continuereading} @{[&armor_name($form{mypage})]}"); |
322 |
&print_footer($CompletedSuccessfully); |
&print_footer($CompletedSuccessfully); |
340 |
} |
} |
341 |
|
|
342 |
sub do_search { |
sub do_search { |
343 |
my $word = &escape($form{mymsg}); |
my $word = $form{mymsg}; |
344 |
&print_header($SearchPage); |
&print_header($SearchPage); |
345 |
&print_searchform($word); |
&print_searchform(&escape($word)); |
346 |
my $counter = 0; |
print get_search_result ($word, -output_not_found => 1); |
347 |
foreach my $page (sort keys %database) { |
print "foo"; |
|
next if $page =~ /^$RecentChanges$/; |
|
|
if ($database{$page} =~ /\Q$form{mymsg}\E/ or $page =~ /\Q$form{mymsg}\E/) { |
|
|
if ($counter == 0) { |
|
|
print qq|<ul>|; |
|
|
} |
|
|
print qq(<li><a href ="$url_cgi?@{[&encode($page)]}">$page</a>@{[&escape(&get_subjectline($page))]}</li>); |
|
|
$counter++; |
|
|
} |
|
|
} |
|
|
if ($counter == 0) { |
|
|
&print_message($resource{notfound}); |
|
|
} else { |
|
|
print qq|</ul>|; |
|
|
} |
|
348 |
&print_footer($SearchPage); |
&print_footer($SearchPage); |
349 |
} |
} |
350 |
|
|
351 |
|
sub get_search_result ($;%) { |
352 |
|
my $word = shift; |
353 |
|
my %option = @_; |
354 |
|
my $counter = 0; |
355 |
|
my $r = ''; |
356 |
|
foreach my $page (sort keys %database) { |
357 |
|
next if $page eq $RecentChanges; |
358 |
|
if ( index ($database{$page}, $word) > 0 |
359 |
|
|| index ($page, $word) > 0 |
360 |
|
|| index ($word, $page) > 0 |
361 |
|
) { |
362 |
|
$r .= qq(<li><a href ="$url_cgi?@{[&escape(&encode($page))]}">@{[&escape($page)]}</a>@{[&escape(&get_subjectline($page))]}</li>); |
363 |
|
$counter++; |
364 |
|
} |
365 |
|
} |
366 |
|
$r = qq|<ul>$r</ul>| if $r; |
367 |
|
get_message ($resource{notfound}) |
368 |
|
if $counter == 0 && $option{-output_not_found}; |
369 |
|
wantarray? ($r, $counter): $r; |
370 |
|
} |
371 |
|
|
372 |
sub do_create { |
sub do_create { |
373 |
&print_header($CreatePage); |
&print_header($CreatePage); |
374 |
print <<"EOD"; |
print <<"EOD"; |
401 |
} |
} |
402 |
|
|
403 |
sub print_header { |
sub print_header { |
404 |
my ($page) = @_; |
my ($page,%option) = @_; |
405 |
my $bodyclass = "normal"; |
my $bodyclass = "normal"; |
|
my $editable = 0; |
|
|
my $admineditable = 0; |
|
406 |
if (&is_frozen($page) and $form{mycmd} =~ /^(read|write)$/) { |
if (&is_frozen($page) and $form{mycmd} =~ /^(read|write)$/) { |
|
$editable = 0; |
|
|
$admineditable = 1; |
|
407 |
$bodyclass = "frozen"; |
$bodyclass = "frozen"; |
408 |
} elsif (&is_editable($page) and $form{mycmd} =~ /^(read|write)$/) { |
} |
409 |
$admineditable = 1; |
if ($option{-goto}) { |
410 |
$editable = 1; |
print qq{Refresh: 0; url="$option{-goto}"\n}; |
|
} else { |
|
|
$editable = 0; |
|
411 |
} |
} |
412 |
my $cookedpage = &encode($page); |
my $cookedpage = &encode($page); |
413 |
print <<"EOD"; |
print <<"EOD"; |
414 |
Content-type: text/html; charset=$charset |
Content-type: text/html; charset=$charset |
415 |
|
Content-Language: $lang |
416 |
|
Content-Style-Type: text/css |
417 |
|
|
418 |
<!DOCTYPE html |
<!DOCTYPE html |
419 |
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
420 |
"http://www.w3.org/TR/html4/loose.dtd"> |
"http://www.w3.org/TR/html4/loose.dtd"> |
421 |
<html lang="$lang"> |
<html lang="$lang"> |
422 |
<head> |
<head> |
423 |
<meta http-equiv="Content-Language" content="$lang"> |
<title>@{[&escape($page.' '.&get_subjectline($page))]}</title> |
|
<meta http-equiv="Content-Type" content="text/html; charset=$charset"> |
|
|
<title>$page @{[&escape(&get_subjectline($page))]}</title> |
|
424 |
<link rel="index" href="$url_cgi?$IndexPage"> |
<link rel="index" href="$url_cgi?$IndexPage"> |
425 |
<link rev="made" href="mailto:$modifier_mail"> |
<link rev="made" href="mailto:$modifier_mail"> |
426 |
<link rel="stylesheet" type="text/css" href="$url_stylesheet"> |
<link rel="stylesheet" type="text/css" href="$url_stylesheet"> |
427 |
</head> |
</head> |
428 |
<body class="$bodyclass"> |
<body class="$bodyclass"> |
429 |
|
EOD |
430 |
|
&print_navigate_links ($page); |
431 |
|
print <<EOD; |
432 |
|
<h1 class="header"><a |
433 |
|
title="$resource{searchthispage}" |
434 |
|
href="$url_cgi?mycmd=search;mymsg=$cookedpage">@{[&escape($page)]}</a>@{[&escape(&get_subjectline($page))]}</h1> |
435 |
|
EOD |
436 |
|
} |
437 |
|
|
438 |
|
sub print_navigate_links (@) { |
439 |
|
my ($page) = @_; |
440 |
|
my $editable = 0; |
441 |
|
my $admineditable = 0; |
442 |
|
if (&is_frozen($page) and $form{mycmd} =~ /^(read|write)$/) { |
443 |
|
$editable = 0; |
444 |
|
$admineditable = 1; |
445 |
|
} elsif (&is_editable($page) and $form{mycmd} =~ /^(read|write)$/) { |
446 |
|
$admineditable = 1; |
447 |
|
$editable = 1; |
448 |
|
} else { |
449 |
|
$editable = 0; |
450 |
|
} |
451 |
|
my $cookedpage = &encode($page); |
452 |
|
print <<EOH; |
453 |
<div class="tools"> |
<div class="tools"> |
454 |
@{[ $admineditable |
@{[ $admineditable |
455 |
? qq(<a title="$resource{admineditthispage}" href="$url_cgi?mycmd=adminedit;mypage=$cookedpage">$resource{admineditbutton}</a> | ) |
? qq(<a title="$resource{admineditthispage}" href="$url_cgi?mycmd=adminedit;mypage=$cookedpage">$resource{admineditbutton}</a> | ) |
456 |
: qq() |
: qq() |
457 |
]} |
]} |
458 |
@{[ $editable |
@{[ $editable |
459 |
? qq(<a title="$resource{editthispage}" href="$url_cgi?mycmd=edit;mypage=$cookedpage">$resource{editbutton}</a> | ) |
? qq(<a title="$resource{editthispage}" href="$url_cgi?mycmd=edit;mypage=$cookedpage" accesskey="E">$resource{editbutton} <kbd>E</kbd></a> | ) |
460 |
: qq() |
: qq() |
461 |
]} |
]} |
462 |
@{[ $admineditable |
@{[ $admineditable |
470 |
<a href="$url_cgi?$SearchPage">$resource{searchbutton}</a> | |
<a href="$url_cgi?$SearchPage">$resource{searchbutton}</a> | |
471 |
<a href="$url_cgi?$RecentChanges">$resource{recentchangesbutton}</a> |
<a href="$url_cgi?$RecentChanges">$resource{recentchangesbutton}</a> |
472 |
</div> |
</div> |
473 |
<h1 class="header"><a |
EOH |
|
title="$resource{searchthispage}" |
|
|
href="$url_cgi?mycmd=search;mymsg=$cookedpage">$page</a>@{[&escape(&get_subjectline($page))]}</h1> |
|
|
EOD |
|
474 |
} |
} |
475 |
|
|
476 |
sub print_footer { |
sub print_footer { |
477 |
my ($page) = @_; |
my ($page) = @_; |
478 |
$walrus_log = ($walrus_debugging) ? &text_to_html("----\n$walrus_log") : ''; # Walrus add (debug) |
$walrus_log = ($walrus_debugging) ? &text_to_html("----\n$walrus_log") : ''; # Walrus add (debug) |
479 |
# Walrus mod (1) start |
# Walrus mod (1) start |
480 |
my $mod_info = $modifier_name ? qq(Modified by <a href="$modifier_url">$modifier_name</a>.) : ''; |
my $cvslog = '$Revision$ $Date$'; |
481 |
print <<"EOD"; |
print_navigate_links ($page); |
482 |
|
print <<"EOD"; |
483 |
<div class="footer"> |
<div class="footer"> |
|
<hr /> |
|
484 |
<p> |
<p> |
485 |
<a href="http://digit.que.ne.jp/work/">WalWiki</a> $walversion © 2000-2002 by <a href="http://digit.que.ne.jp/">Makio Tsukamoto</a>.<br /> |
<a href="http://digit.que.ne.jp/work/">WalWiki</a> $walversion © 2000-2002 by <a href="http://digit.que.ne.jp/">Makio Tsukamoto</a>.<br /> |
486 |
based on <a href="http://www.hyuki.com/yukiwiki/">YukiWiki</a> $version © 2000-2002 by <a href="http://www.hyuki.com/">Hiroshi Yuki</a>.<br /> |
based on <a href="http://www.hyuki.com/yukiwiki/">YukiWiki</a> $version © 2000-2002 by <a href="http://www.hyuki.com/">Hiroshi Yuki</a>.<br /> |
487 |
$mod_info |
<a href="/gate/cvs/wakaba/wiki/" title="CVS Repository"> |
488 |
|
$cvslog |
489 |
|
</a> |
490 |
</p> |
</p> |
491 |
|
<div class="navigation"> |
492 |
|
[<a href="/" title="€³€Ξ₯΅‘Ό₯Π‘Ό€ΞΌσΚΗ">/</a> |
493 |
|
<a href="/map" title="€³€Ξ₯΅‘Ό₯Π‘Ό€Ξ°ΖΖβ">ΓΟΏή</a> |
494 |
|
<a href="/search/" title="€³€Ξ₯΅‘Ό₯Π‘Ό€ΞΈ‘Ίχ">Έ‘Ίχ</a>] |
495 |
|
</div> |
496 |
</div> |
</div> |
497 |
$walrus_log <!-- Walrus add (debug) --> |
$walrus_log |
498 |
</body> |
</body> |
499 |
</html> |
</html> |
500 |
EOD |
EOD |
517 |
sub escape { |
sub escape { |
518 |
my $s = shift; |
my $s = shift; |
519 |
$s =~ s|\r\n|\n|g; |
$s =~ s|\r\n|\n|g; |
520 |
$s =~ s|\&|&|g; |
$s =~ s|&|&|g; |
521 |
$s =~ s|<|<|g; |
$s =~ s|<|<|g; |
522 |
$s =~ s|>|>|g; |
$s =~ s|>|>|g; |
523 |
$s =~ s|"|"|g; |
$s =~ s|"|"|g; |
527 |
sub unescape { |
sub unescape { |
528 |
my $s = shift; |
my $s = shift; |
529 |
# $s =~ s|\n|\r\n|g; |
# $s =~ s|\n|\r\n|g; |
530 |
$s =~ s|\&|\&|g; |
$s =~ s|<|<|g; |
531 |
$s =~ s|\<|\<|g; |
$s =~ s|>|>|g; |
532 |
$s =~ s|\>|\>|g; |
$s =~ s|"|"|g; |
533 |
$s =~ s|\"|\"|g; |
$s =~ s|&|&|g; |
534 |
return $s; |
return $s; |
535 |
} |
} |
536 |
|
|
550 |
foreach (@txt) { |
foreach (@txt) { |
551 |
chomp; |
chomp; |
552 |
# Walrus mod (6) start |
# Walrus mod (6) start |
553 |
if ($saved[0] eq '</html>') { |
#if ($saved[0] eq '</html>') { |
554 |
if (/<\/html>/i) { splice(@saved); } |
# if (/<\/html>/i) { splice(@saved); } |
555 |
else { push (@result, &html_to_ignored_html($_)); } |
# else { push (@result, &html_to_ignored_html($_)); } |
556 |
} elsif (/^<html>/i and &is_ignore_html($form{mypage})) { |
#} elsif (/^<html>/i and &is_ignore_html($form{mypage})) { |
557 |
push(@result, splice(@saved)); |
# push(@result, splice(@saved)); |
558 |
push(@saved, '</html>'); |
# push(@saved, '</html>'); |
559 |
|
#} els |
560 |
|
if (/^\*\*\*\*\*(.*)/) { |
561 |
|
push(@toc, qq(-- <a href="#i$tocnum">@{[&escape($1)]}</a>\n)); |
562 |
|
push(@result, splice(@saved), qq(<h6 id="i$tocnum">) . &inline($1) . '</h6>'); |
563 |
|
$tocnum++; |
564 |
|
} elsif (/^\*\*\*\*(.*)/) { |
565 |
|
push(@toc, qq(-- <a href="#i$tocnum">@{[&escape($1)]}</a>\n)); |
566 |
|
push(@result, splice(@saved), qq(<h5 id="i$tocnum">) . &inline($1) . '</h5>'); |
567 |
|
$tocnum++; |
568 |
|
} elsif (/^\*\*\*(.*)/) { |
569 |
|
push(@toc, qq(-- <a href="#i$tocnum">@{[&escape($1)]}</a>\n)); |
570 |
|
push(@result, splice(@saved), qq(<h4 id="i$tocnum">) . &inline($1) . '</h4>'); |
571 |
|
$tocnum++; |
572 |
} elsif (/^\*\*(.*)/) { |
} elsif (/^\*\*(.*)/) { |
573 |
# if (/^\*\*(.*)/) { |
# if (/^\*\*(.*)/) { |
574 |
# Walrus mod (6) end |
# Walrus mod (6) end |
579 |
push(@toc, qq(- <a href="#i$tocnum">@{[&escape($1)]}</a>\n)); |
push(@toc, qq(- <a href="#i$tocnum">@{[&escape($1)]}</a>\n)); |
580 |
push(@result, splice(@saved), qq(<h2><a name="i$tocnum"> </a>) . &inline($1) . '</h2>'); |
push(@result, splice(@saved), qq(<h2><a name="i$tocnum"> </a>) . &inline($1) . '</h2>'); |
581 |
$tocnum++; |
$tocnum++; |
582 |
} elsif (/^----/) { |
#} elsif (/^----/) { |
583 |
push(@result, splice(@saved), '<hr>'); |
# push(@result, splice(@saved), '<hr>'); |
584 |
} elsif (/^(-{1,3})(.*)/) { |
} elsif (/^(={1,5})(.*)/) { |
585 |
|
&back_push('ol', length($1), \@saved, \@result); |
586 |
|
push(@result, '<li>' . &inline($2) . '</li>'); |
587 |
|
} elsif (/^(-{1,5})(.*)/) { |
588 |
&back_push('ul', length($1), \@saved, \@result); |
&back_push('ul', length($1), \@saved, \@result); |
589 |
push(@result, '<li>' . &inline($2) . '</li>'); |
push(@result, '<li>' . &inline($2) . '</li>'); |
590 |
} elsif (/^:([^:]+):(.*)/) { |
} elsif (/^:([^:]+):(.*)/) { |
591 |
&back_push('dl', 1, \@saved, \@result); |
&back_push('dl', 1, \@saved, \@result); |
592 |
push(@result, '<dt>' . &inline($1) . '</dt>', '<dd>' . &inline($2) . '</dd>'); |
push(@result, '<dt>' . &inline($1) . '</dt>', '<dd>' . &inline($2) . '</dd>'); |
593 |
} elsif (/^(>{1,3})(.*)/) { |
} elsif (/^(>{1,5})(.*)/) { |
594 |
&back_push('blockquote', length($1), \@saved, \@result); |
&back_push('blockquote', length($1), \@saved, \@result); |
595 |
push(@result, &inline($2)); |
push(@result, &inline($2)); |
596 |
} elsif (/^\s*$/) { |
} elsif (/^\s*$/) { |
599 |
push(@result, "<p>"); |
push(@result, "<p>"); |
600 |
} elsif (/^(\s+.*)$/) { |
} elsif (/^(\s+.*)$/) { |
601 |
&back_push('pre', 1, \@saved, \@result); |
&back_push('pre', 1, \@saved, \@result); |
602 |
push(@result, &escape($1)); # Not &inline, but &escape |
#push(@result, &escape($1)); # Not &inline, but &escape |
603 |
|
push(@result, &inline($1)); # Not &inline, but &escape |
604 |
# } elsif (/^\,(.*)$/) { # Walrus del (BF) |
# } elsif (/^\,(.*)$/) { # Walrus del (BF) |
605 |
} elsif (/^\,(.*?)[\x0D\x0A]*$/) { # Walrus add (BF) |
} elsif (/^\,(.*?)[\x0D\x0A]*$/) { # Walrus add (BF) |
606 |
&back_push('table', 1, \@saved, \@result, ' border="1"'); |
&back_push('table', 1, \@saved, \@result, ' border="1"'); |
665 |
sub inline { |
sub inline { |
666 |
my ($line) = @_; |
my ($line) = @_; |
667 |
$line = &escape($line); |
$line = &escape($line); |
668 |
$line =~ s|'''([^']+?)'''|<i>$1</i>|g; # Italic |
$line =~ s|'''([^']+?)'''|<strong>$1</strong>|g; |
669 |
$line =~ s|''([^']+?)''|<b>$1</b>|g; # Bold |
$line =~ s|''([^']+?)''|<em>$1</em>|g; |
670 |
$line =~ s|(\d\d\d\d-\d\d-\d\d \(\w\w\w\) \d\d:\d\d:\d\d)|<span class="date">$1</span>|g; # Date |
$line =~ s|(\d\d\d\d-\d\d-\d\d \(\w\w\w\) \d\d:\d\d:\d\d)|<span class="date">$1</span>|g; # Date |
671 |
$line =~ s! |
$line =~ s! |
672 |
( |
( |
673 |
((mailto|http|https|ftp):([^\x00-\x20()<>\x7F-\xFF])*) # Direct http://... |
(?:<(?:mailto|http|https|ftp|urn):[\x21-\x7E]*)> |
674 |
| |
| |
675 |
($bracket_name) # [[likethis]], [[#comment]], [[Friend:remotelink]] |
($bracket_name) # [[likethis]], [[#comment]], [[Friend:remotelink]] |
676 |
| |
| |
677 |
($interwiki_definition) # [[Friend http://somewhere/?q=sjis($1)]] |
($interwiki_definition) # [[Friend http://somewhere/?q=sjis($1)]] |
678 |
| |
#| |
679 |
($wiki_name) # LocalLinkLikeThis |
# ($wiki_name) |
680 |
) |
) |
681 |
! |
! |
682 |
&make_link($1) |
&make_link($1) |
683 |
!gex; |
!gex; |
687 |
sub make_link { |
sub make_link { |
688 |
my $chunk = shift; |
my $chunk = shift; |
689 |
# Walrus add (3) start |
# Walrus add (3) start |
690 |
|
$chunk =~ s/^<(.*)>$/$1/; |
691 |
my $name = $chunk; |
my $name = $chunk; |
692 |
if ($chunk =~ /^\[\[([^ ]+?) ([^ ]+?)\]\]$/ and $form{mypage} ne $InterWikiName) { |
if ($chunk =~ /^\[\[([^ ]+?) ([^ ]+?)\]\]$/ and $form{mypage} ne $InterWikiName) { |
693 |
($name, $chunk) = ($1, $2); |
($name, $chunk) = ($1, $2); |
706 |
# } else { |
# } else { |
707 |
# return qq(<a href="$chunk">$chunk</a>); |
# return qq(<a href="$chunk">$chunk</a>); |
708 |
# } |
# } |
709 |
return qq(<a href="$chunk">$name</a>); |
return qq(<<a href="$chunk">$name</a>>); |
710 |
# Walrus mod (3) end |
# Walrus mod (3) end |
711 |
} elsif ($chunk =~ /^(mailto):(.*)/) { |
} elsif ($chunk =~ m#^urn:[0-9A-Za-z_:;/.-]+#) { |
712 |
|
return qq|<<a href="/uri-res/N2L?${name}">$name</a>>|; |
713 |
|
} elsif ($chunk =~ /^mailto:(.*)/) { |
714 |
# return qq(<a href="$chunk">$2</a>); # Walrus del (3) |
# return qq(<a href="$chunk">$2</a>); # Walrus del (3) |
715 |
return qq(<a href="$chunk">$name</a>); # Walrus add (3) |
return qq(<<a href="$chunk">$name</a>>); # Walrus add (3) |
716 |
} elsif ($chunk =~ /^$interwiki_definition$/) { |
} elsif ($chunk =~ /^$interwiki_definition$/) { |
717 |
# return qq(<span class="InterWiki">$chunk</span>); # Walrus del (3) |
# return qq(<span class="InterWiki">$chunk</span>); # Walrus del (3) |
718 |
return qq(<span class="InterWiki">$name</span>); # Walrus add (3) |
return qq(<span class="InterWiki">$name</span>); # Walrus add (3) |
740 |
return qq(<a title="$subject" href="$url_cgi?$cookedchunk">$name</a>); # Walrus add (3) |
return qq(<a title="$subject" href="$url_cgi?$cookedchunk">$name</a>); # Walrus add (3) |
741 |
} elsif ($page_command{$chunk}) { |
} elsif ($page_command{$chunk}) { |
742 |
# return qq(<a title="$chunk" href="$url_cgi?$cookedchunk">$chunk</a>); # Walrus del (3) |
# return qq(<a title="$chunk" href="$url_cgi?$cookedchunk">$chunk</a>); # Walrus del (3) |
743 |
return qq(<a title="$chunk" href="$url_cgi?$cookedchunk">$name</a>); # Walrus add (3) |
return qq(<a title="$chunk" href="$url_cgi?$cookedchunk" class="wiki">$name</a>); # Walrus add (3) |
744 |
} else { |
} else { |
745 |
# return qq($chunk<a title="$resource{editthispage}" href="$url_cgi?mycmd=edit&mypage=$cookedchunk">$editchar</a>); # Walrus del (3) |
return qq(<a title="$resource{editthispage}" href="$url_cgi?mycmd=edit;mypage=$cookedchunk" class="wiki">$name<span class="mark">$editchar</span></a>); |
|
return qq($name<a title="$resource{editthispage}" href="$url_cgi?mycmd=edit&mypage=$cookedchunk">$editchar</a>); # Walrus add (3) |
|
746 |
} |
} |
747 |
} |
} |
748 |
} |
} |
785 |
print qq(<p><strong>$msg</strong></p>); |
print qq(<p><strong>$msg</strong></p>); |
786 |
} |
} |
787 |
|
|
788 |
|
sub get_message { |
789 |
|
my ($msg) = @_; |
790 |
|
qq(<p><strong>$msg</strong></p>); |
791 |
|
} |
792 |
|
|
793 |
sub init_form { |
sub init_form { |
794 |
if (param()) { |
if (param()) { |
795 |
foreach my $var (param()) { |
foreach my $var (param()) { |
981 |
<form action="$url_cgi" method="post"> |
<form action="$url_cgi" method="post"> |
982 |
@{[ $mode{admin} ? qq($resource{frozenpassword} <input type="password" name="mypassword" value="$form{mypassword}" size="10"><br>) : "" ]} |
@{[ $mode{admin} ? qq($resource{frozenpassword} <input type="password" name="mypassword" value="$form{mypassword}" size="10"><br>) : "" ]} |
983 |
<input type="hidden" name="myLastModified" value="$lastmodified"> |
<input type="hidden" name="myLastModified" value="$lastmodified"> |
984 |
<input type="hidden" name="mypage" value="$form{mypage}"> |
<input type="hidden" name="mypage" value="@{[&escape($form{mypage})]}"> |
985 |
<textarea cols="$cols" rows="$rows" name="mymsg" wrap="off">$mymsg</textarea><br> |
<textarea cols="$cols" rows="$rows" name="mymsg" wrap="off" tabindex="1">$mymsg</textarea><br> |
986 |
@{[ |
@{[ |
987 |
$mode{admin} ? |
$mode{admin} ? |
988 |
qq( |
qq( |
995 |
qq( |
qq( |
996 |
<input type="checkbox" name="mytouch" value="on" checked="checked">$resource{touch}<br> |
<input type="checkbox" name="mytouch" value="on" checked="checked">$resource{touch}<br> |
997 |
<input type="submit" name="mypreview_$edit" value="$resource{previewbutton}"> |
<input type="submit" name="mypreview_$edit" value="$resource{previewbutton}"> |
998 |
<input type="submit" name="mypreview_write" value="$resource{savebutton}"><br> |
<input type="submit" name="mypreview_write" value="$resource{savebutton}" accesskey="S"><kbd>S</kbd><br> |
999 |
) |
) |
1000 |
]} |
]} |
1001 |
</form> |
</form> |
1253 |
<input type="submit" value="$resource{commentbutton}"> |
<input type="submit" value="$resource{commentbutton}"> |
1254 |
</form> |
</form> |
1255 |
EOD |
EOD |
1256 |
|
} elsif ($embedded =~ /$embed_command{searched}/) { |
1257 |
|
return get_search_result ($1); |
1258 |
# Walrus add (5) start |
# Walrus add (5) start |
1259 |
} elsif ($embedded =~ /$embed_interwiki/ and my $remoteurl = $interwiki{$2}) { |
} elsif ($embedded =~ /$embed_interwiki/ and my $remoteurl = $interwiki{$2}) { |
1260 |
$_ = &make_interwiki_box($1, $2); |
$_ = &make_interwiki_box($1, $2); |