ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/doc/lib/PodHTML.pm
Revision: 1.4
Committed: Wed Jul 25 01:06:22 2007 UTC (19 years, 2 months ago) by pippijn
Branch: MAIN
Changes since 1.3: +2 -2 lines
Log Message:
corrected license

File Contents

# User Rev Content
1 pippijn 1.1 package PodHTML;
2    
3     use strict;
4     use warnings;
5     use utf8;
6    
7 pippijn 1.4 use constant rcsid => '$Id: PodHTML.pm,v 1.3 2007-07-25 01:05:17 pippijn Exp $';
8 pippijn 1.2
9 pippijn 1.1 use base "Pod::POM::View";
10    
11     our $subdir;
12     our $dir;
13     our $menu;
14    
15     sub view_pod {
16     my ($self, $item) = @_;
17     $item->content->present ($self)
18     }
19    
20     sub view_head1 {
21     my ($self, $item) = @_;
22     my $file;
23     if ($item->title =~ /\|/) {
24     my @cmds = split /\|/, $item->title;
25     for my $cmd (@cmds) {
26     my $content = "$cmd\n\n" . $item->content->present ($self);
27     $content =~ s/\$CMD/$cmd/g;
28     $file = "$dir/$subdir/" . lc $cmd . ".tt";
29     $file =~ s/ /_/g;
30     open my $fh, ">", $file;
31     print $fh $content;
32     close $fh;
33     }
34     } else {
35     if ($subdir) {
36     $file = "$dir/$subdir/" . lc $item->title . ".tt";
37     } else {
38     $file = "$dir/" . lc $item->title . ".tt";
39     }
40     $file =~ s/ /_/g;
41     open my $fh, ">", $file;
42     my $content = $item->title->present ($self) . "\n\n" . $item->content->present ($self);
43     print $fh $content;
44     close $fh;
45     }
46     my $name = $file;
47     $name =~ s/$dir\/\w+\/(.+)\.tt/$1/;
48     $name =~ s/_/ /g;
49     my $svs;
50     if ($subdir) {
51     $svs = $subdir;
52     } else {
53     $svs = $dir;
54     }
55     $svs =~ s/serv/Serv/;
56     $svs = ucfirst $svs;
57     $file =~ s/$dir/../;
58     $file =~ s/\.tt$//;
59     $menu->{$svs}->[($#{$menu->{$svs}}) + 1] = {
60     href => "$file.html",
61     title => uc $name,
62     };
63     }
64    
65     sub view_head2 {
66     my ($self, $item) = @_;
67     '<h3>',
68     $item->title->present ($self),
69     "</h3>",
70     $item->content->present ($self);
71     }
72    
73     sub view_head3 {
74     my ($self, $item) = @_;
75     '<h4>',
76     $item->title->present ($self),
77     "</h4>",
78     $item->content->present ($self);
79     }
80    
81     sub view_seq_entity {
82     my ($self, $item) = @_;
83     $item =~ /^x/
84     ? ('&#', $item, ';')
85     : ('&', $item, ';')
86     }
87    
88     sub view_seq_code { "<i>$_[1]</i>" }
89 pippijn 1.2 sub view_seq_file { "<i>$_[1]</i>" }
90 pippijn 1.1 sub view_seq_bold { "<b>$_[1]</b>" }
91     sub view_seq_link { my $href = lc $_[1]; "<a href='$href.html'>$_[1]</a>" }
92     sub view_seq_link_top {
93     my ($title, $href) = split /\|/, $_[1], 2;
94     "<a href='$href'>$title</a>"
95     }
96    
97     sub view_verbatim {
98     my ($self, $item) = @_;
99     "<pre>\n$item</pre>"
100     }
101    
102     sub view_over {
103     my ($self, $item) = @_;
104     "<ul>\n",
105     $item->content->present ($self),
106     "</ul>\n"
107     }
108    
109     sub view_item {
110     my ($self, $item) = @_;
111     my $title;
112     if ($item->title =~ /^L</) {
113     $title = $item->title;
114     $title =~ s/L<(.+)>/- $1/;
115     $title = $self->xmlise ($title);
116     $title = $self->view_seq_link_top ($title);
117     } else {
118     $title = $item->title;
119     $title = $self->xmlise ($title);
120     }
121    
122     '<li>', ($item->title eq '*' ? '<b>---</b> ' : '<b>' . $title . '</b> '), $item->content->present ($self), "</li>\n"
123     }
124    
125     sub view_textblock { "<p>$_[1]</p>" }
126     sub view_seq_index { "&lt;$_[1]&gt;" }
127     sub view_seq_space { "[$_[1]]" }
128    
129     sub view_for {
130     my ($self, $item) = @_;
131     my $format = $item->format;
132     my $text = $item->text;
133     $text =~ s/X<([^>]+)>/&lt;$1&gt;/g;
134     $text =~ s/S<([^>]+)>/[$1]/g;
135    
136     "<blockquote><b>$format</b> $text</blockquote>"
137     }
138    
139     sub xmlise {
140     my ($self, $text) = @_;
141     $text =~ s/>/&gt;/;
142     $text =~ s/</&lt;/;
143    
144     $text
145     }
146    
147 pippijn 1.3 =head1 AUTHOR
148    
149     Copyright © 2007 Pippijn van Steenhoven
150    
151     =head1 LICENSE
152    
153     This library is free software, you can redistribute it and/or modify
154 pippijn 1.4 it under the terms of the GNU General Public License.
155 pippijn 1.3
156     =cut
157    
158     1