--- deliantra/Deliantra-Client/bin/pod2wiki 2006/08/13 03:20:56 1.2
+++ deliantra/Deliantra-Client/bin/pod2wiki 2006/08/14 01:54:09 1.5
@@ -1,17 +1,23 @@
#! perl
-use Storable;
-
# convert given .pod files to wiki style
+# base path of arch tree, only used for new arch graphics
+my $ARCH = "/root/src/cf.schmorp.de/arch";
+
use strict;
+use Storable;
use Pod::POM;
our @result;
our $indent;
our $level;
+my $MA_BEG = "\x{fcd0}";
+my $MA_SEP = "\x{fcd1}";
+my $MA_END = "\x{fcd2}";
+
sub asxml($) {
local $_ = $_[0];
@@ -56,12 +62,18 @@
sub view_seq_link {
my (undef, $link) = @_;
- # TODO:
- # http://...
- # ref
- # pod/ref
+ my $text = $link =~ s/^(.*)\|// ? $1 : $link;
- "" . (::asxml $_[1]) . "";
+ if ($link =~ /http:/) {
+ "" . (::asxml $link) . ""
+ } elsif ($link =~ /^\$ARCH\/(.+)$/) {
+ my $path = $1;
+ (my $base = $path) =~ s/.*\///;
+ -f "$ARCH/$path" && system "cp -p \Q$ARCH/$path\E \Qresources/arch/$base";
+ "${MA_BEG}image${MA_SEP}arch/$base$MA_END"
+ } else {
+ "${MA_BEG}link$MA_SEP$text$MA_SEP$link$MA_END"
+ }
}
sub view_item {
@@ -146,8 +158,7 @@
push @result, {
indent => $indent * 16,
level => $level,
- markup => "\x{fffc}",
- widget => [["CFPlus::UI::Image" => path => "pod/" . $_[1]->text]],
+ markup => "${MA_BEG}image${MA_SEP}pod/" . $_->text . $MA_END,
};
}
()
@@ -181,7 +192,7 @@
my ($node) = @_;
for (@{ $node->{kw} || {} }) {
- push @{$wiki{$_}}, $node;
+ push @{$wiki{lc $_}}, $node;
}
}