Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Yet another POD to HTML converter

by Corion (Pope)
on Mar 12, 2005 at 09:54 UTC ( #438895=sourcecode: print w/replies, xml ) Need Help??
Category: HTML Utility
Author/Contact Info

Thilosophy was looking for a converter of pod to HTML. I uploaded mine, which mostly generates a local HTML tree with relative internal links.

Steal the corresponding css from

#!/usr/bin/perl -w
use strict;
use Pod::Simple::HTML;
use File::Find::Rule;
use File::Spec;
use File::Basename;
use File::Path;

=head1 NAME - create local documentation


my ($docdir,$bindir) = @ARGV;
my $rel_docroot = '.';

  no warnings 'redefine';
  sub Pod::Simple::HTML::resolve_pod_page_link {
    my ($self,$link) = @_;
    my $to = $link;
    $to =~ s!::!-!g;
    $to .= '.html';
    # warn "$rel_docroot/$to";
    return "$rel_docroot/$to";

my @files = File::Find::Rule->file()->name(qr(^.*\.(pm|pl|pod)$))->in(

for my $file (@files) {
  my $input = $file;

  my @outfile = File::Spec->splitdir( File::Spec->abs2rel( $file, $bin
+dir ));
  my $outfile = File::Spec->catfile( $docdir, join "-", @outfile );
  $outfile =~ s/\.[^.]+$/.html/;
  # print "Generating $outfile";

  my $stylesheet = "style.css";

  my $parser = Pod::Simple::HTML->new();
  my $html;
  $html =~ s!</title>\s*</head>!</title><link rel="stylesheet" href="$
+stylesheet" /></head>!sm;

  open OUTPUT, ">", $outfile
    or die "Couldn't create '$outfile': $!";
  print OUTPUT $html;
  close OUTPUT;

  # print ", done.\n";

=head1 AUTHOR

Max Maischein (

Replies are listed 'Best First'.
Re: Yet another POD to HTML converter
by dpavlin (Friar) on Mar 12, 2005 at 18:15 UTC
    Thanks for nice script. I had to change regex which adds stylesheet to:
    $html =~ s!</head>!<link rel="stylesheet" href="$stylesheet" /></head> +!sm;
    I think that this change show make it more compatibile with various html formats that Pod::Simple::HTML produce (I might have different version than you).

Re: Yet another POD to HTML converter
by jmcnamara (Monsignor) on Mar 14, 2005 at 13:11 UTC

    With 3.xx versions of Pod::Simple and Pod::Simple::HTML you can specify the CSS source using the html_css() method:
    ... $parser->output_string($html); $parser->html_css(qq(<link rel="stylesheet" href="$stylesheet"/>)); $parser->parse_file($file); ...
    That way you don't have to do the s///.

    An alternative approach to the general problem would be to use Pod::Webserver.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://438895]
[Corion]: A good daypart!

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2017-01-17 07:56 GMT
Find Nodes?
    Voting Booth?
    Do you watch meteor showers?

    Results (152 votes). Check out past polls.