]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/plugins/contrib/mandoc.mdwn
Add ikistrap plugin for ikistrap theme.
[git.ikiwiki.info.git] / doc / plugins / contrib / mandoc.mdwn
index e4ff96d08d525ec51efd67b98a571bd151fbb418..464aec63cfdf5c960f46b4c5df673de122fa7377 100644 (file)
@@ -1,60 +1,12 @@
 [[!template id=plugin name=mandoc author="[[schmonz]]"]]
+[[!template id=gitbranch branch=schmonz/mandoc author="[[schmonz]]"]]
 [[!tag type/format]]
 
 This plugin lets ikiwiki convert Unix man pages to HTML. It uses
-[mdocml](http://mdocml.bsd.lv/) for the conversion, and postprocesses
+[mandoc](http://mandoc.bsd.lv) for the conversion, and postprocesses
 xrefs into hyperlinks.
 
-Sample output: <http://wiki.netbsd.org/users/schmonz/tunefs.8/>
+Possible enhancements:
 
------
-
-
-    #!/usr/bin/perl
-    package IkiWiki::Plugin::mandoc;
-    
-    use warnings;
-    use strict;
-    use IkiWiki 3.00;
-    use Encode;
-    use IPC::Open2;
-    
-    sub import {
-       hook(type => "getsetup", id => "mandoc", call => \&getsetup);
-       hook(type => "htmlize", id => $_, call => \&htmlize, keepextension => 1)
-               foreach ('man', 1..9);
-    }
-    
-    sub getsetup () {
-       return
-               plugin => {
-                       safe => 1,
-                       rebuild => 1, # format plugin
-                       section => "format",
-               },
-    }
-    
-    sub htmlize (@) {
-       my %params=@_;
-       my $content = decode_utf8(encode_utf8($params{content}));
-    
-       return $content if $@;
-    
-       my $pid = open2(*MANDOCOUT, *MANDOCIN, 'mandoc', '-Thtml');
-       binmode($_, ':utf8') foreach (*MANDOCOUT, *MANDOCIN);
-    
-       print MANDOCIN $content;
-       close MANDOCIN;
-       my @html_output = <MANDOCOUT>;
-       close MANDOCOUT;
-       waitpid $pid, 0;
-    
-       my $html = join('', @html_output);
-       my $link_prefix = $config{usedirs} ? '../' : '';
-       my $link_suffix = $config{usedirs} ? '/' : '';
-       $html =~ s|<a class="link-man">(.+?)\((.)\)</a>|<a class="link-man" href="$link_prefix$1.$2$link_suffix">$1($2)</a>|g;
-    
-       return $html;
-    }
-    
-    1
+* configurable path and args to `mandoc` (and it could be `groff`)
+* configurable location for rendered manpages (such as subdirs per section)