From f2dca770da6b7d7e56195e84ae804f1cb5c466b3 Mon Sep 17 00:00:00 2001
From: 
 "https://www.google.com/accounts/o8/id?id=AItOawnxp2XU8gIribhhGhGuYtU6eMMwHv5gUGI"
 <Amitai@web>
Date: Wed, 8 Jun 2011 19:41:47 +0000
Subject: [PATCH] t3h c0d35

---
 doc/plugins/contrib/mandoc.mdwn | 52 +++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/doc/plugins/contrib/mandoc.mdwn b/doc/plugins/contrib/mandoc.mdwn
index e541c194e..e4ff96d08 100644
--- a/doc/plugins/contrib/mandoc.mdwn
+++ b/doc/plugins/contrib/mandoc.mdwn
@@ -6,3 +6,55 @@ This plugin lets ikiwiki convert Unix man pages to HTML. It uses
 xrefs into hyperlinks.
 
 Sample output: <http://wiki.netbsd.org/users/schmonz/tunefs.8/>
+
+-----
+
+
+    #!/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
-- 
2.39.5