summaryrefslogtreecommitdiffstats
path: root/Doc/tools/mkmodindex
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>1999-02-24 17:33:07 (GMT)
committerFred Drake <fdrake@acm.org>1999-02-24 17:33:07 (GMT)
commit2ef38a7a42d9d02b0bd95b65d2d187ce34877f8a (patch)
tree395a853caa0c97708b26066eb92348c908257e59 /Doc/tools/mkmodindex
parent1b102456a69b3291473176b89a813552df04568d (diff)
downloadcpython-2ef38a7a42d9d02b0bd95b65d2d187ce34877f8a.zip
cpython-2ef38a7a42d9d02b0bd95b65d2d187ce34877f8a.tar.gz
cpython-2ef38a7a42d9d02b0bd95b65d2d187ce34877f8a.tar.bz2
Script to combine module index files. Given a list of files that look
like modindex.html, create a combined modindex.html file that lists all the modules. Takes the same parameters as buildindex.py.
Diffstat (limited to 'Doc/tools/mkmodindex')
-rwxr-xr-xDoc/tools/mkmodindex136
1 files changed, 136 insertions, 0 deletions
diff --git a/Doc/tools/mkmodindex b/Doc/tools/mkmodindex
new file mode 100755
index 0000000..893771e
--- /dev/null
+++ b/Doc/tools/mkmodindex
@@ -0,0 +1,136 @@
+#! /usr/bin/env python
+# -*- Python -*-
+
+import buildindex
+import getopt
+import os
+import re
+import string
+import sys
+
+
+_rx = re.compile(
+ '<dt><a href="(module-.*\.html)">([a-zA-Z_][a-zA-Z0-9_.]*)</a>')
+
+def main():
+ outputfile = "-"
+ columns = 1
+ letters = 0
+ opts, args = getopt.getopt(sys.argv[1:], "c:lo:",
+ ["columns=", "letters", "output="])
+ for opt, val in opts:
+ if opt in ("-o", "--output"):
+ outputfile = val
+ elif opt in ("-c", "--columns"):
+ columns = string.atoi(val)
+ elif opt in ("-l", "--letters"):
+ letters = 1
+ if not args:
+ args = ["-"]
+ #
+ # Collect the input data:
+ #
+ nodes = []
+ seqno = 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)
+ linkfile = os.path.join(dirname, basename)
+ nodes.append(buildindex.Node('<a href="%s">' % linkfile,
+ "<tt>%s</tt>" % modname,
+ seqno))
+ seqno = seqno + 1
+ ifp.close()
+ num_nodes = len(nodes)
+ html = HEAD + buildindex.process_nodes(nodes, columns, letters) + TAIL
+ program = os.path.basename(sys.argv[0])
+ if outputfile == "-":
+ sys.stdout.write(html)
+ sys.stderr.write("%s: %d index nodes\n" % (program, num_nodes))
+ else:
+ open(outputfile, "w").write(html)
+ print
+ print "%s: %d index nodes" % (program, num_nodes)
+
+
+HEAD = """\
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Global Module Index</title>
+<META NAME="description" CONTENT="Global Module Index">
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+<LINK REL="STYLESHEET" HREF="lib/lib.css">
+<LINK REL="up" HREF="./">
+</head>
+<body bgcolor="#ffffff">
+<div class=navigation>
+<table width="100%" cellpadding=0 cellspacing=2>
+<tr>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td><a href="./"><img width=32 height=32 align=bottom border=0 alt="up"
+ src="icons/up.gif"></A></td>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td align=center bgcolor="#99CCFF" width="100%">
+ <b class=title>Global Module Index</b></td>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+</tr></table>
+<b class=navlabel>Up:</b> <span class=sectref><A
+ HREF="./">Python Documentation Index</A></span>
+<br><hr></div>
+"""
+
+TAIL = """
+<div class=navigation>
+<hr>
+<table width="100%" cellpadding=0 cellspacing=2>
+<tr>
+<td><img width=32 height=32 align=bottom border=0 alt="blank"
+ src="icons/blank.gif"></td>
+<td><a href="./"><img width=32 height=32 align=bottom border=0 alt="up"
+ src="icons/up.gif"></A></td>
+<td><img width=32 height=32 align=bottom border=0 alt=""
+ src="icons/blank.gif"></A></td>
+<td align=center bgcolor="#99CCFF" width="100%">
+ <b class=title>Global Module Index</b></td>
+<td><img width=32 height=32 align=bottom border=0 alt=""
+ src="icons/blank.gif"></td>
+<td><img width=32 height=32 align=bottom border=0 alt=""
+ src="icons/blank.gif"></td>
+<td><img width=32 height=32 align=bottom border=0 alt=""
+ src="icons/blank.gif"></td>
+</tr></table>
+<b class=navlabel>Up:</b> <span class=sectref><A
+ HREF="./">Python Documentation Index</A></span>
+</div>
+<!--End of Navigation Panel-->
+<ADDRESS>
+<hr>Send comments to
+<a href="mailto:python-docs@python.org">python-docs@python.org</a>.
+</ADDRESS>
+</BODY>
+</HTML>
+"""
+
+
+if __name__ == "__main__":
+ main()