aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2021-02-07 20:55:00 +0200
committerSergey Poznyakoff <gray@gnu.org>2021-02-07 20:55:00 +0200
commitba4f63d5773522e768a4bbdc4f7f3df69d83e945 (patch)
tree04c1df17dd184b07eb6eeb32e50fb59bf8e27cce
parente246e983fc7f71d349bedb119a9c584581af6772 (diff)
downloadwyslij-po-ba4f63d5773522e768a4bbdc4f7f3df69d83e945.tar.gz
wyslij-po-ba4f63d5773522e768a4bbdc4f7f3df69d83e945.tar.bz2
Change the webdocs
* doc/Makefile.am: Change rules for web documentation. * doc/check-docs.sh: Remove. * doc/gendocs.sh: Remove. * doc/gendocs_template: Remove. * doc/html.init: Remove. * doc/mastermenu.el: Remove. * doc/untabify.el: Remove. * doc/gendocs.pl: New file. * doc/otherdoc.texi.in: New file. * doc/webdoc.init: New file. * doc/wyslij-po.texi: Add appendices for downloads and this manual in other formats.
-rw-r--r--doc/.gitignore2
-rw-r--r--doc/Makefile.am40
-rwxr-xr-xdoc/check-docs.sh76
-rw-r--r--doc/gendocs.pl482
-rwxr-xr-xdoc/gendocs.sh490
-rwxr-xr-xdoc/gendocs_template68
-rw-r--r--doc/html.init166
-rw-r--r--doc/mastermenu.el91
-rw-r--r--doc/otherdoc.texi.in9
-rw-r--r--doc/untabify.el13
-rw-r--r--doc/webdoc.init8
-rw-r--r--doc/wyslij-po.texi58
12 files changed, 563 insertions, 940 deletions
diff --git a/doc/.gitignore b/doc/.gitignore
index 7637ab3..5c6a359 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -2,3 +2,5 @@
/version.texi
/wyslij-po.info
/wyslij-po.t2d/
+/otherdoc.texi
+/manual
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 060098a..dd0e9b0 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -21,40 +21,14 @@ wyslij_po_TEXINFOS=\
fdl.texi\
values.texi
-EXTRA_DIST = \
- check-docs.sh\
- gendocs_template\
- mastermenu.el\
- untabify.el
-
-clean-local:
- rm -rf manual
-
-#
-
-master-menu:
- emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS)
-
-untabify:
- emacs -batch -l untabify.el $(info_TEXINFOS) $(wyslij_po_TEXINFOS)
-
-final: untabify master-menu
-
-GENDOCS=gendocs.sh
-
-TEXI2DVI=texi2dvi --tidy -t '@set $(RENDITION)' -E
-
-# Make sure you set TEXINPUTS.
-# TEXINPUTS=/usr/share/texmf/pdftex/plain/misc/ is ok for most distributions
+GENDOCS = perl gendocs.pl
+EXTRA_DIST = gendocs.pl webdoc.init otherdoc.texi.in
.PHONY: manual
manual:
+ rm -rf manual
TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
- MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \
- TEXI2DVI="$(TEXI2DVI) -t @finalout" \
- $(SHELL) $(GENDOCS) --no-copy-images $(PACKAGE) '$(PACKAGE_NAME) manual'
-
-manual.tar.bz2: manual
- tar cfj manual.tar.bz2 manual
-
-man-tar: manual.tar.bz2
+ MAKEINFO="$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS)" \
+ $(GENDOCS) -C manual -o otherdoc.texi $(PACKAGE) otherdoc.texi.in
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -DWEBDOC \
+ --html --init-file=webdoc.init $(info_TEXINFOS) -o manual
diff --git a/doc/check-docs.sh b/doc/check-docs.sh
deleted file mode 100755
index 6595772..0000000
--- a/doc/check-docs.sh
+++ /dev/null
@@ -1,76 +0,0 @@
-#! /bin/sh
-# This file is part of mailfrom filter.
-# Copyright (C) 2006-2021 Sergey Poznyakoff
-#
-# This program 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, or (at your option)
-# any later version.
-#
-# This program 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, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301 USA
-
-usage() {
- cat <<EOT
-usage: $0 item code-sed doc-sed sources -- args...
-EOT
-}
-
-if [ $# -le 4 ]; then
- usage
- exit 2
-fi
-
-item=$1
-shift
-codesexp="$1"
-shift
-docsexp=$1
-shift
-
-source=
-while [ $# -ne 0 ]
-do
- if [ "$1" = "--" ]; then
- shift
- break;
- fi
- source="$source $1"
- shift
-done
-
-TEMPDIR=/tmp/mfck.$$
-mkdir $TEMPDIR || exit 1
-trap 'rm -rf $TEMPDIR' 1 2 13 15
-
-sed -n "$codesexp" $source | sort | uniq > $TEMPDIR/src
-$* | \
- sed -n '/^@macro/,/^@end macro/d;'"$docsexp" \
- | sort | uniq > $TEMPDIR/doc
-
-join -v1 $TEMPDIR/src $TEMPDIR/doc > $TEMPDIR/src-doc
-join -v2 $TEMPDIR/src $TEMPDIR/doc > $TEMPDIR/doc-src
-(if [ -s $TEMPDIR/src-doc ]; then
- echo "Not documented $item:"
- cat $TEMPDIR/src-doc
- fi
- if [ -s $TEMPDIR/doc-src ]; then
- echo "Non-existing $item:"
- cat $TEMPDIR/doc-src
- fi) > $TEMPDIR/report
-
-if [ -s $TEMPDIR/report ]; then
- cat $TEMPDIR/report
- rm -rf $TEMPDIR
- exit 1
-else
- rm -rf $TEMPDIR
- exit 0
-fi
diff --git a/doc/gendocs.pl b/doc/gendocs.pl
new file mode 100644
index 0000000..1681006
--- /dev/null
+++ b/doc/gendocs.pl
@@ -0,0 +1,482 @@
+# This file is part of GNU Pies.
+# Copyright (C) 2020-2021 Sergey Poznyakoff
+#
+# GNU Pies 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, or (at your option)
+# any later version.
+#
+# GNU Pies 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 GNU Pies. If not, see <http://www.gnu.org/licenses/>.
+
+use strict;
+use warnings;
+use Getopt::Long qw(:config gnu_getopt no_ignore_case);
+use File::Basename;
+use File::Spec;
+use File::Path qw(make_path);
+use Pod::Usage;
+
+my $dirname = '.';
+my $pkgname;
+my $srcname;
+my $output_name;
+my @includes;
+
+GetOptions("h" => sub {
+ pod2usage(-message => "$0: generate docs",
+ -exitstatus => 0);
+ },
+ "help" => sub {
+ pod2usage(-exitstatus => 0, -verbose => 2);
+ },
+ "usage" => sub {
+ pod2usage(-exitstatus => 0, -verbose => 0);
+ },
+ 'source|s=s' => \$srcname,
+ 'directory|C=s' => \$dirname,
+ 'output|o=s' => \$output_name,
+ 'include|I=s@' => \@includes
+ ) or exit(1);
+
+$pkgname = shift @ARGV or pod2usage(-exitstatus => 1, -verbose => 0);
+$srcname //= "${pkgname}.texi";
+my $template_name = shift @ARGV or pod2usage(-exitstatus => 1, -verbose => 0);
+
+unless (-d $dirname) {
+ make_path($dirname);
+}
+
+unless ($output_name) {
+ $output_name = File::Spec->catfile($dirname, (fileparse($template_name, qr/\.[^.]*/))[0]);
+}
+
+if (@includes) {
+ @includes = map { '-I '.$_} @includes;
+ # FIXME: Not used yet
+}
+
+sub template_scan {
+ my $file = shift;
+ open(FH, '<', $file) or die "can't open $file: $!\n";
+ my $line = 0;
+ while (<FH>) {
+ chomp;
+ ++$line;
+ s{ \$ ((?:BASE)?FILE|SIZE) \( ([a-z_]+) \) }{
+ eval { Gendocs->instance($2, $pkgname, $srcname) };
+ if ($@) {
+ if ($@ =~ m{Can't locate object method "new"}) {
+ die "$file:$line: unknown format: $2\n";
+ } else {
+ die $@;
+ }
+ }
+ }gex;
+ }
+ close FH
+}
+
+sub template_expand {
+ my ($infile, $outfile) = @_;
+ open(IFH, '<', $infile) or die "can't open $infile: $!\n";
+ open(OFH, '>', $outfile) or die "can't open $outfile: $!\n";
+ while (<IFH>) {
+ chomp;
+ s{ \$ ((?:BASE)?FILE|SIZE) \( ([a-z_]+) \) }{
+ if ($1 eq 'FILE') {
+ Gendocs->instance($2)->output;
+ } elsif ($1 eq 'BASEFILE') {
+ basename(Gendocs->instance($2)->output);
+ } else {
+ Gendocs->instance($2)->size;
+ }
+ }gex;
+ print OFH "$_\n";
+ }
+}
+
+template_scan $template_name;
+Gendocs->generate();
+template_expand($template_name, $output_name);
+Gendocs->sweep();
+
+package Gendocs;
+use strict;
+use warnings;
+
+my %registry;
+
+sub generate {
+ my ($class) = @_;
+ my @keys = keys %registry;
+ foreach my $k (@keys) {
+ $registry{$k}->build();
+ $registry{$k}->mark();
+ }
+}
+
+sub sweep {
+ my ($class) = @_;
+ my @keys = keys %registry;
+ foreach my $k (@keys) {
+ unless ($registry{$k}->has_mark) {
+ $registry{$k}->remove;
+ delete $registry{$k};
+ }
+ }
+}
+
+sub new {
+ my ($class, $pkgname, $name) = @_;
+ unless (exists($registry{$class})){
+ $registry{$class} = bless { pkgname => $pkgname, input => $name }, $class;
+ }
+ return $registry{$class}
+}
+sub instance {
+ my ($class, $fmt, @args) = @_;
+ my $subclass = "Gendocs::".ucfirst($fmt);
+ unless (exists($registry{$subclass})) {
+ $registry{$subclass} = $subclass->new(@args);
+ }
+ return $registry{$subclass};
+}
+
+sub runcom {
+ my $self = shift;
+ system @_;
+ if ($? == -1) {
+ die "failed to execute $_[0]: $!";
+ } elsif ($? & 127) {
+ die sprintf("$_[0] died with signal %d\n", $? & 127);
+ } elsif ($? >> 8) {
+ warn sprintf("$_[0] exited with value %d\n", $? >> 8);
+ }
+}
+
+sub mark { shift->{mark} = 1 }
+sub has_mark { shift->{mark} }
+sub remove {
+ my ($self) = @_;
+ if ($self->{output}) {
+ unlink $self->{output};
+ delete $self->{output};
+ }
+}
+sub size {
+ my ($self) = @_;
+ my $s = (stat($self->output))[7];
+ if ($s > 1048576) {
+ $s = int($s / 1048576) . 'M';
+ } elsif ($s > 1024) {
+ $s = int($s / 1024) . 'K';
+ }
+ return $s;
+}
+
+sub pkgname { shift->{pkgname} }
+sub input { shift->{input} }
+sub output { shift->{output} }
+
+package Gendocs::Makeinfo;
+use strict;
+use warnings;
+use base 'Gendocs';
+
+sub new {
+ my $class = shift;
+ my $self = $class->SUPER::new(@_);
+ $self->{makeinfo} = $ENV{'MAKEINFO'} || 'makeinfo';
+ return $self;
+}
+
+package Gendocs::Info;
+use strict;
+use warnings;
+use base 'Gendocs::Makeinfo';
+
+sub build {
+ my ($self) = @_;
+ unless ($self->{output}) {
+ my $output = File::Spec->catfile($dirname, $self->pkgname . '.info');
+ print "Generating info file: " . $self->input . " -> $output\n";
+ $self->runcom("$self->{makeinfo} -o $output " . $self->input);
+ $self->{output} = $output;
+ }
+ return $self->{output};
+}
+
+package Gendocs::Info_gz;
+use strict;
+use warnings;
+use base 'Gendocs';
+
+sub build {
+ my ($self) = @_;
+ unless ($self->{output}) {
+ my $input = Gendocs->instance('info', $self->pkgname, $self->input)->build();
+ my $output = "$input.gz";
+ print "Compressing info file: $input -> $output\n";
+ $self->runcom("gzip -f -9 -c $input > $output");
+ $self->{output} = $output;
+ }
+ return $self->{output};
+}
+
+package Gendocs::Ascii;
+use strict;
+use warnings;
+use base 'Gendocs::Makeinfo';
+
+sub build {
+ my ($self) = @_;
+ unless ($self->{output}) {
+ my $output = File::Spec->catfile($dirname, $self->pkgname . '.txt');
+ print "Generating ascii file: " . $self->input . " -> $output\n";
+ $self->runcom("$self->{makeinfo} -o $output --no-split --no-headers " . $self->input);
+ $self->{output} = $output;
+ }
+ return $self->{output};
+}
+
+package Gendocs::Ascii_gz;
+use strict;
+use warnings;
+use base 'Gendocs';
+
+sub build {
+ my ($self) = @_;
+ unless ($self->{output}) {
+ my $input = Gendocs->instance('ascii', $self->pkgname, $self->input)->build();
+ my $output = "$input.gz";
+ print "Compressing ascii file: $input -> $output\n";
+ $self->runcom("gzip -f -9 -c $input > $output");
+ $self->{output} = $output;
+ }
+ return $self->{output};
+}
+
+package Gendocs::Texinfo_gz;
+use strict;
+use warnings;
+use base 'Gendocs';
+
+sub build {
+ my ($self) = @_;
+ unless ($self->{output}) {
+ my $output = File::Spec->catfile($dirname, $self->pkgname . '.tar.gz');
+ print "Creating compressed sources: $output\n";
+ $self->runcom("tar czfh $output *.texinfo *.texi *.txi *.eps 2>/dev/null || /bin/true");
+ $self->{output} = $output;
+ }
+ return $self->{output};
+}
+
+package Gendocs::Dvi;
+use strict;
+use warnings;
+use base 'Gendocs';
+use File::Temp qw(tempdir);
+
+sub new {
+ my $class = shift;
+ my $self = $class->SUPER::new(@_);
+ $ENV{TEXI2DVI_BUILD_DIRECTORY} = tempdir(CLEANUP => 1);
+ $self->{texi2dvi} = $ENV{'TEXI2DVI'} || 'texi2dvi --build=tidy -t @finalout';
+ return $self;
+}
+
+sub build {
+ my ($self) = @_;
+ unless ($self->{output}) {
+ my $output = File::Spec->catfile($dirname, $self->pkgname . '.dvi');
+ my $cmd = "$self->{texi2dvi} -o $output $self->{input}";
+ print "Creating dvi: $cmd\n";
+ $self->runcom($cmd);
+ $self->{output} = $output;
+ }
+ return $self->{output};
+}
+
+package Gendocs::Dvi_gz;
+use strict;
+use warnings;
+use base 'Gendocs';
+
+sub build {
+ my ($self) = @_;
+ unless ($self->{output}) {
+ my $input = Gendocs->instance('dvi', $self->pkgname, $self->input)->build();
+ my $output = "$input.gz";
+ print "Compressing dvi file: $input -> $output\n";
+ $self->runcom("gzip -f -9 -c $input > $output");
+ $self->{output} = $output;
+ }
+ return $self->{output};
+}
+
+package Gendocs::Pdf;
+use strict;
+use warnings;
+use base 'Gendocs::Dvi';
+
+sub build {
+ my ($self) = @_;
+ unless ($self->{output}) {
+ my $output = File::Spec->catfile($dirname, $self->pkgname . '.pdf');
+ my $cmd = "$self->{texi2dvi} -o $output --pdf $self->{input}";
+ print "Creating pdf: $cmd\n";
+ $self->runcom($cmd);
+ $self->{output} = $output;
+ }
+ return $self->{output};
+}
+__END__
+=head1 NAME
+
+gendocs.pl - generate documentation in various formats
+
+=head1 SYNOPSIS
+
+B<gendocs.pl>
+[B<-C> I<DIR>]
+[B<-s> I<SOURCE>]
+[B<-o> I<OUTPUT-FILE>]
+[B<-I> I<INCLUDE-DIR>]
+[B<--directory=>I<DIR>]
+[B<--include=>I<INCLUDE-DIR>]
+[B<--output=>I<OUTPUT-FILE>]
+[B<--source=>I<SOURCE>]
+I<PACKAGE> I<TEMPLATE>
+
+B<gendocs.pl> B<-h> | B<--help> | B<--usage>
+
+=head1 DESCRIPTION
+
+Generates documentation for the I<PACKAGE> in various formats. I<TEMPLATE>
+is a template file for the index page. When processing I<TEMPLATE> the
+following I<macros> inform B<gendocs.pl> about the desired documentation
+formats and are expanded on output:
+
+=over 4
+
+=item B<$FILE(I<FORMAT>)>
+
+Full pathname of the documentation file in format I<FORMAT>.
+
+=item B<$BASEFILE(I<FORMAT>)>
+
+Base name of the documentation file for format I<FORMAT>.
+
+=item B<$SIZE(I<FORMAT>)>
+
+Size of the documentation file in format I<FORMAT>. Proper size suffix
+(B<K> or B<M>) is appended, as needed.
+
+=back
+
+The file is processed twice. On the first pass, the program collects the
+mentioned I<FORMAT>s. Then the requested files are generated. On the
+second pass, the macros are replaced with the actual values and the output
+index file is generated. The name of the index file can be supplied using
+the B<-o> (B<--output>) option. If it is not given, the name is obtained
+by removing last suffix (a substring beginning with a dot and containing
+one or more characters, excepting dots) from the I<TEMPLATE> argument.
+
+Unless the B<-C> (B<--directory>) option is given, the output will be
+generated in the current working directory. If the B<-C> option is
+given, all output files, including index file, will be generated in
+the supplied directory.
+
+The following output formats are supported:
+
+=over 4
+
+=item B<info>
+
+Monolithic info file.
+
+=item B<info_gz>
+
+Monolithic info file, compressed with B<gzip>
+
+=item B<ascii>
+
+Monolithic ASCII file.
+
+=item B<ascii_gz>
+
+Monolithic ASCII file, compressed with B<gzip>
+
+=item B<texinfo_gz>
+
+A tar archive with the Texinfo documentation sources, compressed with B<gzip>.
+
+=item B<dvi>
+
+TeX B<dvi> file.
+
+=item B<dvi_gz>
+
+TeX B<dvi> file, compressed with B<gzip>
+
+=item B<pdf>
+
+A B<PDF> file.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-C>, B<--directory=>I<DIR>
+
+Create all output files in the directory I<DIR>.
+
+=item B<-s>, B<--source=>I<SOURCE>
+
+Name of the main Texinfo source file. By default F<I<PACKAGE>.texi> is
+used.
+
+=item B<-o>, B<--output=>I<OUTPUT-FILE>
+
+Name of the output index file. By default it is constructed by removing
+the last filename suffix from I<TEMPLATE>. E.g. F<index.texi.in> produces
+F<index.texi>.
+
+=item B<-I>, B<--include=>I<INCLUDE-DIR>
+
+Name of the directory with Texinfo include files. This option is not
+actually used. It is reserved for future use.
+
+=back
+
+=head1 ENVIRONMENT
+
+The following environment variables affect the behavior of B<gendocs.pl>:
+
+=over 4
+
+=item B<MAKEINFO>
+
+Name and initial options of the B<makeinfo> program.
+
+=item B<TEXI2DVI>
+
+Name and initial options of the B<texi2dvi> program. The default is
+F<texi2dvi --build=tidy -t @finalout>.
+
+=item B<TEXINPUTS>
+
+Used by F<texi2dvi>. Colon-separated list of Texinfo input directories.
+
+=back
+
+=cut
diff --git a/doc/gendocs.sh b/doc/gendocs.sh
deleted file mode 100755
index 38c4d05..0000000
--- a/doc/gendocs.sh
+++ /dev/null
@@ -1,490 +0,0 @@
-#!/bin/sh -e
-# gendocs.sh -- generate a GNU manual in many formats. This script is
-# mentioned in maintain.texi. See the help message below for usage details.
-
-scriptversion=2015-02-28.17
-
-# Copyright 2003-2013, 2015, 2017, 2020-2021 Free Software Foundation,
-# Inc.
-#
-# This program 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.
-#
-# This program 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 <http://www.gnu.org/licenses/>.
-#
-# Original author: Mohit Agarwal.
-# Send bug reports and any other correspondence to bug-texinfo@gnu.org.
-#
-# The latest version of this script, and the companion template, is
-# available from Texinfo CVS:
-# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh
-# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template
-#
-# An up-to-date copy is also maintained in Gnulib (gnu.org/software/gnulib).
-
-# TODO:
-# - image importation was only implemented for HTML generated by
-# makeinfo. But it should be simple enough to adjust.
-# - images are not imported in the source tarball. All the needed
-# formats (PDF, PNG, etc.) should be included.
-
-prog=`basename "$0"`
-srcdir=`pwd`
-
-scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh"
-templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template"
-
-: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
-: ${MAKEINFO="makeinfo"}
-: ${TEXI2DVI="texi2dvi -t @finalout"}
-: ${DOCBOOK2HTML="docbook2html"}
-: ${DOCBOOK2PDF="docbook2pdf"}
-: ${DOCBOOK2TXT="docbook2txt"}
-: ${GENDOCS_TEMPLATE_DIR="."}
-: ${PERL='perl'}
-: ${TEXI2HTML="texi2html"}
-unset CDPATH
-unset use_texi2html
-
-version="gendocs.sh $scriptversion
-
-Copyright 2013 Free Software Foundation, Inc.
-There is NO warranty. You may redistribute this software
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING."
-
-usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
-
-Generate output in various formats from PACKAGE.texinfo (or .texi or
-.txi) source. See the GNU Maintainers document for a more extensive
-discussion:
- http://www.gnu.org/prep/maintain_toc.html
-
-Options:
- --email ADR use ADR as contact in generated web pages; always give this.
-
- -s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi}
- -o OUTDIR write files into OUTDIR, instead of manual/.
- -I DIR append DIR to the Texinfo search path.
- --common ARG pass ARG in all invocations.
- --html ARG pass ARG to makeinfo or texi2html for HTML targets.
- --info ARG pass ARG to makeinfo for Info, instead of --no-split.
- --no-ascii skip generating the plain text output.
- --no-copy-images
- don't try to copy images referenced by img HTML tags,
- --source ARG include ARG in tar archive of sources.
- --split HOW make split HTML by node, section, chapter; default node.
-
- --texi2html use texi2html to make HTML target, with all split versions.
- --docbook convert through DocBook too (xml, txt, html, pdf).
-
- --help display this help and exit successfully.
- --version display version information and exit successfully.
-
-Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\"
-
-Typical sequence:
- cd PACKAGESOURCE/doc
- wget \"$scripturl\"
- wget \"$templateurl\"
- $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
-
-Output will be in a new subdirectory \"manual\" (by default;
-use -o OUTDIR to override). Move all the new files into your web CVS
-tree, as explained in the Web Pages node of maintain.texi.
-
-Please use the --email ADDRESS option so your own bug-reporting
-address will be used in the generated HTML pages.
-
-MANUAL-TITLE is included as part of the HTML <title> of the overall
-manual/index.html file. It should include the name of the package being
-documented. manual/index.html is created by substitution from the file
-$GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the
-generic template for your own purposes.)
-
-If you have several manuals, you'll need to run this script several
-times with different MANUAL values, specifying a different output
-directory with -o each time. Then write (by hand) an overall index.html
-with links to them all.
-
-If a manual's Texinfo sources are spread across several directories,
-first copy or symlink all Texinfo sources into a single directory.
-(Part of the script's work is to make a tar.gz of the sources.)
-
-As implied above, by default monolithic Info files are generated.
-If you want split Info, or other Info options, use --info to override.
-
-You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML,
-and PERL to control the programs that get executed, and
-GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is
-looked for. With --docbook, the environment variables DOCBOOK2HTML,
-DOCBOOK2PDF, and DOCBOOK2TXT are also consulted.
-
-By default, makeinfo and texi2dvi are run in the default (English)
-locale, since that's the language of most Texinfo manuals. If you
-happen to have a non-English manual and non-English web site, see the
-SETLANG setting in the source.
-
-Email bug reports or enhancement requests to bug-texinfo@gnu.org.
-"
-
-MANUAL_TITLE=
-PACKAGE=
-EMAIL=webmasters@gnu.org # please override with --email
-commonarg= # passed to all makeinfo/texi2html invcations.
-dirargs= # passed to all tools (-I dir).
-dirs= # -I's directories.
-htmlarg=
-infoarg=--no-split
-generate_ascii=true
-outdir=manual
-source_extra=
-split=default
-srcfile=
-no_copy_images=
-
-while test $# -gt 0; do
- case $1 in
- -s) shift; srcfile=$1;;
- -o) shift; outdir=$1;;
- -I) shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";;
- --common) shift; commonarg=$1;;
- --docbook) docbook=yes;;
- --email) shift; EMAIL=$1;;
- --html) shift; htmlarg=$1;;
- --info) shift; infoarg=$1;;
- --no-ascii) generate_ascii=false;;
- --source) shift; source_extra=$1;;
- --split) shift; split=$1;;
- --texi2html) use_texi2html=1;;
- --no-copy-images) no_copy_images=1;;
- --help) echo "$usage"; exit 0;;
- --version) echo "$version"; exit 0;;
- -*)
- echo "$0: Unknown option \`$1'." >&2
- echo "$0: Try \`--help' for more information." >&2
- exit 1;;
- *)
- if test -z "$PACKAGE"; then
- PACKAGE=$1
- elif test -z "$MANUAL_TITLE"; then
- MANUAL_TITLE=$1
- else
- echo "$0: extra non-option argument \`$1'." >&2
- exit 1
- fi;;
- esac
- shift
-done
-
-# makeinfo uses the dirargs, but texi2dvi doesn't.
-commonarg=" $dirargs $commonarg"
-
-# For most of the following, the base name is just $PACKAGE
-base=$PACKAGE
-
-if test -n "$srcfile"; then
- # but here, we use the basename of $srcfile
- base=`basename "$srcfile"`
- case $base in
- *.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;;
- esac
- PACKAGE=$base
-elif test -s "$srcdir/$PACKAGE.texinfo"; then
- srcfile=$srcdir/$PACKAGE.texinfo
-elif test -s "$srcdir/$PACKAGE.texi"; then
- srcfile=$srcdir/$PACKAGE.texi
-elif test -s "$srcdir/$PACKAGE.txi"; then
- srcfile=$srcdir/$PACKAGE.txi
-else
- echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
- exit 1
-fi
-
-if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
- echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2
- echo "$0: it is available from $templateurl." >&2
- exit 1
-fi
-
-# Function to return size of $1 in something resembling kilobytes.
-calcsize()
-{
- size=`ls -ksl $1 | awk '{print $1}'`
- echo $size
-}
-
-# copy_images OUTDIR HTML-FILE...
-# -------------------------------
-# Copy all the images needed by the HTML-FILEs into OUTDIR. Look
-# for them in the -I directories.
-copy_images()
-{
- test -n "$no_copy_images" && return
- local odir
- odir=$1
- shift
- $PERL -n -e "
-BEGIN {
- \$me = '$prog';
- \$odir = '$odir';
- @dirs = qw($dirs);
-}
-" -e '
-/<img src="(.*?)"/g && ++$need{$1};
-
-END {
- #print "$me: @{[keys %need]}\n"; # for debugging, show images found.
- FILE: for my $f (keys %need) {
- for my $d (@dirs) {
- if (-f "$d/$f") {
- use File::Basename;
- my $dest = dirname ("$odir/$f");
- #
- use File::Path;
- -d $dest || mkpath ($dest)
- || die "$me: cannot mkdir $dest: $!\n";
- #
- use File::Copy;
- copy ("$d/$f", $dest)
- || die "$me: cannot copy $d/$f to $dest: $!\n";
- next FILE;
- }
- }
- die "$me: $ARGV: cannot find image $f\n";
- }
-}
-' -- "$@" || exit 1
-}
-
-case $outdir in
- /*) abs_outdir=$outdir;;
- *) abs_outdir=$srcdir/$outdir;;
-esac
-
-echo "Making output for $srcfile"
-echo " in `pwd`"
-mkdir -p "$outdir/"
-
-cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
-echo "Generating info... ($cmd)"
-rm -f $PACKAGE.info* # get rid of any strays
-eval "$cmd"
-tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
-ls -l "$outdir/$PACKAGE.info.tar.gz"
-info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
-# do not mv the info files, there's no point in having them available
-# separately on the web.
-
-cmd="$SETLANG $TEXI2DVI $dirargs \"$srcfile\""
-printf "\nGenerating dvi... ($cmd)\n"
-eval "$cmd"
-# compress/finish dvi:
-gzip -f -9 $PACKAGE.dvi
-dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
-mv $PACKAGE.dvi.gz "$outdir/"
-ls -l "$outdir/$PACKAGE.dvi.gz"
-
-cmd="$SETLANG $TEXI2DVI --pdf $dirargs \"$srcfile\""
-printf "\nGenerating pdf... ($cmd)\n"
-eval "$cmd"
-pdf_size=`calcsize $PACKAGE.pdf`
-mv $PACKAGE.pdf "$outdir/"
-ls -l "$outdir/$PACKAGE.pdf"
-
-if $generate_ascii; then
- opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
- cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
- printf "\nGenerating ascii... ($cmd)\n"
- eval "$cmd"
- ascii_size=`calcsize $PACKAGE.txt`
- gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz"
- ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"`
- mv $PACKAGE.txt "$outdir/"
- ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz"
-fi
-
-# Split HTML at level $2 using program $1. Used for texi2html.
-html_split()
-{
- opt="--split=$2 --node-files $commonarg $htmlarg"
- cmd="$SETLANG $1 --output $PACKAGE.html $opt \"$srcfile\""
- printf "\nGenerating html by $2... ($cmd)\n"
- eval "$cmd"
- split_html_dir=$PACKAGE.html
- (
- cd ${split_html_dir} || exit 1
- if test ! -e index.html; then
- if test -f ${PACKAGE}.html; then
- ln -sf ${PACKAGE}.html index.html
- else
- echo >&2 "$0: ${split_html_dir}/${PACKAGE}.html does not exist"
- fi
- fi
- tar -czf "$abs_outdir/${PACKAGE}.html_$2.tar.gz" -- *.html
- )
- eval html_$2_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$2.tar.gz"`
- rm -f "$outdir"/html_$2/*.html
- mkdir -p "$outdir/html_$2/"
- mv ${split_html_dir}/*.html "$outdir/html_$2/"
- rmdir ${split_html_dir}
-}
-
-if test -z "$use_texi2html"; then
- opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg"
- cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
- printf "\nGenerating monolithic html... ($cmd)\n"
- rm -rf $PACKAGE.html # in case a directory is left over
- eval "$cmd"
- html_mono_size=`calcsize $PACKAGE.html`
- gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
- html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
- copy_images "$outdir/" $PACKAGE.html
- mv $PACKAGE.html "$outdir/"
- ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz"
-
- version=`makeinfo --version|sed -n '1s/.* \([0-9][0-9]*\)\.[0-9.]*/\1/p'`
- case $version in
- [0-9]*) ;;
- *) version=4;;
- esac
- # Before Texinfo 5.0, makeinfo did not accept a --split=HOW option,
- # it just always split by node. So if we're splitting by node anyway,
- # leave it out.
- if test $version -lt 5 -o "x$split" != xdefault; then
- split_arg=--split=$split
- opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg"
- cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
- printf "\nGenerating html by $split... ($cmd)\n"
- eval "$cmd"
- split_html_dir=$PACKAGE.html
- copy_images $split_html_dir/ $split_html_dir/*.html
- (
- cd $split_html_dir || exit 1
- tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- *
- )
- eval \
- html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"`
- rm -rf "$outdir/html_$split/"
- mv $split_html_dir "$outdir/html_$split/"
- du -s "$outdir/html_$split/"
- ls -l "$outdir/$PACKAGE.html_$split.tar.gz"
- CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\
- /%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d"
- else
- html_split "$MAKEINFO --html" node
- html_split "$MAKEINFO --html" chapter
- html_split "$MAKEINFO --html" section
- # should take account of --split here.
- CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d"
- fi
-else # use texi2html:
- opt="--output $PACKAGE.html $commonarg $htmlarg"
- cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\""
- printf "\nGenerating monolithic html with texi2html... ($cmd)\n"
- rm -rf $PACKAGE.html # in case a directory is left over
- eval "$cmd"
- html_mono_size=`calcsize $PACKAGE.html`
- gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz"
- html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"`
- mv $PACKAGE.html "$outdir/"
-
- html_split "$TEXI2HTML" node
- html_split "$TEXI2HTML" chapter
- html_split "$TEXI2HTML" section
- CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d"
-fi
-
-printf "\nMaking .tar.gz for sources...\n"
-d=`dirname $srcfile`
-(
- cd "$d"
- srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true
- tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles
- ls -l "$abs_outdir/$PACKAGE.texi.tar.gz"
-)
-texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
-
-if test -n "$docbook"; then
- opt="-o - --docbook $commonarg"
- cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
- printf "\nGenerating docbook XML... ($cmd)\n"
- eval "$cmd"
- docbook_xml_size=`calcsize $PACKAGE-db.xml`
- gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz"
- docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"`
- mv $PACKAGE-db.xml "$outdir/"
-
- split_html_db_dir=html_node_db
- opt="$commonarg -o $split_html_db_dir"
- cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\""
- printf "\nGenerating docbook HTML... ($cmd)\n"
- eval "$cmd"
- (
- cd ${split_html_db_dir} || exit 1
- tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html
- )
- html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"`
- rm -f "$outdir"/html_node_db/*.html
- mkdir -p "$outdir/html_node_db"
- mv ${split_html_db_dir}/*.html "$outdir/html_node_db/"
- rmdir ${split_html_db_dir}
-
- cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\""
- printf "\nGenerating docbook ASCII... ($cmd)\n"
- eval "$cmd"
- docbook_ascii_size=`calcsize $PACKAGE-db.txt`
- mv $PACKAGE-db.txt "$outdir/"
-
- cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\""
- printf "\nGenerating docbook PDF... ($cmd)\n"
- eval "$cmd"
- docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
- mv $PACKAGE-db.pdf "$outdir/"
-fi
-
-printf "\nMaking index file...\n"
-
-curdate=`$SETLANG date '+%B %d, %Y'`
-sed \
- -e "s!%%TITLE%%!$MANUAL_TITLE!g" \
- -e "s!%%EMAIL%%!$EMAIL!g" \
- -e "s!%%PACKAGE%%!$PACKAGE!g" \
- -e "s!%%DATE%%!$curdate!g" \
- -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \
- -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \
- -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \
- -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \
- -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \
- -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
- -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
- -e "s!%%PDF_SIZE%%!$pdf_size!g" \
- -e "s!%%ASCII_SIZE%%!$ascii_size!g" \
- -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
- -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
- -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
- -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
- -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
- -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
- -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
- -e "s,%%SCRIPTURL%%,$scripturl,g" \
- -e "s!%%SCRIPTNAME%%!$prog!g" \
- -e "$CONDS" \
-$GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html"
-
-echo "Done, see $outdir/ subdirectory for new files."
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/doc/gendocs_template b/doc/gendocs_template
deleted file mode 100755
index 55c4f9e..0000000
--- a/doc/gendocs_template
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--#include virtual="inc/pagehdr.html" -->
-<!--#include virtual="inc/header.html" -->
-<ul class='tabs'>
- <li><a href="wyslij-po.html">Main</a></li>
- <li><a href="install.html">Installation</a></li>
- <li><a href="download.html">Downloads</a></li>
- <li><a class="active" href="manual.html">Documentation</a></li>
-</ul>
-
-<div id="main">
-<p>The manual for <b>%%PACKAGE%%</b> is available in the following formats:</p>
-
-<ul>
- <li><a href="manual/%%PACKAGE%%.html">HTML
- (%%HTML_MONO_SIZE%%K bytes)</a> - entirely on one web page.</li>
- <li><a href="manual/html_node/index.html">HTML</a> - with one web page per
- node.</li>
-%%IF HTML_SECTION%%
- <li><a href="manual/html_section/index.html">HTML</a> - with one web page per
- section.</li>
-%%ENDIF HTML_SECTION%%
-%%IF HTML_CHAPTER%%
- <li><a href="manual/html_chapter/index.html">HTML</a> - with one web page per
- chapter.</li>
-%%ENDIF HTML_CHAPTER%%
- <li><a href="manual/%%PACKAGE%%.html.gz">HTML compressed
- (%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on
- one web page.</li>
- <li><a href="manual/%%PACKAGE%%.html_node.tar.gz">HTML compressed
- (%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> -
- with one web page per node.</li>
-%%IF HTML_SECTION%%
- <li><a href="manual/%%PACKAGE%%.html_section.tar.gz">HTML compressed
- (%%HTML_SECTION_TGZ_SIZE%%K gzipped tar file)</a> -
- with one web page per section.</li>
-%%ENDIF HTML_SECTION%%
-%%IF HTML_CHAPTER%%
- <li><a href="manual/%%PACKAGE%%.html_chapter.tar.gz">HTML compressed
- (%%HTML_CHAPTER_TGZ_SIZE%%K gzipped tar file)</a> -
- with one web page per chapter.</li>
-%%ENDIF HTML_CHAPTER%%
- <li><a href="manual/%%PACKAGE%%.info.tar.gz">Info document
- (%%INFO_TGZ_SIZE%%K characters gzipped tar file)</a>.</li>
- <li><a href="manual/%%PACKAGE%%.txt">ASCII text
- (%%ASCII_SIZE%%K characters)</a>.</li>
- <li><a href="manual/%%PACKAGE%%.txt.gz">ASCII text compressed
- (%%ASCII_GZ_SIZE%%K gzipped characters)</a>.</li>
- <li><a href="manual/%%PACKAGE%%.dvi.gz">TeX dvi file
- (%%DVI_GZ_SIZE%%K characters gzipped)</a>.</li>
- <li><a href="manual/%%PACKAGE%%.ps.gz">PostScript file
- (%%PS_GZ_SIZE%%K characters gzipped)</a>.</li>
- <li><a href="manual/%%PACKAGE%%.pdf">PDF file
- (%%PDF_SIZE%%K characters)</a>.</li>
- <li><a href="manual/%%PACKAGE%%.texi.tar.gz">Texinfo source
- (%%TEXI_TGZ_SIZE%%K characters gzipped tar file)</a></li>
-</ul>
-
-</div>
-
-<div class="generator">
-<p>(This page is generated by the <a
-href="%%SCRIPTURL%%">%%SCRIPTNAME%%</a> script.)
-</p>
-</div>
-
-<!--#include virtual="inc/footer.html" -->
-</body>
-</html>
diff --git a/doc/html.init b/doc/html.init
deleted file mode 100644
index 1f36c54..0000000
--- a/doc/html.init
+++ /dev/null
@@ -1,166 +0,0 @@
-# Texi2any configuration for Wyslij-po documentation. -*- perl -*-
-# Copyright (C) 2009-2021 Sergey Poznyakoff
-#
-# Wyslij-po 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, or (at your option)
-# any later version.
-#
-# Wyslij-po 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 Wyslij-po. If not, see <http://www.gnu.org/licenses/>.
-use strict;
-
-my $top_html_dir="/software/wyslij-po";
-my $graphics_dir="$top_html_dir/graphics";
-
-# Show TOC in place of the @contents directive.
-set_from_init_file('INLINE_CONTENTS', 1);
-# Do not show Texinfo menus.
-set_from_init_file('SHOW_MENU', 0);
-# Inhibit output of CSS lines in page headers.
-set_from_init_file('CSS_LINES', '');
-
-set_from_init_file('BODYTEXT', "");
-
-set_from_init_file('EXTRA_HEAD', qq{
- <link rev="made" href="mailto:gray\@gnu.org.ua">
- <link rel="stylesheet" type="text/css" href="${top_html_dir}/gray.css">
- <link rel="stylesheet" type="text/css" href="${top_html_dir}/texi.css">
- <link rel="icon" type="image/png" href="/graphics/gnu-head-icon.png">});
-
-set_from_init_file('AFTER_BODY_OPEN', qq{
-<!--#include virtual="${top_html_dir}/inc/header.html" -->
-<ul class="tabs">
- <li><a href="${top_html_dir}/wyslij-po.html">Main</a></li>
- <li><a href="${top_html_dir}/install.html">Installation</a></li>
- <li><a href="${top_html_dir}/download.html">Downloads</a></li>
- <li><a class="active" href="${top_html_dir}/manual.html">Documentation</a></li>
-</ul>});
-
-sub gray_end_file($)
-{
- my $self = shift;
- my $program_text = '';
- if ($self->get_conf('PROGRAM_NAME_IN_FOOTER')) {
- my $program_string = &{$self->{'format_program_string'}}($self);
- $program_text = "<p>
- $program_string
-</p>";
- }
- my $pre_body_close = $self->get_conf('PRE_BODY_CLOSE');
- $pre_body_close = '' if (!defined($pre_body_close));
- return "</div>
-<div class=\"copyright\">
-$program_text
-
-$pre_body_close
-</div>
-</div>
-</body>
-</html>
-";
-}
-
-texinfo_register_formatting_function('end_file', \&gray_end_file);
-
-set_from_init_file('PRE_BODY_CLOSE',
- 'Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.');
-
-# Print generating program name at the bottom of a page.
-set_from_init_file('PROGRAM_NAME_IN_FOOTER',1);
-
-# Disable horizontal bars
-set_from_init_file('DEFAULT_RULE', '');
-set_from_init_file('BIG_RULE', '');
-
-# Turn off footer buttons in section split
-set_from_init_file('SECTION_FOOTER_BUTTONS', undef);
-#set_from_init_file('SECTION_BUTTONS', undef);
-# Turn off navigation bars at the bottom of each section in chapter split mode
-set_from_init_file('HEADERS', undef)
- if (get_conf('SPLIT') and (get_conf('SPLIT') eq 'chapter'));
-# Use navigation icons
-
-set_from_init_file('ICONS', 1);
-
-set_from_init_file('ACTIVE_ICONS',
- {
- 'Top' => "$graphics_dir/top.png",
- 'Contents' => "$graphics_dir/ctx.png",
- 'Overview' => '',
- 'Index' => "$graphics_dir/idx.png",
- 'This' => '',
- 'Back' => "$graphics_dir/left.png",
- 'FastBack' => "$graphics_dir/bwd.png",
- 'Prev' => "",
- 'Up' => "$graphics_dir/up.png",
- 'Next' => "$graphics_dir/right.png",
- 'NodeUp' => "$graphics_dir/left.png",
- 'NodeNext' => "$graphics_dir/up.png",
- 'NodePrev' => "$graphics_dir/right.png",
- 'Following' => "$graphics_dir/right.png",
- 'Forward' => "$graphics_dir/right.png",
- 'FastForward' => "$graphics_dir/fwd.png",
- 'About' => '',
- 'First' => '',
- 'Last' => '',
- ' ' => ''
- });
-
-sub gray_split_status()
-{
- my $split = get_conf('SPLIT');
- if ($split eq '') {
- return '';
- } elsif ($split eq 'node') {
- return ' <span class="splitstatus">(split by node)</span>';
- } elsif ($split eq 'section') {
- return ' <span class="splitstatus">(split by section)</span>';
- } elsif ($split eq 'chapter') {
- return ' <span class="splitstatus">(split by chapter)</span>';
- }
-}
-
-sub gray_document_title($$)
-{
- my $self = shift;
- my $direction = shift;
- my $status = gray_split_status();
-
- return q{<span class="title">} . $self->{title_string} . '</span>' .$status . q{<span class="title">:</span>};
-}
-
-sub gray_sec_ref($$)
-{
- return q{<span class="navtext">Section:</span>};
-}
-
-sub gray_chap_ref($$)
-{
- return q{<span class="navtext">Chapter:</span>};
-}
-
-
-my @gray_buttons = (\&gray_document_title, ' ',
- \&gray_sec_ref, 'Back', 'Forward', ' ',
- \&gray_chap_ref,
- 'FastBack', ' ', 'Up', ' ', 'FastForward', ' ',
- 'Contents', 'Index' );
-
-set_from_init_file('TOP_BUTTONS', undef);
-set_from_init_file('SECTION_BUTTONS', \@gray_buttons);
-set_from_init_file('CHAPTER_BUTTONS', \@gray_buttons);
-set_from_init_file('NODE_FOOTER_BUTTONS', \@gray_buttons);
-set_from_init_file('SECTION_FOOTER_BUTTONS', \@gray_buttons);
-set_from_init_file('MISC_BUTTONS',
- [\&gray_document_title,
- 'Contents',
- 'Index',
- ' ',
- 'About'
- ]);
diff --git a/doc/mastermenu.el b/doc/mastermenu.el
deleted file mode 100644
index 5f1dbe1..0000000
--- a/doc/mastermenu.el
+++ /dev/null
@@ -1,91 +0,0 @@
-;;; mastermenu.el --- Redefinition of texinfo-master-menu-list
-
-;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
-
-;; Author: Sergey Poznyakoff
-;; Maintainer: bug-tar@gnu.org
-;; Keywords: maint, tex, docs
-
-;; This file is part of GNU tar documentation suite
-
-;; This program 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, or (at your option)
-;; any later version.
-
-;; This program 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, write to the Free Software Foundation,
-;; Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; This file redefines texinfo-master-menu-list so that it takes into
-;; account included files.
-
-;; Known bugs: @menu without previous sectioning command will inherit
-;; documentation string from the previous menu. However, since such a
-;; menu is illegal in a texinfo file, we can live with it.
-
-(require 'texinfo)
-(require 'texnfo-upd)
-
-(defun texinfo-master-menu-list-recursive (title)
- "Auxiliary function used by `texinfo-master-menu-list'."
- (save-excursion
- (let (master-menu-list)
- (while (re-search-forward "\\(^@menu\\|^@include\\)" nil t)
- (cond
- ((string= (match-string 0) "@include")
- (skip-chars-forward " \t")
- (let ((included-name (let ((start (point)))
- (end-of-line)
- (skip-chars-backward " \t")
- (buffer-substring start (point)))))
- (end-of-line)
- (let ((prev-title (texinfo-copy-menu-title)))
- (save-excursion
- (set-buffer (find-file-noselect included-name))
- (setq master-menu-list
- (append (texinfo-master-menu-list-recursive prev-title)
- master-menu-list))))))
- (t
- (setq master-menu-list
- (cons (list
- (texinfo-copy-menu)
- (let ((menu-title (texinfo-copy-menu-title)))
- (if (string= menu-title "")
- title
- menu-title)))
- master-menu-list)))))
- master-menu-list)))
-
-(defun texinfo-master-menu-list ()
- "Return a list of menu entries and header lines for the master menu,
-recursing into included files.
-
-Start with the menu for chapters and indices and then find each
-following menu and the title of the node preceding that menu.
-
-The master menu list has this form:
-
- \(\(\(... \"entry-1-2\" \"entry-1\"\) \"title-1\"\)
- \(\(... \"entry-2-2\" \"entry-2-1\"\) \"title-2\"\)
- ...\)
-
-However, there does not need to be a title field."
-
- (reverse (texinfo-master-menu-list-recursive "")))
-
-(defun make-master-menu ()
- "Create master menu in the first Emacs argument."
- (find-file (car command-line-args-left))
- (texinfo-master-menu nil)
- (save-buffer))
-
-
-;;; mastermenu.el ends here
diff --git a/doc/otherdoc.texi.in b/doc/otherdoc.texi.in
new file mode 100644
index 0000000..fc6ed08
--- /dev/null
+++ b/doc/otherdoc.texi.in
@@ -0,0 +1,9 @@
+@multitable @columnfractions 0.30 .5
+@item @uref{../$FILE(info_gz),$BASEFILE(info_gz)} @tab Info document compressed ($SIZE(info_gz) characters gzipped tar file)
+@item @uref{../$FILE(ascii),$BASEFILE(ascii)} @tab ASCII text ($SIZE(ascii) characters)
+@item @uref{../$FILE(ascii_gz),$BASEFILE(ascii_gz)} @tab ASCII text, compressed ($SIZE(ascii_gz) characters)
+@item @uref{../$FILE(dvi_gz),$BASEFILE(dvi_gz)} @tab TeX dvi file ($SIZE(dvi_gz) characters gzipped)
+@item @uref{../$FILE(pdf),$BASEFILE(pdf)} @tab PDF file ($SIZE(pdf) characters gzipped)
+@item @uref{../$FILE(texinfo_gz),$BASEFILE(texinfo_gz)} @tab Texinfo source ($SIZE(texinfo_gz) characters gzipped tar file)
+@end multitable
+
diff --git a/doc/untabify.el b/doc/untabify.el
deleted file mode 100644
index 77dd5c0..0000000
--- a/doc/untabify.el
+++ /dev/null
@@ -1,13 +0,0 @@
-;;;; Untabify the sources.
-;;;; Usage: emacs -batch -l untabify.el [file ...]
-
-(defun global-untabify (buflist)
- (mapcar
- (lambda (bufname)
- (set-buffer (find-file bufname))
- (untabify (point-min) (point-max))
- (save-buffer)
- (kill-buffer (current-buffer)))
- buflist))
-
-(global-untabify command-line-args-left)
diff --git a/doc/webdoc.init b/doc/webdoc.init
new file mode 100644
index 0000000..0990b4d
--- /dev/null
+++ b/doc/webdoc.init
@@ -0,0 +1,8 @@
+use strict;
+use warnings;
+set_from_init_file('EXTRA_HEAD', qq{
+<link rel="stylesheet" type="text/css" href="css/info.css"/>
+<link rel="stylesheet" type="text/css" href="css/gdbm.css"/>
+<script src="js/modernizr.js" type="text/javascript"></script>
+<script src="js/info.js" type="text/javascript"></script>
+});
diff --git a/doc/wyslij-po.texi b/doc/wyslij-po.texi
index a855051..13dcb0a 100644
--- a/doc/wyslij-po.texi
+++ b/doc/wyslij-po.texi
@@ -118,7 +118,7 @@ Files, PO Files, gettext, GNU gettext manual}).
Finally, you can use some specialized program to do that.
@cindex wyslij-po
- If you select the last possibility, @command{wyslij-po} is for you.
+ If you choose the last possibility, @command{wyslij-po} is for you.
It is a specialized program which verifies @acronym{PO} files and
submits them to the @acronym{TP}.
@@ -796,6 +796,51 @@ needed is:
@item Conditions under which the bug appears.
@end itemize
+@node Downloads
+@appendix Downloading wyslij-po
+Stable releases of @command{wyslij-po} can be downloaded from
+@uref{http://download.gnu.org.ua/pub/release/wyslij-po}
+@footnote{Traditionally, the @code{FTP} protocol is supported as well:
+@*
+@uref{ftp://download.gnu.org.ua/pub/release/wyslij-po}}.
+
+Each tarball in this directory is GPG signed and the corresponding
+signature is available in file with the @file{.sig} suffix. To verify
+the tarball, be sure to download both the tarball and its signature
+(e.g., for the latest version:
+@ifhtml
+@uref{http://download.gnu.org.ua/pub/release/wyslij-po/wyslij-po-@value{VERSION}.tar.gz,
+wyslij-po-@value{VERSION}.tar.gz}
+and
+@uref{http://download.gnu.org.ua/pub/release/wyslij-po/wyslij-po-@value{VERSION}.tar.gz.sig,
+wyslij-po-@value{VERSION}.tar.gz.sig}
+@end ifhtml
+@ifnothtml
+@file{wyslij-po-@value{VERSION}.tar.gz} and
+@file{wyslij-po-@value{VERSION}.tar.gz.sig}
+@end ifnothtml
+). Then run a command like this:
+
+@example
+gpg --verify wyslij-po-@value{VERSION}.tar.gz.sig
+@end example
+
+If that command fails because you don't the author's public
+key, then run this command to import it:
+
+@example
+gpg --keyserver keys.gnupg.net --recv-keys 3602B07F55D0C732
+@end example
+
+A symbolic link to the latest release (and its signature) is provided:
+@uref{http://download.gnu.org.ua/pub/release/wyslij-po/wyslij-po-latest.tar.gz}.
+
+Pre-release and alpha versions of the package can be downloaded from
+@uref{http://download.gnu.org.ua/pub/alpha/wyslij-po}.
+
+Finally, development of the @command{wyslij-po} can be tracked from
+@uref{https://puszcza.gnu.org.ua/projects/wyslij-po}.
+
@node Build
@appendix How to Build the Package
@cindex building @command{wyslij-po}
@@ -907,11 +952,18 @@ Print program version
@end table
+@ifset WEBDOC
+@ifhtml
+@node This Manual in Other Formats
+@unnumbered This Manual in Other Formats
+@include otherdoc.texi
+@end ifhtml
+@end ifset
+
@node Copying This Manual
@include fdl.texi
-@node Concept Index
-@comment node-name, next, previous, up
+@node Index
@unnumbered Concept Index
This is a general index of all issues discussed in this manual

Return to:

Send suggestions and report system problems to the System administrator.