root/trunk/twisted/scripts/htmlizer.py

Revision 13278, 1.7 KB (checked in by teratorn, 5 years ago)

zsh annotations

Line 
1# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
2# See LICENSE for details.
3
4#
5
6"""HTML pretty-printing for Python source code."""
7
8__version__ = '$Revision: 1.8 $'[11:-2]
9
10from twisted.python import htmlizer, usage
11from twisted import copyright
12
13import os, sys
14
15header = '''<html><head>
16<title>%(title)s</title>
17<meta name=\"Generator\" content="%(generator)s" />
18%(alternate)s
19%(stylesheet)s
20</head>
21<body>
22'''
23footer = """</body>"""
24
25styleLink = '<link rel="stylesheet" href="%s" type="text/css" />'
26alternateLink = '<link rel="alternate" href="%(source)s" type="text/x-python" />'
27
28class Options(usage.Options):
29    synopsis = """%s [options] source.py
30    """ % (
31        os.path.basename(sys.argv[0]),)
32
33    optParameters = [
34        ('stylesheet', 's', None, "URL of stylesheet to link to."),
35        ]
36    zsh_extras = ["1:source python file:_files -g '*.py'"]
37
38    def parseArgs(self, filename):
39        self['filename'] = filename
40
41def run():
42    options = Options()
43    try:
44        options.parseOptions()
45    except usage.UsageError, e:
46        print str(e)
47        sys.exit(1)
48    filename = options['filename']
49    if options.get('stylesheet') is not None:
50        stylesheet = styleLink % (options['stylesheet'],)
51    else:
52        stylesheet = ''
53
54    output = open(filename + '.html', 'w')
55    try:
56        output.write(header % {
57            'title': filename,
58            'generator': 'htmlizer/%s' % (copyright.longversion,),
59            'alternate': alternateLink % {'source': filename},
60            'stylesheet': stylesheet
61            })
62        htmlizer.filter(open(filename), output,
63                        htmlizer.SmallerHTMLWriter)
64        output.write(footer)
65    finally:
66        output.close()
Note: See TracBrowser for help on using the browser.