diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl b/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl new file mode 100644 index 00000000000..d4f41542888 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/bin/genhtmlidx.pl @@ -0,0 +1,158 @@ +#! /usr/bin/perl -w +eval 'exec perl -S $0 ${1+"$@"}' + if 0; #$running_under_some_shell + +# ====================================================================== +# genhtmlidx.pl +# Copyright (c) Markus Kohm, 2002-2006 +# +# This file is part of the LaTeX2e KOMA-Script bundle. +# +# This work may be distributed and/or modified under the conditions of +# the LaTeX Project Public License, version 1.3b of the license. +# The latest version of this license is in +# http://www.latex-project.org/lppl.txt +# and version 1.3b or later is part of all distributions of LaTeX +# version 2005/12/01 or later and of this work. +# +# This work has the LPPL maintenance status "author-maintained". +# +# The Current Maintainer and author of this work is Markus Kohm. +# +# This work consists of all files listed in manifest.txt. +# ---------------------------------------------------------------------- +# genhtmlidx.pl +# Copyright (c) Markus Kohm, 2002-2006 +# +# Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +# Version 1.3b, verteilt und/oder veraendert werden. +# Die neuste Version dieser Lizenz ist +# http://www.latex-project.org/lppl.txt +# und Version 1.3b ist Teil aller Verteilungen von LaTeX +# Version 2005/12/01 oder spaeter und dieses Werks. +# +# Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +# (allein durch den Autor verwaltet). +# +# Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +# +# Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +# ====================================================================== +# This perl script generates a html file with an index using the +# \newlabel entries at the aux files. +# +# Usage: genhtmlidx.pl <aux-file> ... +# ---------------------------------------------------------------------- +# Dieses perl-Script erzeugt aus den \newlabel-Eintraegen der +# aux-Dateien eine html-Datei mit einer Art Index. +# +# Verwendung: genhtmlidx.pl <aux-file> ... +# ====================================================================== + +use strict; + +my $auxfile; +my @option; +my @macro; +my @environment; +my @plength; +my @variable; +my @pagestyle; +my @counter; +my @floatstyle; + +my $baselink; +my $htmlhead; +my $htmlend; +my %titles; + +my $setup=""; +open SETUP,"<htmlsetup" || die "Cannot open htmlsetup!\n"; +while (<SETUP>) { + $setup .= $_; +} +close SETUP; +eval $setup; + +while ( $auxfile=shift ) { + open AUX,"<$auxfile" or die "Cannot read $auxfile!\n"; + while (<AUX>) { + my $line=$_; + if ( /^\\newlabel{desc:[^}]+}{{[^}]*}{([^}]*)}{[^}]*}{([^}]*)}/ ) { + my $anchor=$2; + my $page=$1; + my $entry; + if ( $anchor =~ /^([^.]+)\.([^.]+)\.([^.]+)$/ ) { + $entry = "$3.$page.$1.$2"; + if ( "$2" eq "option" ) { + push @option,$entry; + } elsif ( "$2" eq "macro" ) { + push @macro,$entry; + } elsif ( "$2" eq "environment" ) { + push @environment,$entry; + } elsif ( "$2" eq "plength" ) { + push @plength,$entry; + } elsif ( "$2" eq "variable" ) { + push @variable,$entry; + } elsif ( "$2" eq "pagestyle" ) { + push @pagestyle,$entry; + } elsif ( "$2" eq "counter" ) { + push @counter,$entry; + } elsif ( "$2" eq "floatstyle" ) { + push @floatstyle,$entry; + } else { + print STDERR "Unknown type $2!\n"; + } + } + } + } + close AUX; +} + +sub process { + my $group=shift; + my $prefix=shift; + my $arrayref=shift; + my @entries=sort { $a cmp $b } @$arrayref; + my $entry=""; + if ( @entries > 0 ) { + print "<h2><a name=\"$group\">$titles{$group}</a></h2>\n"; + print "<ul>\n"; + map { + $_ =~ /^([^.]+)\.([^.]+)\.([^.]+)\.([^.]+)$/; + if ( $entry ne $1 ) { + print "</li>\n" if ( $entry ne "" ); + $entry=$1; + print "<li><a name=\"$4.$entry\"></a><a href=\"\#$4.$entry\">$prefix$entry</a> --> "; + } else { + print ", "; + } + print "<a href=\"$baselink\#$3.$4.$1\">$2</a>"; + } @entries; + print "</li>\n" if ( $entry ne "" ); + print "</ul>\n"; + } +} + +print $htmlhead; + +print "<ul>\n"; +print "<li><a href=\"#option\">$titles{option}</a></li>" if ( @option ); +print "<li><a href=\"#macro\">$titles{macro}</a></li>" if ( @macro ); +print "<li><a href=\"#environment\">$titles{environment}</a></li>" if ( @environment ); +print "<li><a href=\"#plength\">$titles{plength}</a></li>" if ( @plength ); +print "<li><a href=\"#variable\">$titles{variable}</a></li>" if ( @variable ); +print "<li><a href=\"#pagestyle\">$titles{pagestyle}</a></li>" if ( @pagestyle ); +print "<li><a href=\"#counter\">$titles{counter}</a></li>" if ( @counter ); +print "<li><a href=\"#floatstyle\">$titles{floatstyle}</a></li>" if ( @floatstyle ); +print "</ul>\n"; + +process "option","",\@option; +process "macro","\\",\@macro; +process "environment","",\@environment; +process "plength","",\@plength; +process "variable","",\@variable; +process "pagestyle","",\@pagestyle; +process "counter","",\@counter; +process "floatstyle","",\@floatstyle; +print $htmlend; |