in response to Skip's comments in SF bug #487165.
Make use of string methods instead of string module functions in most places.
Add (and make the default) a way to collapse symbol entries into a single
"Symbols" section in the generated index. This is similar to what makeindex
does, but does not include entries beginning with an underscore.
- Change PREFIX to PREFIXES, which contains a sequence of prefix strings.
This is useful since we want to look for both Py and PY.
- Wrap a long line.
- Collect struct tags as well as typedef names. Since we generally only
use one of the other, that improves coverage.
- Make the script executable on Unix.
This could use a better approach to determine if a symbol is documented,
and could easily avoid keeping the massive string in memory. That would
take time to actually write more code, though, so we'll bail on that
for now.
LaTeX2HTML. This is not safe to do in general (for the reasons LaTeX2HTML
protects against dvips to begin with), but is safe if we do not actually
need to run dvips. Note that we also assume it is safe if the user
specifically requests PostScript generation. See the comments for further
explanation.
Mozilla 0.9.5 can make intelligent use of them. Specifically, this causes
the "Acknowledgements" and "Global Module Index" pages to acquire "up"
links in the Mozilla "Site Navigation Bar".
This partially responds to SF bug #469772.
For the real document element, make sure the prolog is migrated into
the document element so it isn't left stranded.
Make fixup_trailing_whitespace() whitespace do what was really intended.
Add the *desc environments used in the C API manual to the list of
things that can exist at the paragraph level so they don't get wrapped
in <para>...</para>.
whether or not a link will be generated will depend on the link database.
Add a couple of explanatory comments for one of the stranger constructs
(giving input an empty name).
replacement for @DATE@ from a TeX file containing a \date{...} mark
(such as texinputs/boilerplate.tex).
This will be used to re-write the html/index.html.in file instead of
a combination of grep, date, and sed -- this is more portable to non-Unix
platforms.
This solves part of the problem reported in SF patch #429611, but does
not use the suggested patch.
building the HTML or text documentation). There is no need to create
it for other formats.
Job.build_html(): The builddir parameter is always passed in, so it need
not be optional.
attribute values, and make the logic surrounding the platform
annotations just a little easier to read. Also make the platform
notes appear in the generated page; they were supposed to, but did not.
Add a -F option similar to "cvs commit -F <file>".
Add a -t option to allow specifying the prefix to the directory into which
the docs should be unpacked (useful when I start trying out new styles for
the presentation).
the right HTML file to the name about.html is needed even if the
--numeric option was not given -- some other name may have been
assigned due to some non-determinism in the algorithm use to perform
name allocation. ;-(
This closes the "About..." portion of SF bug #420216.
Update <versionadded/> to recent addition of optional explanatory text;
make the explanation text take the same attribute name for both
<versionadded/> and <versionchanged/>.
(minidom in particular); it was using PyDOM which is now obsolete.
Only write the output file on success -- this avoids updating the timestamp
on the file on failure, which confuses "make".
implements a SAX XMLReader interface instead of the old Builder interface
used with PyDOM (now obsolete).
This only depends on the standard library, not PyXML.
site. These now seem (slightly) more reliable, and easier to work with
since update-docs.sh no longer needs to be installed ahead of time on
my account at SF.
not doing the \label{foo} --> foo.html transformation (--numeric was
specified on the command line), still look to see if there is an
"About this document..." node and copy that to "about.html", since the
page footers use that as the target.
to the Global Module Index for a set of documents. This is used to include
a reference to the global index from the per-document module indexes, so
that it is just a little easier to find.
(Someone suggested this, but I do not remember who. Please let me know if
it was you -- thanks!)
ordering fixed up (this makes sure that "xml.dom" comes before
"xml.dom.minidom" in the Module Index, which was not true before because
some HTML cruft crept into the data structures).
file-system accessible repository. Add a little bit of smarts to convert
the cvsroot to an anonymous cvsroot the real one requires an authenticated
login to SourceForge; this avoids the SSH startup delay when doing the
checkout or export to get a fresh copy of the tree.
different browsers resolve the conflicts differently, and the "proper"
resolution is not what we actually want.
Reported by Peter Funk <pf@artcom-gmbh.de>.
the names of people that should be in the ACKS file.
This relies on some personal code that is not yet available, but should
be by the time we release 2.0c1.
directory. This avoids acretion of HTML from previous runs which may
have a new name; this would have avoided a lot of the packaging problems
related to changing labels from the old distutils documentation.
HTML generation; the machinery was there but no option to set it was
defined.
Simplify some of the path-math since we can assume a recent version of
Python.
join_adjacent_elements(): Hack to merge adjacent instances of
<option>; the source \programopt with GNU-style long options
created problems with LaTeX2HTML; this removes the evil
workaround, which should never be necessary from structured
documents(!).
Do adopt DocBook's <command>, <option>, <envar> names for \program,
\programopt, \envvar.
Add \filenq --> <filename quote="no"> (it has to go somewhere, at
least for now).
information accessible to Python.
When run as a script, just dumps the information back out in the data
format, with functions in sorted order and a blank line between
different functions.
Still need to apply the information somehow.
Job.warning(): New method; use this instead of writing to sys.stderr
directly. Ensures warnings are also sent to the log
file.
Job.log(): New method; write a message to the log file. Use from
.message() and .warning().
(must be named in the conversion spec.).
TableParser.start_entityref(): New method. Use to support creating
entity references via the conversion specification.
<description> elements. Add another sanity
check to make sure a special case only becomes
involved for <opcodedesc> and <opcodedescni>
elements.
fixup_paras_helper(): Clean up control flow.
Everywhere that checks node.nodeType==ELEMENT and node.tagName now
just check node.nodeName (nodeName is guaranteed for all node types
and will be special values that don't conflict with GIs for
non-ELEMENT nodes). Simplifies a number of tests and improves
readability in a lot of places.
engine in latex2esis.py can do, so discard it.
paragraph detection & markup: Handle some of the list-like
environments properly, picking up paragraphs inside
list items. (Only changed a few element-sets used for
recognition.)
fixup_refmodindexes_chunk(): Use the right attribute to determine the
module a <ref*modindex/> element is referring to.
convert(): Don't call remap_element_names(); it was removed.
with a more descriptive name.
Allow creation of multiple archive formats with a single pass; useful
in this case since it uses a fresh export/checkout from CVS to ensure
that the tree is "clean" (no build turds, saved files, &c). Use --all
to create all supported formats.
same as sys.stderr.write(), but bwrite() will make it
bold if stderr is a tty (for visibility).
Use these everywhere instead of accessing
sys.stderr.write() directly.
find_all_child_elements(): Find all elements by type name that are
immediate children of another.
cleanup_synopses(): Receive both the document and fragment objects as
parameters; if only the document is passed, synopsis
information is never found since it's in the fragment!
build_para(): Add a chunk of code to ensure that a newline always
follows the </para> end-tag. Not really important, but
makes presentation consistent for authoring/
maintenance.
fixup_bifuncindexes_chunk(): Use find_all_child_elements() instead of
find_all_elements() so we don't work with too many
levels at once; that could cause DOM exceptions with
the <elem>.removeChild() method.