diff options
Diffstat (limited to 'doc/tools/mkmodindex')
-rwxr-xr-x | doc/tools/mkmodindex | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/doc/tools/mkmodindex b/doc/tools/mkmodindex deleted file mode 100755 index 5f2da0e..0000000 --- a/doc/tools/mkmodindex +++ /dev/null @@ -1,136 +0,0 @@ -#! /usr/bin/env python -# -*- Python -*- - -"""usage: %(program)s [options] file... - -Supported options: - - --address addr - -a addr Set the address text to include at the end of the generated - HTML; this should be used for contact information. - --columns cols - -c cols Set the number of columns each index section should be - displayed in. The default is 1. - --help - -h Display this help message. - --letters - -l Split the output into sections by letter. - --output file - -o file Write output to 'file' instead of standard out. - --iconserver is Use 'is' as the directory containing icons for the - navigation bar. The default is 'icons'. - --title str Set the page title to 'str'. The default is 'Global - Module Index'. - --uplink url Set the upward link URL. The default is './'. - --uptitle str Set the upward link title. The default is 'Python - Documentation Index'. -""" -import buildindex -import os -import re -import string -import support -import sys - - -class IndexOptions(support.Options): - def __init__(self): - support.Options.__init__(self) - self.add_args("l", ["letters"]) - self.letters = 0 - - def handle_option(self, opt, val): - if opt in ("-l", "--letters"): - self.letters = 1 - - def usage(self): - program = os.path.basename(sys.argv[0]) - print __doc__ % {"program": program} - - -class Node(buildindex.Node): - annotation = "" - - def __init__(self, link, str, seqno): - parts = string.split(str, None, 1) - if parts[0][-5:] == "</tt>": - self.modname = parts[0][:-5] - else: - self.modname = parts[0] - if len(parts) == 2: - self.annotation = parts[1] - buildindex.Node.__init__(self, link, self.modname, seqno) - - def __str__(self): - return '<tt class="module">%s</tt> %s' \ - % (self.modname, self.annotation) - -_rx = re.compile( - "<dt><a href='(module-.*\.html)#l2h-\d+'><tt class='module'>" - "([a-zA-Z_][a-zA-Z0-9_.]*</tt>(\s*<em>" - "\(<span class='platform'>.*</span>\)</em>)?)</a>") - -def main(): - options = IndexOptions() - options.variables["title"] = "Global Module Index" - options.parse(sys.argv[1:]) - args = options.args - if not args: - args = ["-"] - # - # Collect the input data: - # - nodes = [] - seqno = 0 - has_plat_flag = 0 - for ifn in args: - if ifn == "-": - ifp = sys.stdin - dirname = '' - else: - ifp = open(ifn) - dirname = os.path.dirname(ifn) - while 1: - line = ifp.readline() - if not line: - break - m = _rx.match(line) - if m: - # This line specifies a module! - basename, modname = m.group(1, 2) - has_plat_flag = has_plat_flag or m.group(3) - linkfile = os.path.join(dirname, basename) - nodes.append(Node('<a href="%s">' % linkfile, modname, seqno)) - seqno = seqno + 1 - ifp.close() - # - # Generate all output: - # - num_nodes = len(nodes) - # Here's the HTML generation: - parts = [options.get_header(), - buildindex.process_nodes(nodes, options.columns, options.letters), - options.get_footer(), - ] - if has_plat_flag: - parts.insert(1, PLAT_DISCUSS) - html = string.join(parts, '') - program = os.path.basename(sys.argv[0]) - fp = options.get_output_file() - fp.write(string.rstrip(html) + "\n") - if options.outputfile == "-": - sys.stderr.write("%s: %d index nodes\n" % (program, num_nodes)) - else: - print - print "%s: %d index nodes" % (program, num_nodes) - - -PLAT_DISCUSS = """ -<p> Some module names are followed by an annotation indicating what -platform they are available on.</p> - -""" - - -if __name__ == "__main__": - main() |