#!/usr/bin/perl
## -*- coding: utf-8 -*-
## Copyright (C) 2015 Laboratoire de Recherche et Développement de
## l'Epita (LRDE).
##
## This file is part of Spot, a model checking library.
##
## Spot is free software; you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 3 of the License, or
## (at your option) any later version.
##
## Spot is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
## License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see .
use strict;
sub error($)
{
print "$0: ", @_;
exit 1;
}
error "Specify a directory with man pages and a directory for html pages\n"
if @ARGV != 2;
my $dir = @ARGV[0];
my $out = @ARGV[1];
opendir(DIR, $dir) or die $!;
while (my $file = readdir(DIR))
{
next unless $file =~ m/\.\d$/;
my $ofile = "$out/$file.html";
$file = "$dir/$file";
print "converting $file to $ofile with groff\n";
my $html = `(echo '.HEAD '
echo '.HEAD '
cat $file) | groff -Kutf8 -mandoc -Thtml - -P -r`;
$html =~ s|GNU GPL version 3 or later.*http://gnu.org/licenses/gpl.html>|GNU GPL version 3 or later|s;
$html =~ s|
.*?
|$&
|smg;
$html =~ s|(.*?
\n)+||sm;
$html =~ s|(.*?)
|$1|g;
$html =~ s|•
. | .| • | \n|smg;
$html =~ s|<spot\@lrde.epita.fr>|<spot\@lrde.epita.fr>|;
$html =~ s|<(https?://.*)>|<$1>|;
$html =~ s| ([^<>]*?:)\s* |$1 |smg;
$html =~ s| ([^<>]*?:)\s*\s* | $1|smg;
$html =~ s| ([^<>]*?:)\s* |$1|smg;
$html =~ s@@@;
$html =~ s{([\w-]+)\((\d+)\)}{
(-f "$dir/$1.$2") ? "$1($2)" : $&;
}xge;
open(FILE, ">$ofile") or die $!;
print FILE $html;
close(FILE);
}
closedir(DIR);
exit 0;
|