root / trunk / twisted / scripts / htmlizer.py

Revision 13278, 1.7 kB (checked in by teratorn, 4 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
10 from twisted.python import htmlizer, usage
11 from twisted import copyright
12
13 import os, sys
14
15 header = '''<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 '''
23 footer = """</body>"""
24
25 styleLink = '<link rel="stylesheet" href="%s" type="text/css" />'
26 alternateLink = '<link rel="alternate" href="%(source)s" type="text/x-python" />'
27
28 class 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
41 def 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.