# Generate all the documentation files...
#
## removed info files as I cannot generate them - spec.info filter.info
-everything: spec.pdf spec.ps spec.html spec.txt \
- filter.pdf filter.ps filter.html filter.txt \
+## removed html files as superceded by new website code
+everything: spec.pdf spec.ps spec.txt \
+ filter.pdf filter.ps filter.txt \
exim.8
############################## MAN PAGE ################################
filter-pr.xml: filter.xml Pre-xml
./Pre-xml -bookinfo <filter.xml >filter-pr.xml
-filter-html.xml: filter.xml Pre-xml
- ./Pre-xml -html <filter.xml >filter-html.xml
-
filter-txt.xml: filter.xml Pre-xml
./Pre-xml -ascii -html -quoteliteral <filter.xml >filter-txt.xml
###
###
-filter.html: filter-html.xml TidyHTML-filter MyStyle-nochunk-html.xsl \
- MyStyle-html.xsl MyStyle.xsl
- /bin/rm -rf filter.html filter-html.html
- xmlto -x MyStyle-nochunk-html.xsl html-nochunks filter-html.xml
- /bin/mv -f filter-html.html filter.html
- ./TidyHTML-filter
-
filter.txt: filter-txt.xml Tidytxt MyStyle-txt-html.xsl MyStyle-html.xsl \
MyStyle.xsl
/bin/rm -rf filter-txt.html
spec-pr.xml: spec.xml Pre-xml
./Pre-xml -optbreak <spec.xml >spec-pr.xml
-spec-html.xml: spec.xml Pre-xml
- ./Pre-xml -html -oneindex \
- <spec.xml >spec-html.xml
-
spec-txt.xml: spec.xml Pre-xml
./Pre-xml -ascii -html -noindex -quoteliteral \
<spec.xml >spec-txt.xml
###
###
-spec.html: spec-html.xml TidyHTML-spec MyStyle-chunk-html.xsl \
- MyStyle-html.xsl MyStyle.xsl
- /bin/rm -rf spec_html
- xmlto -x MyStyle-chunk-html.xsl -o spec_html html spec-html.xml
- ./TidyHTML-spec
-
spec.txt: spec-txt.xml Tidytxt MyStyle-txt-html.xsl MyStyle-html.xsl \
MyStyle.xsl
/bin/rm -rf spec-txt.html
###
-test.html: test-html.xml MyStyle-nochunk-html.xsl MyStyle-html.xsl \
- MyStyle.xsl
- /bin/rm -rf test.html test-html.html
- xmlto -x MyStyle-nochunk-html.xsl html-nochunks test-html.xml
- /bin/mv -f test-html.html test.html
-
test.txt: test-txt.xml Tidytxt MyStyle-txt-html.xsl MyStyle-html.xsl \
MyStyle.xsl
/bin/rm -rf test-txt.html
+++ /dev/null
-#! /usr/bin/perl
-
-# $Cambridge: exim/doc/doc-docbook/TidyHTML-filter,v 1.3 2006/02/01 11:01:01 ph10 Exp $
-
-# Script to tidy up the filter HTML file that is generated by xmlto. The
-# following changes are made:
-#
-# 1. Split very long lines.
-# 2. Create reverse links from chapter and section titles back to the TOC.
-# 3. Turn <div class="literallayout"><p> into <div class="literallayout"> and
-# a matching </p></div> into </div> to get rid of unwanted vertical white
-# space.
-
-
-$tocref = 1;
-$thisdiv = 0;
-
-# Read in the filter.html file.
-
-open(IN, "filter.html") || die "Failed to open filter.html for reading: $!\n";
-@text = <IN>;
-close(IN);
-
-# Insert a newline after every > in the toc, because the whole toc is generated
-# as one humungous line that is hard to check. Indeed, the start of the first
-# chapter is also on the line, so we have to split if off first. Having
-# inserted newlines, we split the toc into separate items in the vector.
-
-for ($i = 0; $i < scalar(@text); $i++)
- {
- if ($text[$i] =~ ?<title>Exim's interfaces to mail filtering</title>?)
- {
- splice @text, $i, 1, (split /(?=<div class="chapter")/, $text[$i]);
- $text[$i] =~ s/>\s*/>\n/g;
- splice @text, $i, 1, (split /(?<=\n)/, $text[$i]);
- last;
- }
- }
-
-# We want to create reverse links from each chapter and section title back to
-# the relevant place in the TOC. Scan the TOC for the relevant entries. Add
-# an id to each entry, and create tables that remember the new link ids. We
-# detect the start of the TOC by <div class="toc" and the end of the TOC by
-# <div class="chapter".
-
-# Skip to start of TOC
-
-for ($i = 0; $i < scalar(@text); $i++)
- {
- last if $text[$i] =~ /^<div class="toc"/;
- }
-
-# Scan the TOC
-
-for (; $i < scalar(@text); $i++)
- {
- last if $text[$i] =~ /^<div class="chapter"/;
- if ($text[$i] =~ /^<a href="(#[^"]+)">/)
- {
- my($ss) = $1;
- my($id) = sprintf "%04d", $tocref++;
- $text[$i] =~ s/<a/<a id="toc$id"/;
- $backref{"$ss"} = "toc$id";
- }
- }
-
-# Scan remainder of the document
-
-for (; $i < scalar(@text); $i++)
- {
- while ($text[$i] =~
- /^(.*)<a( xmlns="[^"]+")? id="([^"]+)"><\/a>(.*?)<\/h(.*)/)
- {
- my($ref) = $backref{"#$2"};
- $text[$i] = "$1<a$2 href=\"#$ref\" id=\"$3\">$4</a></h$5";
- }
-
- if ($text[$i] =~ /^(.*)<div class="literallayout"><p>(?:<br \/>)?(.*)/)
- {
- my($j);
- $text[$i] = "$1<div class=\"literallayout\">$2";
-
- for ($j = $i + 1; $j < scalar(@text); $j++)
- {
- if ($text[$j] =~ /^<\/p><\/div>/)
- {
- $text[$j] =~ s/<\/p>//;
- last;
- }
- }
- }
- }
-
-# Write out the revised file
-
-open(OUT, ">filter.html") || die "Failed to open filter.html for writing: $!\n";
-print OUT @text;
-close(OUT);
-
-# End
+++ /dev/null
-#! /usr/bin/perl
-
-# $Cambridge: exim/doc/doc-docbook/TidyHTML-spec,v 1.4 2006/04/04 14:03:49 ph10 Exp $
-
-# Script to tidy up the spec HTML files that are generated by xmlto. The
-# following changes are made:
-#
-# 1. Tidy the index.html file by splitting the very long lines.
-# 2. Create reverse links from chapter and section titles back to the TOC.
-# 3. Tidy the ix01.html file - the actual index - by splitting long lines.
-# 4. Insert links from the letter divisions to the top of the Index.
-# 5. Turn <div class="literallayout"><p> into <div class="literallayout"> and
-# a matching </p></div> into </div> to get rid of unwanted vertical white
-# space.
-# 6. Before each occurrence of </td> insert so that the table's cell
-# is a little bit wider than the text itself.
-
-chdir "spec_html";
-
-$tocref = 1;
-
-# Read in the index.html file. It's really the TOC.
-
-open(IN, "index.html") || die "Failed to open index.html for reading: $!\n";
-@toc = <IN>;
-close(IN);
-
-# Insert a newline after every > except when it is preceded by 'class="quote"',
-# because the whole toc is generated as one humungous line that is hard to
-# check. We have to avoid it in the quote case because that puts a space into
-# the output, and similarly for the </span> the comes afterwards. Easy way out
-# is just not to do it for all </span> occurrences. Unfortunately, Perl does
-# not implement lookbehinds where the alternatives are of different lengths, so
-# we have to take two passes.
-
-
-foreach $line (@toc)
- {
- $line =~ s/(?<!class="quote")>\s*/>\n/g;
- $line =~ s/<\/span>\n/<\/span>/g;
- }
-
-# Split the lines so that each one is a separate element in the vector.
-
-for ($i = 0; $i < scalar(@toc); $i++)
- { splice @toc, $i, 1, (split /(?<=\n)/, $toc[$i]); }
-
-# We want to create reverse links from each chapter and section title back to
-# the relevant place in the TOC. Scan the TOC for the relevant entries. Add
-# an id to each entry, and create tables that remember the file names and the
-# new link ids.
-
-foreach $line (@toc)
- {
- if ($line =~ /^<a href="((?:ch|ix)\d+\.html)(#[^"]+)?">/)
- {
- my($chix) = $1;
- my($ss) = $2;
- my($id) = sprintf "%04d", $tocref++;
- $line =~ s/<a/<a id="toc$id"/;
- $backref{"$chix$ss"} = "toc$id";
- push @chlist, $chix;
- }
- }
-
-# Write out the modified index.html file.
-
-open (OUT, ">index.html") || die "Failed to open index.html for writing: $!\n";
-print OUT @toc;
-close(OUT);
-
-# Now scan each of the other page files and insert the reverse links. While
-# we are at it, we tidy up <div class="literallayout"> by removing unwanted
-# paragraph marks, which generate unwanted vertical space. We also insert
-# before </td> to push table cells apart from each other.
-
-foreach $file (@chlist)
- {
- open(IN, "$file") || die "Failed to open $file for reading: $!\n";
- @text = <IN>;
- close(IN);
-
- # Insert a newline after certain elements, and split the lines so that each
- # one is a separate element in the vector. This makes it easier to recognize
- # these elements.
-
- foreach $line (@text)
- {
- $line =~ s/<p>\s*(?!\n)/<p>\n/g;
- $line =~ s/<\/p>\s*(?!\n)/<\/p>\n/g;
- $line =~ s/<\/div>\s*(?!\n)/<\/div>\n/g;
- $line =~ s/<div([^>]*)>(?!\n)/<div$1>\n/g;
- }
-
- for ($i = 0; $i < scalar(@text); $i++)
- { splice @text, $i, 1, (split /(?<=\n)/, $text[$i]); }
-
- $thisdiv = 0;
-
- for ($i = 0; $i < scalar(@text); $i++)
- {
- if ($text[$i] =~ /^(.*?)<a( xmlns="[^"]+")? id="([^"]+)"><\/a>(.+?)<\/h(.*)$/)
- {
- my($pre, $opt, $id, $title, $post) = ($1, $2, $3, $4, $5);
-
- # Section reference
- my($ref) = $backref{"$file#$id"};
-
- # If not found, try for a chapter reference
- $ref = $backref{"$file"} if !defined $ref;
-
- # Adjust the line
- $text[$i]= "$pre<a$opt href=\"index.html#$ref\" id=\"$id\">$title</a></h$post";
- }
-
- elsif ($text[$i] =~ /^<div [^>]*?class="literallayout">$/ && $text[$i+1] eq "<p>\n")
- {
- $text[++$i] = "";
- $thisdiv = 1;
- }
- elsif ($thisdiv && $text[$i] eq "</p>\n" && $text[$i+1] eq "</div>\n")
- {
- $text[$i] = "";
- $thisdiv = 0;
- }
- elsif ($text[$i] =~ /^\s*<\/td>/)
- {
- $text[$i] = " $text[$i]";
- }
- }
-
- open(OUT, ">$file") || die "Failed to open $file for writing: $!\n";
- print OUT @text;
- close(OUT);
- }
-
-# Now process the ix01.html file
-
-open(IN, "ix01.html") || die "Failed to open ix01.html for reading: $!\n";
-@index = <IN>;
-close(IN);
-
-# Insert a newline after every > because the whole index is generated as one
-# humungous line that is hard to check. Then split the lines so that each one
-# is a separate element in the vector.
-
-foreach $line (@index) { $line =~ s/>\s*/>\n/g; }
-for ($i = 0; $i < scalar(@index); $i++)
- { splice @index, $i, 1, (split /(?<=\n)/, $index[$i]); }
-
-# We want to add a list of letters at the top of the index, and link back
-# to them from each letter heading. First find the index title and remember
-# where to insert the list of letters.
-
-for ($i = 0; $i < scalar(@index); $i++)
- {
- if ($index[$i] =~ /^<\/h2>$/)
- {
- $listindex = $i;
- last;
- }
- }
-
-# Now scan through for the letter headings and build the cross references,
-# while also building up the list to insert.
-
-$list = "<h4>\n";
-for (; $i < scalar(@index); $i++)
- {
- if ($index[$i] =~ /^(.)<\/h3>$/)
- {
- $letter = $1;
- $index[$i-1] =~ s/^/<a id="${letter}B" href="#${letter}T">/;
- $index[$i] =~ s/$/<\/a>/;
- $list .= "<a id=\"${letter}T\" href=\"#${letter}B\"> $letter</a>\n";
- }
- }
-
-# Now we know which letters we have, we can insert the list.
-
-$list .= "</h4>\n";
-splice @index, $listindex, 0, $list;
-
-# Write out the modified index.html file.
-
-open (OUT, ">ix01.html") || die "Failed to open ix01.html for writing: $!\n";
-print OUT @index;
-close(OUT);
-
-
-# End
# ------------------------------------------------------------------
-sub build_html_directory {
- my $context = shift;
-
- my $dir = sprintf( 'exim-%s-%s', 'html', $context->{release} );
- my $target = File::Spec->catdir( $dir, 'doc', 'html' );
- mkpath( $target, { verbose => ( $verbose || $debug ) } );
-
- # move documents across
- move( File::Spec->catdir( 'doc/doc-docbook', 'spec_html' ), File::Spec->catdir( $target, 'spec_html' ) );
- foreach my $file ( glob( File::Spec->catfile( 'doc/doc-docbook', '*.html' ) ) ) {
- my $fn = ( File::Spec->splitpath($file) )[2];
- move( $file, File::Spec->catfile( $target, $fn ) );
- }
-}
-
-# ------------------------------------------------------------------
-
sub build_main_package_directory {
my $context = shift;
build_main_package_directory($context);
build_pspdfinfo_directory($context);
- build_html_directory($context);
}
# ------------------------------------------------------------------