mirror of https://github.com/python/cpython
Factor out some of the presentation and shared code from mkmodindex and
a mkackshtml (not yet checked in).
This commit is contained in:
parent
4beff43e45
commit
ca2b2e04e1
|
@ -0,0 +1,144 @@
|
|||
"""
|
||||
"""
|
||||
__version__ = '$Revision$'
|
||||
|
||||
|
||||
import getopt
|
||||
import sys
|
||||
|
||||
|
||||
class Options:
|
||||
__short_args = "a:c:ho:"
|
||||
__long_args = [
|
||||
# script controls
|
||||
"columns=", "help", "output=",
|
||||
|
||||
# content components
|
||||
"address=", "iconserver=",
|
||||
"title=", "uplink=", "uptitle="]
|
||||
|
||||
outputfile = "-"
|
||||
columns = 1
|
||||
letters = 0
|
||||
uplink = "./"
|
||||
uptitle = "Python Documentation Index"
|
||||
|
||||
def __init__(self):
|
||||
self.args = []
|
||||
self.variables = {"address": "",
|
||||
"iconserver": "icons",
|
||||
"imgtype": "gif",
|
||||
"title": "Global Module Index",
|
||||
}
|
||||
|
||||
def add_args(self, short=None, long=None):
|
||||
if short:
|
||||
self.__short_args += short
|
||||
if long:
|
||||
self.__long_args += long
|
||||
|
||||
def parse(self, args):
|
||||
try:
|
||||
opts, args = getopt.getopt(args, self.__short_args,
|
||||
self.__long_args)
|
||||
except getopt.error:
|
||||
sys.stdout = sys.stderr
|
||||
self.usage()
|
||||
sys.exit(2)
|
||||
self.args += args
|
||||
for opt, val in opts:
|
||||
if opt in ("-a", "--address"):
|
||||
val = val.strip()
|
||||
if val:
|
||||
val = "<address>\n%s\n</address>\n" % val
|
||||
self.variables["address"] = val
|
||||
elif opt in ("-h", "--help"):
|
||||
self.usage()
|
||||
sys.exit()
|
||||
elif opt in ("-o", "--output"):
|
||||
self.outputfile = val
|
||||
elif opt in ("-c", "--columns"):
|
||||
self.columns = int(val)
|
||||
elif opt == "--title":
|
||||
self.variables["title"] = val.strip()
|
||||
elif opt == "--uplink":
|
||||
self.uplink = val.strip()
|
||||
elif opt == "--uptitle":
|
||||
self.uptitle = val.strip()
|
||||
elif opt == "--iconserver":
|
||||
self.variables["iconserver"] = val.strip() or "."
|
||||
else:
|
||||
self.handle_option(opt, val)
|
||||
if self.uplink and self.uptitle:
|
||||
self.variables["uplinkalt"] = "up"
|
||||
self.variables["uplinkicon"] = "up"
|
||||
else:
|
||||
self.variables["uplinkalt"] = ""
|
||||
self.variables["uplinkicon"] = "blank"
|
||||
self.variables["uplink"] = self.uplink
|
||||
self.variables["uptitle"] = self.uptitle
|
||||
|
||||
def handle_option(self, opt, val):
|
||||
raise getopt.error("option %s not recognized" % opt)
|
||||
|
||||
def get_header(self):
|
||||
return HEAD % self.variables
|
||||
|
||||
def get_footer(self):
|
||||
return TAIL % self.variables
|
||||
|
||||
def get_output_file(self, filename=None):
|
||||
if filename is None:
|
||||
filename = self.outputfile
|
||||
if filename == "-":
|
||||
return sys.stdout
|
||||
else:
|
||||
return open(filename, "w")
|
||||
|
||||
|
||||
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>%(title)s</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>
|
||||
'''
|
Loading…
Reference in New Issue