OK, so there were already a thousand solutions for converting pod to HTML, but I wasn’t especially happy with any of them. Things I wanted were:
- Clean-looking XHTML and/or HTML5 output.
- Unicode support. ☻
- Good syntax highlighting for Perl code samples within the pod.
- Links to metacpan.org by default rather than search.cpan.org.
And so I’ve cobbled together a solution using Pod::Simple, PPI::HTML, HTML::HTML5::Parser, HTML::HTML5::Writer, XML::LibXML::PrettyPrint and Moo, and released it as TOBYINK::Pod::HTML.
Here’s the example from the synopsis section:
1: #!/usr/bin/perl 2: 3: use strict; 4: use warnings; 5: use TOBYINK::Pod::HTML; 6: 7: my $pod2html = "TOBYINK::Pod::HTML"->new( 8: pretty => 1, # nicely indented HTML 9: code_highlighting => 1, # use PPI::HTML 10: code_line_numbers => undef, 11: code_styles => { # some CSS 12: comment => 'color:green', 13: keyword => 'font-weight:bold', 14: } 15: ); 16: 17: print $pod2html->file_to_html(__FILE__);
There’s a basic command-line script pod2html-tobyink
supplied with it.
Oh, and this blog post was written as pod and converted to HTML.