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.
Removed some obsolete commented-out code.
Merged BaseConversion into Conversion since there's only one
conversion process now.
Remove push/pop of output stream; it's no longer needed.
Separate the Conversion class into a base and a subclass; the subclass
is pretty minimal but the separation is useful for....
NewConversion: New class that implements a somewhat different
approach to the conversion. This uses a table of
instances (rather than tuples) that have more
information than the tuples used for the older
conversion procedure. This allows a lot more control
over the conversion, and it seems to be pretty
stable.
TableEntry,
Parameter: New classes that are used to build the conversion
specification used by NewConversion.
TableParser: xmllib.XMLParser subclass that builds a conversion
specification from an XML document.
load_table(): Convenience function that loads a table from a file.
main(): Added flags --new and --old; these select which conversion is
used. The default is --new.
Several fixes have been made in the old conversion as well; these were
done before writing & switching to the new conversion, and should be
archived.
The next checkin of this file will discard the old conversion; is is
kept in this checkin to allow it to be retrieved if needed, and to
avoid lossing the bugfixes that have been made to it in the interim.
Use a temporary file to pass results from latex2esis.py to
docfixer.py; this makes for better error detection by make (if the
first pipeline stage fails, make wasn't catching it).
the module being documented at that point in the documentation; these
are candidates for conversion to \refmodule, which produces a
hyperlink in the HTML and PDF versions of the output.
portable.
Several things that had been done by running a python script are now a
matter of importing the right module and running a function with a few
parameters.
actual work.
main(): Just handle the command line and filename determination,
calling process() to do the work.
These changes make this more import-friendly.
actual work.
main(): Just handle the command line and filename determination,
calling process() to do the work.
These changes make this more import-friendly.
Lots of changes to get the paragraph marking to work, and not go into
an infinite recursion.
Start to rationalize markup of method signatures; not complete.
find_all_elements(): similar to getElementsByTagName(), but operates
on the not-quite-legal fragments we deal with here.
Simplifies several individual transforms.
fixup_sectionauthors(): Convert \sectionauthor items to <author> just
after the <section>'s <title>.
general identifiers for which closing tags will be omitted
when SGML is generated. This can be used to tell the markup
generator to drop stuff like </para>. Note that it needs to
be possible for the closing tag to *always* be omitted for it
to be included in "autoclose".
main(): Added command-line option "-a" / "--autoclose" to set the
list of general identifiers passed to the convert() function
as the "autoclose" parameter. The list may only be specified
once (not additive) and GIs should be comma-separated. The
default list includes only "para".
any subdirectory; don't continue with remaining subdirs.
Added "api", "ext", "lib", "mac", "ref", and "tut" targets to only do
submakes in those directories. This is just a lot easier to use than
to cd into the subdir and use make.rules directly.
currently generated by the LaTeX and LaTeX2HTML processes is generated
here as well, making it more flexible in the SGML version.
Reduce the <args> element so that <optional> goes away; just use
square brackets to indicate what's optional. This makes it easier to
read than the LaTeX, and the processor can do any checking it needs to
in order to make sure it's legit. Possible shortcoming: DSSSL
processors may need more explicit markup. Can probably hack around it
for this case, but we'll see.
used to deal with the table headings and entries.
An additional flag in the element table is used to indicate elements
which have no "general" content, but which do have subelement
content. These must be flagged distinctly from empty elements.
Currently used for \lineii, \lineiii, and \lineiv.
<moduleinfo> element based on various meta information, and
strip some cruftiness. This is more usable for information
extraction, and organizes the information more clearly.
cleanup_synopses(): Rewrite to use create_module_info(), so this
will work with multi-rooted "documents".