1 | #! perl |
1 | #! perl |
2 | |
2 | |
|
|
3 | # convert given .pod files to wiki style |
|
|
4 | |
|
|
5 | # base path of arch tree, only used for new arch graphics |
|
|
6 | my $ARCH = "/root/src/cf.schmorp.de/arch"; |
|
|
7 | |
|
|
8 | use strict; |
|
|
9 | |
3 | use Storable; |
10 | use Storable; |
4 | |
|
|
5 | # convert given .pod files to wiki style |
|
|
6 | |
|
|
7 | use strict; |
|
|
8 | |
|
|
9 | use Pod::POM; |
11 | use Pod::POM; |
10 | |
12 | |
11 | our @result; |
13 | our @result; |
12 | our $indent; |
14 | our $indent; |
13 | our $level; |
15 | our $level; |
|
|
16 | |
|
|
17 | my $MA_BEG = "\x{fcd0}"; |
|
|
18 | my $MA_SEP = "\x{fcd1}"; |
|
|
19 | my $MA_END = "\x{fcd2}"; |
14 | |
20 | |
15 | sub asxml($) { |
21 | sub asxml($) { |
16 | local $_ = $_[0]; |
22 | local $_ = $_[0]; |
17 | |
23 | |
18 | s/&/&/g; |
24 | s/&/&/g; |
… | |
… | |
54 | } |
60 | } |
55 | |
61 | |
56 | sub view_seq_link { |
62 | sub view_seq_link { |
57 | my (undef, $link) = @_; |
63 | my (undef, $link) = @_; |
58 | |
64 | |
59 | # TODO: |
65 | my $text = $link =~ s/^(.*)\|// ? $1 : $link; |
60 | # http://... |
|
|
61 | # ref |
|
|
62 | # pod/ref |
|
|
63 | |
66 | |
|
|
67 | if ($link =~ /http:/) { |
64 | "<u>" . (::asxml $_[1]) . "</u>"; |
68 | "<u>" . (::asxml $link) . "</u>" |
|
|
69 | } elsif ($link =~ /^\$ARCH\/(.+)$/) { |
|
|
70 | my $path = $1; |
|
|
71 | (my $base = $path) =~ s/.*\///; |
|
|
72 | -f "$ARCH/$path" && system "rsync -av -c \Q$ARCH/$path\E \Qresources/arch/$base"; |
|
|
73 | "${MA_BEG}image${MA_SEP}arch/$base$MA_END" |
|
|
74 | } else { |
|
|
75 | "${MA_BEG}link$MA_SEP$text$MA_SEP$link$MA_END" |
|
|
76 | } |
65 | } |
77 | } |
66 | |
78 | |
67 | sub view_item { |
79 | sub view_item { |
68 | push @result, { |
80 | push @result, { |
69 | indent => $indent * 8, |
81 | indent => $indent * 8, |
… | |
… | |
144 | sub view_for { |
156 | sub view_for { |
145 | if ($_[1]->format eq "image") { |
157 | if ($_[1]->format eq "image") { |
146 | push @result, { |
158 | push @result, { |
147 | indent => $indent * 16, |
159 | indent => $indent * 16, |
148 | level => $level, |
160 | level => $level, |
149 | markup => "\x{fffc}", |
161 | markup => "${MA_BEG}image${MA_SEP}pod/" . $_->text . $MA_END, |
150 | widget => [["CFPlus::UI::Image" => path => "pod/" . $_[1]->text]], |
|
|
151 | }; |
162 | }; |
152 | } |
163 | } |
153 | () |
164 | () |
154 | } |
165 | } |
155 | |
166 | |
… | |
… | |
179 | |
190 | |
180 | sub add_node($) { |
191 | sub add_node($) { |
181 | my ($node) = @_; |
192 | my ($node) = @_; |
182 | |
193 | |
183 | for (@{ $node->{kw} || {} }) { |
194 | for (@{ $node->{kw} || {} }) { |
184 | push @{$wiki{$_}}, $node; |
195 | push @{$wiki{lc $_}}, $node; |
185 | } |
196 | } |
186 | } |
197 | } |
187 | |
198 | |
188 | my $root = { |
199 | my $root = { |
189 | kw => ["pod"], |
200 | kw => ["pod"], |