package PodHTML; use strict; use warnings; use utf8; my $rcsid = '$Id: PodHTML.pm,v 1.5 2007/08/28 17:08:06 pippijn Exp $'; use base "Pod::POM::View"; our $subdir; our $dir; our $menu; sub view_pod { my ($self, $item) = @_; $item->content->present ($self) } sub view_head1 { my ($self, $item) = @_; my $file; if ($item->title =~ /\|/) { my @cmds = split /\|/, $item->title; for my $cmd (@cmds) { my $content = "$cmd\n\n" . $item->content->present ($self); $content =~ s/\$CMD/$cmd/g; $file = "$dir/$subdir/" . lc $cmd . ".tt"; $file =~ s/ /_/g; open my $fh, ">", $file; print $fh $content; close $fh; } } else { if ($subdir) { $file = "$dir/$subdir/" . lc $item->title . ".tt"; } else { $file = "$dir/" . lc $item->title . ".tt"; } $file =~ s/ /_/g; open my $fh, ">", $file; my $content = $item->title->present ($self) . "\n\n" . $item->content->present ($self); print $fh $content; close $fh; } my $name = $file; $name =~ s/$dir\/\w+\/(.+)\.tt/$1/; $name =~ s/_/ /g; my $svs; if ($subdir) { $svs = $subdir; } else { $svs = $dir; } $svs =~ s/serv/Serv/; $svs = ucfirst $svs; $file =~ s/$dir/../; $file =~ s/\.tt$//; $menu->{$svs}->[($#{$menu->{$svs}}) + 1] = { href => "$file.html", title => uc $name, }; } sub view_head2 { my ($self, $item) = @_; '

', $item->title->present ($self), "

", $item->content->present ($self); } sub view_head3 { my ($self, $item) = @_; '

', $item->title->present ($self), "

", $item->content->present ($self); } sub view_head4 { my ($self, $item) = @_; '
', $item->title->present ($self), "
", $item->content->present ($self); } sub view_seq_entity { my ($self, $item) = @_; $item =~ /^x/ ? ('&#', $item, ';') : ('&', $item, ';') } sub view_seq_code { "$_[1]" } sub view_seq_file { "$_[1]" } sub view_seq_bold { "$_[1]" } sub view_seq_link { my $href = lc $_[1]; "$_[1]" } sub view_seq_link_top { my ($title, $href) = split /\|/, $_[1], 2; "$title" } sub view_verbatim { my ($self, $item) = @_; $self->xmlise (\$item); "
\n$item
" } sub view_over { my ($self, $item) = @_; "\n" } sub view_item { my ($self, $item) = @_; my $title; if ($item->title =~ /^Ltitle; $title =~ s/L<(.+)>/- $1/; $self->xmlise (\$title); $title = $self->view_seq_link_top ($title); } else { $title = $item->title; $self->xmlise (\$title); } '
  • ', ($item->title eq '*' ? '( * ) ' : '' . $title . ' '), $item->content->present ($self), "
  • \n" } sub view_textblock { "

    $_[1]

    " } sub view_seq_index { "<$_[1]>" } sub view_seq_space { "[$_[1]]" } sub view_for { my ($self, $item) = @_; my $format = $item->format; my $text = $item->text; $text =~ s/X<([^>]+)>/<$1>/g; $text =~ s/S<([^>]+)>/[$1]/g; "
    $format $text
    " } sub xmlise { my ($self, $text) = @_; $$text =~ s/>/>/; $$text =~ s/