summaryrefslogtreecommitdiffstats
path: root/Doc/tools/mkmodindex
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/tools/mkmodindex')
-rwxr-xr-xDoc/tools/mkmodindex158
1 files changed, 0 insertions, 158 deletions
diff --git a/Doc/tools/mkmodindex b/Doc/tools/mkmodindex
deleted file mode 100755
index cdc9d42..0000000
--- a/Doc/tools/mkmodindex
+++ /dev/null
@@ -1,158 +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 os
-import re
-import sys
-
-from xml.sax.saxutils import quoteattr
-
-import buildindex
-import support
-
-
-class IndexOptions(support.Options):
- aesop_type = "links"
-
- 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})
-
- links = [
- ('author', 'acks.html', 'Acknowledgements'),
- ('help', 'about.html', 'About the Python Documentation'),
- ]
-
- def get_header(self):
- header = support.Options.get_header(self)
- s = ''
- for rel, href, title in self.links:
- s += '<link rel="%s" href="%s"' % (rel, href)
- if title:
- s += ' title=' + quoteattr(title)
- s += '>\n '
- return header.replace("<link ", s + "<link ", 1)
-
-
-class Node(buildindex.Node):
- def __init__(self, link, str, seqno, platinfo):
- self.annotation = platinfo or None
- if str[0][-5:] == "</tt>":
- str = str[:-5]
- self.modname = str
- buildindex.Node.__init__(self, link, self.modname, seqno)
- if platinfo:
- s = '<tt class="module">%s</tt> %s' \
- % (self.modname, self.annotation)
- else:
- s = '<tt class="module">%s</tt>' % str
- self.text = [s]
-
- def __str__(self):
- if self.annotation:
- return '<tt class="module">%s</tt> %s' \
- % (self.modname, self.annotation)
- else:
- return '<tt class="module">%s</tt>' % self.modname
-
-_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 = []
- 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, platinfo = m.group(1, 2, 3)
- has_plat_flag = has_plat_flag or platinfo
- linkfile = os.path.join(dirname, basename)
- nodes.append(Node('<a href="%s">' % linkfile, modname,
- len(nodes), platinfo))
- 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 = ''.join(parts)
- program = os.path.basename(sys.argv[0])
- fp = options.get_output_file()
- fp.write(html.rstrip() + "\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()