#!/usr/bin/perl
#
# Read in the references, and put into an associative array
#
open FILE, "<refs" || die "Error opening refs: $!\n";
while (<FILE>) {
chop;
split;
$refs{$_[1]} = $_[0];
}
close FILE;
#
# now loop over the input RFC's.
#
foreach $file (@ARGV) {
open FILE, "<$file" || die "Error opening $file: $!\n";
$attribute = "zzzzz";
# get the current reference
$ref = $file;
$ref =~ s/\..*//g;
open OUTPUT, ">$ref.html" || die "Error creating $ref.html: $!\n";
#
# Print out the HTML header
#
print OUTPUT <<EOF;
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Perl">
<title>$ref.html</title>
</head>
<body>
<PRE>
EOF
# loop over the input file
while (<FILE>) {
# html-ize it
s/&/&/g;
s/</</g;
s/>/>/g;
if (/\[Page/) {
print OUTPUT;
next;
}
if (/^RFC \d+/) {
print OUTPUT;
next;
}
chop;
#
# Attribute name header.
#
if (/^\d+\./) {
split;
if ($refs{$_[1]} ne "") {
$attribute = $_[1];
print OUTPUT "<A NAME=\"$attribute\"><H2>$_[0] $attribute</H2></a>\n";
} else {
print OUTPUT "<H2>$_</H2>\n";
$attribute = "zzzz";
}
next;
}
#
# Mark these up special.
#
if ((/^ Description/) ||
(/^ Type/) ||
(/^ Length/) ||
(/^ Value/)) {
print OUTPUT "<B>$_</B>\n";
next;
}
# Make the current attribute name bold
s/$attribute/<B>$attribute<\/B>/g;
split;
#
# Re-write the output with links to where-ever
#
foreach $word (@_) {
$word =~ s/[^-a-zA-Z]//g;
if ($refs{$word} ne "") {
if ($refs{$word} eq $ref) {
s/$word/<A HREF="#$word">$word<\/A>/g;
} else {
s/$word/<A HREF="$refs{$word}.html#$word">$word<\/A>/g;
}
}
}
print OUTPUT $_, "\n";
}
print OUTPUT "</PRE>\n";
print OUTPUT "</BODY>\n";
close OUTPUT;
close FILE;
}
#
# And finally, create the index.
#
open OUTPUT, ">index.html" || die "Error creating index.html: $!\n";
#
# Print out the HTML header
#
print OUTPUT <<EOF;
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Perl">
<title>$ref.html</title>
</head>
<body>
<H2>RADIUS Attribute List</H2>
EOF
$letter = "@";
foreach $key (sort keys %refs) {
if (substr($key,0,1) ne $letter) {
$letter = substr($key,0,1);
print OUTPUT "\n<H3>$letter</H3>\n\n";
}
print OUTPUT "<A HREF=\"$refs{$key}.html#$key\">$key</A><BR>\n";
}
print OUTPUT "</BODY>\n";
close OUTPUT;
syntax highlighted by Code2HTML, v. 0.9.1