/ doc / mdwn2man
mdwn2man
 1  #!/usr/bin/env perl
 2  # Warning: hack
 3  
 4  my $prog=shift;
 5  my $section=shift;
 6  
 7  print ".TH $prog $section\n";
 8  
 9  while (<>) {
10  	s{(\\?)\[\[([^\s\|\]]+)(\|[^\s\]]+)?\]\]}{$1 ? "[[$2]]" : $2}eg;
11  	s/\`([^\`]*)\`/\\fB$1\\fP/g;
12  	s/\`//g;
13  	s/^\s*\./\\&./g;
14  	if (/^#\s/) {
15  		s/^#\s/.SH /;
16  		<>; # blank;
17  	}
18  	s/^[ \n]+//;
19  	s/^\t/ /;
20  	s/-/\\-/g;
21  	s/^Warning:.*//g;
22  	s/^$/.PP\n/;
23  	s/^\*\s+(.*)/.IP "$1"/;
24  	next if $_ eq ".PP\n" && $skippara;
25  	if (/^.IP /) {
26  		$inlist=1;
27  		$spippara=0;
28  	}
29  	elsif (/^.SH/) {
30  		$skippara=0;
31  		$inlist=0;
32  	}
33  	elsif (/^\./) {
34  		$skippara=1;
35  	}
36  	else {
37  		$skippara=0;
38  	}
39  	if ($inlist && $_ eq ".PP\n") {
40  		$_=".IP\n";
41  	}
42  
43  	print $_;
44  }