summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xDoc/tools/mkmodindex136
1 files changed, 23 insertions, 113 deletions
diff --git a/Doc/tools/mkmodindex b/Doc/tools/mkmodindex
index 1c22c43..257e30a 100755
--- a/Doc/tools/mkmodindex
+++ b/Doc/tools/mkmodindex
@@ -26,24 +26,26 @@ Supported options:
Documentation Index'.
"""
import buildindex
-import getopt
import os
import re
import string
+import support
import sys
-def usage():
- program = os.path.basename(sys.argv[0])
- print __doc__ % {"program": program}
+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 error(msg, rc=2):
- sys.stdout = sys.stderr
- print msg
- print
- usage()
- sys.exit(rc)
+ def usage(self):
+ program = os.path.basename(sys.argv[0])
+ print __doc__ % {"program": program}
_rx = re.compile(
@@ -52,56 +54,10 @@ _rx = re.compile(
"\(<span class='platform'>.*</span>\)</em>)?)</a>")
def main():
- outputfile = "-"
- columns = 1
- letters = 0
- uplink = "./"
- uptitle = "Python Documentation Index"
- variables = {"address": "",
- "iconserver": "icons",
- "imgtype": "gif",
- "title": "Global Module Index",
- "uplinkalt": "up",
- "uplinkicon": "up",
- }
- try:
- opts, args = getopt.getopt(sys.argv[1:], "a:c:hlo:",
- [# script controls:
- "columns=", "help", "letters", "output=",
- # content components:
- "address=", "iconserver=",
- "title=", "uplink=", "uptitle="])
- except getopt.error, msg:
- error(msg)
- for opt, val in opts:
- if opt in ("-a", "--address"):
- val = string.strip(val)
- variables["address"] = val and "<address>\n%s\n</address>\n" % val
- elif opt in ("-h", "--help"):
- usage()
- sys.exit()
- elif opt in ("-o", "--output"):
- outputfile = val
- elif opt in ("-c", "--columns"):
- columns = string.atoi(val)
- elif opt in ("-l", "--letters"):
- letters = 1
- elif opt == "--title":
- variables["title"] = string.strip(val)
- elif opt == "--uplink":
- uplink = string.strip(val)
- elif opt == "--uptitle":
- uptitle = string.strip(val)
- elif opt == "--iconserver":
- variables["iconserver"] = string.strip(val) or "."
- if uplink and uptitle:
- variables["uplinkalt"] = "up"
- variables["uplinkicon"] = "up"
- else:
- variables["uplinkalt"] = ""
- variables["uplinkicon"] = "blank"
- variables["uplink"] = uplink
- variables["uptitle"] = uptitle
+ options = IndexOptions()
+ options.variables["title"] = "Global Module Index"
+ options.parse(sys.argv[1:])
+ args = options.args
if not args:
args = ["-"]
#
@@ -138,19 +94,19 @@ def main():
#
num_nodes = len(nodes)
# Here's the HTML generation:
- parts = [HEAD % variables,
- buildindex.process_nodes(nodes, columns, letters),
- TAIL % variables,
+ 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])
- if outputfile == "-":
- sys.stdout.write(html)
- sys.stderr.write("%s: %d index nodes\n" % (program, num_nodes))
+ fp = options.get_output_file()
+ print >>fp, html.rstrip()
+ if options.outputfile == "-":
+ print >>sys.stderr, "%s: %d index nodes" % (program, num_nodes)
else:
- open(outputfile, "w").write(html)
print
print "%s: %d index nodes" % (program, num_nodes)
@@ -161,52 +117,6 @@ platform they are available on.</p>
"""
-NAVIGATION = '''\
-<div class="navigation">
-<table width="100%%" cellpadding="0" cellspacing="2">
-<tr>
-<td><img width="32" height="32" align="bottom" border="0" alt=""
- src="%(iconserver)s/blank.%(imgtype)s"></td>
-<td><a href="%(uplink)s"
- title="%(uptitle)s"><img width="32" height="32" align="bottom" border="0"
- alt="%(uplinkalt)s"
- src="%(iconserver)s/%(uplinkicon)s.%(imgtype)s"></a></td>
-<td><img width="32" height="32" align="bottom" border="0" alt=""
- src="%(iconserver)s/blank.%(imgtype)s"></td>
-<td align="center" width="100%%">%(title)s</td>
-<td><img width="32" height="32" align="bottom" border="0" alt=""
- src="%(iconserver)s/blank.%(imgtype)s"></td>
-<td><img width="32" height="32" align="bottom" border="0" alt=""
- src="%(iconserver)s/blank.%(imgtype)s"></td>
-<td><img width="32" height="32" align="bottom" border="0" alt=""
- src="%(iconserver)s/blank.%(imgtype)s"></td>
-</tr></table>
-<b class="navlabel">Up:</b> <span class="sectref"><a href="%(uplink)s"
- title="%(uptitle)s">%(uptitle)s</A></span>
-<br></div>
-'''
-
-HEAD = '''\
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <title>Global Module Index</title>
- <meta name="description" content="%(title)s">
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <link rel="STYLESHEET" href="lib/lib.css">
-</head>
-<body>
-''' + NAVIGATION + '''\
-<hr>
-
-<h2>%(title)s</h2>
-
-'''
-
-TAIL = "<hr>\n" + NAVIGATION + '''\
-%(address)s</body>
-</html>
-'''
if __name__ == "__main__":
main()