1 [[!template id=plugin name=mandoc author="[[schmonz]]"]]
4 This plugin lets ikiwiki convert Unix man pages to HTML. It uses
5 [mdocml](http://mdocml.bsd.lv/) for the conversion, and postprocesses
8 Sample output: <http://wiki.netbsd.org/users/schmonz/tunefs.8/>
14 package IkiWiki::Plugin::mandoc;
23 hook(type => "getsetup", id => "mandoc", call => \&getsetup);
24 hook(type => "htmlize", id => $_, call => \&htmlize, keepextension => 1)
25 foreach ('man', 1..9);
32 rebuild => 1, # format plugin
39 my $content = decode_utf8(encode_utf8($params{content}));
41 return $content if $@;
43 my $pid = open2(*MANDOCOUT, *MANDOCIN, 'mandoc', '-Thtml');
44 binmode($_, ':utf8') foreach (*MANDOCOUT, *MANDOCIN);
46 print MANDOCIN $content;
48 my @html_output = <MANDOCOUT>;
52 my $html = join('', @html_output);
53 my $link_prefix = $config{usedirs} ? '../' : '';
54 my $link_suffix = $config{usedirs} ? '/' : '';
55 $html =~ s|<a class="link-man">(.+?)\((.)\)</a>|<a class="link-man" href="$link_prefix$1.$2$link_suffix">$1($2)</a>|g;