#!/usr/bin/perl ## -*- coding: utf-8 -*- ## Copyright (C) 2015 Laboratoire de Recherche et Développement de ## l'Epita (LRDE). ## Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), ## département Systèmes Répartis Coopératifs (SRC), Université Pierre ## et Marie Curie. ## ## 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\n" if @ARGV != 1; my $dir = @ARGV[0]; opendir(DIR, $dir) or die $!; while (my $file = readdir(DIR)) { next unless $file =~ m/\.\d$/; $file = "$dir/$file"; print "converting $file to $file.html 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)+|

Table of Contents

    \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 "$1.$2") ? "$1($2)" : $&; }xge; open(FILE, ">$file.html"); print FILE $html; close(FILE); } closedir(DIR); exit 0;