~certify-web-dev/twisted/certify-trunk

« back to all changes in this revision

Viewing changes to twisted/scripts/htmlizer.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2004-06-21 22:01:11 UTC
  • mto: (2.2.3 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20040621220111-vkf909euqnyrp3nr
Tags: upstream-1.3.0
ImportĀ upstreamĀ versionĀ 1.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Twisted, the Framework of Your Internet
 
2
# Copyright (C) 2001-2004 Matthew W. Lefkowitz
 
3
#
 
4
# This library is free software; you can redistribute it and/or
 
5
# modify it under the terms of version 2.1 of the GNU Lesser General Public
 
6
# License as published by the Free Software Foundation.
 
7
#
 
8
# This library is distributed in the hope that it will be useful,
 
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
11
# Lesser General Public License for more details.
 
12
#
 
13
# You should have received a copy of the GNU Lesser General Public
 
14
# License along with this library; if not, write to the Free Software
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
16
#
 
17
 
 
18
"""HTML pretty-printing for Python source code."""
 
19
 
 
20
__version__ = '$Revision: 1.8 $'[11:-2]
 
21
 
 
22
from twisted.python import htmlizer, usage
 
23
from twisted import copyright
 
24
 
 
25
import os, sys
 
26
 
 
27
header = '''<html><head>
 
28
<title>%(title)s</title>
 
29
<meta name=\"Generator\" content="%(generator)s" />
 
30
%(alternate)s
 
31
%(stylesheet)s
 
32
</head>
 
33
<body>
 
34
'''
 
35
footer = """</body>"""
 
36
 
 
37
styleLink = '<link rel="stylesheet" href="%s" type="text/css" />'
 
38
alternateLink = '<link rel="alternate" href="%(source)s" type="text/x-python" />'
 
39
 
 
40
class Options(usage.Options):
 
41
    synopsis = """%s [options] source.py
 
42
    """ % (
 
43
        os.path.basename(sys.argv[0]),)
 
44
 
 
45
    optParameters = [
 
46
        ('stylesheet', 's', None, "URL of stylesheet to link to."),
 
47
        ]
 
48
 
 
49
    def parseArgs(self, filename):
 
50
        self['filename'] = filename
 
51
 
 
52
def run():
 
53
    options = Options()
 
54
    try:
 
55
        options.parseOptions()
 
56
    except usage.UsageError, e:
 
57
        print str(e)
 
58
        sys.exit(1)
 
59
    filename = options['filename']
 
60
    if options.get('stylesheet') is not None:
 
61
        stylesheet = styleLink % (options['stylesheet'],)
 
62
    else:
 
63
        stylesheet = ''
 
64
 
 
65
    output = open(filename + '.html', 'w')
 
66
    try:
 
67
        output.write(header % {
 
68
            'title': filename,
 
69
            'generator': 'htmlizer/%s' % (copyright.longversion,),
 
70
            'alternate': alternateLink % {'source': filename},
 
71
            'stylesheet': stylesheet
 
72
            })
 
73
        htmlizer.filter(open(filename), output,
 
74
                        htmlizer.SmallerHTMLWriter)
 
75
        output.write(footer)
 
76
    finally:
 
77
        output.close()