diff options
Diffstat (limited to 'Doc/tools/mkmodindex')
-rwxr-xr-x | Doc/tools/mkmodindex | 158 |
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() |