Allow overwrite LANGUAGE and LC_ALL make variables, for make i18n man and html.
After this patch, we can make i18n man and html by following command:
$ make clean all LANGUAGE=ja
It is an intermediate file used to produce the hg.1 and .hg.1.html
files and is not useful for people who download the tarball. It will
be regenerated automatically by the Makefile if users want to rebuild
the documentation.
Displaying the output from the failing call to "which" didn't prevent
make from doing stupid things later. We now only search for "rst2html"
and fallback to "rst2html.py". If neither name is found, make will
eventually abort when we try to use $(RST2HTML).
The man pages can actually be translated by building them in a
different locale. However, the man pages contain internal links to
certain sections, and when the section titles are translated, the
links change too. So it is currently not recommended to build the man
pages in anything by the "C" locale.
When stdout is redirected to the target file directly, the file is
created as an empty file even when an error occurs. Since the file is
there, 'make' wont try to re-create it in subsequent runs.
This fix is similar to the one in 5c3820db5c29, but it also takes care
of rst2html and gendoc.py.
The rst2man tool has not yet been part of an official Docutils
release, and it is not present in most distributions. This poses a
problem for people who want to install Mercurial from source, or who
want to create a Mercurial package for such a distribution -- how to
specify the build-dependencies?
By including the rst2man.py script with Mercurial people only need a
normal Docutils installation in order to install Mercurial.
docutils uses the .py extension on the commands, and so do their installer.
Distribution packages might strip the .py, but the official name should work too.
This exposed a bug in rst2man where it neglects to escape a literal
backslash. A patch has been applied upstream, but not yet packaged in,
say, Debian unstable. A forward-compatible work-around has therefore
been put in place.
The rst2man writer leaves no space between a literal block and the
following paragraph. This patch corrects this.
It has also been applied upstream. This does not conflict with this
change since any number of newlines can be added without effecting the
rendered man page.
The Makefile now requires the rst2html and rst2man programs. Both can
be found in Debian testing or downloaded from the Docutils homepage:
http://docutils.sf.net/http://docutils.sf.net/sandbox/manpage-writer/
The new HTML and man pages no longer contain huge amounts of
un-wrapping literal blocks, thanks to how snippets of reStructuredText
can easily be included inside other reStructuredText documents.
The HTML pages now have anchors for all sections, including the help
topics in hgrc.1 which were missing from the old HTML pages.
When we try to build manpages with xmlto and sed, but xmlto is
missing fail at the xmlto stage. Otherwise, one may run `cd doc;
make' and miss the warnings like:
xmlto: not found
sed: hg.1: No such file or directory
and end up with empty files installed as manpages.
This works around a bug in old docbook stylesheets.
Remove .*.swp example from hgignore.5.txt.
Diagnosis and workaround thanks to Alexis S. L. Carvalho.
gendoc.py is a script generating a part of the manpage (the commands
help and options) from the docstring in commands.py.
It avoids duplicating the doc between the doc/ directory and the docstrings.
To generate the manpage, 'make doc' will create all the necessary intermediate
files.