diff options
Diffstat (limited to 'Doc/tools/support.py')
-rw-r--r-- | Doc/tools/support.py | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/Doc/tools/support.py b/Doc/tools/support.py deleted file mode 100644 index fc4cafa..0000000 --- a/Doc/tools/support.py +++ /dev/null @@ -1,202 +0,0 @@ -"""Miscellaneous support code shared by some of the tool scripts. - -This includes option parsing code, HTML formatting code, and a couple of -useful helpers. - -""" -__version__ = '$Revision$' - - -import getopt -import os.path -import sys - - -class Options: - __short_args = "a:c:ho:" - __long_args = [ - # script controls - "columns=", "help", "output=", - - # content components - "address=", "iconserver=", "favicon=", - "title=", "uplink=", "uptitle=", - "image-type=", - ] - - outputfile = "-" - columns = 1 - letters = 0 - uplink = "index.html" - uptitle = "Python Documentation Index" - favicon = None - - # The "Aesop Meta Tag" is poorly described, and may only be used - # by the Aesop search engine (www.aesop.com), but doesn't hurt. - # - # There are a number of values this may take to roughly categorize - # a page. A page should be marked according to its primary - # category. Known values are: - # 'personal' -- personal-info - # 'information' -- information - # 'interactive' -- interactive media - # 'multimedia' -- multimedia presenetation (non-sales) - # 'sales' -- sales material - # 'links' -- links to other information pages - # - # Setting the aesop_type value to one of these strings will cause - # get_header() to add the appropriate <meta> tag to the <head>. - # - aesop_type = None - - def __init__(self): - self.args = [] - self.variables = {"address": "", - "iconserver": "icons", - "imgtype": "png", - "title": "Global Module Index", - } - - def add_args(self, short=None, long=None): - if short: - self.__short_args = self.__short_args + short - if long: - self.__long_args = 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 = 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 "." - elif opt == "--favicon": - self.favicon = val.strip() - elif opt == "--image-type": - self.variables["imgtype"] = val.strip() - 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): - s = HEAD % self.variables - if self.uplink: - if self.uptitle: - link = ('<link rel="up" href="%s" title="%s">\n ' - '<link rel="start" href="%s" title="%s">' - % (self.uplink, self.uptitle, - self.uplink, self.uptitle)) - else: - link = ('<link rel="up" href="%s">\n ' - '<link rel="start" href="%s">' - % (self.uplink, self.uplink)) - repl = " %s\n</head>" % link - s = s.replace("</head>", repl, 1) - if self.aesop_type: - meta = '<meta name="aesop" content="%s">\n ' % self.aesop_type - # Insert this in the middle of the head that's been - # generated so far, keeping <meta> and <link> elements in - # neat groups: - s = s.replace("<link ", meta + "<link ", 1) - if self.favicon: - ext = os.path.splitext(self.favicon)[1] - if ext in (".gif", ".png"): - type = ' type="image/%s"' % ext[1:] - else: - type = '' - link = ('<link rel="SHORTCUT ICON" href="%s"%s>\n ' - % (self.favicon, type)) - s = s.replace("<link ", link + "<link ", 1) - return s - - 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> -''' |