aboutsummaryrefslogtreecommitdiffstats
path: root/admin/www/MMGenerator.py
diff options
context:
space:
mode:
Diffstat (limited to 'admin/www/MMGenerator.py')
-rw-r--r--admin/www/MMGenerator.py110
1 files changed, 110 insertions, 0 deletions
diff --git a/admin/www/MMGenerator.py b/admin/www/MMGenerator.py
new file mode 100644
index 00000000..df632984
--- /dev/null
+++ b/admin/www/MMGenerator.py
@@ -0,0 +1,110 @@
+"""Generator for the Mailman on-line documentation.
+
+Requires ht2html.py, available from http://ht2html.sourceforge.net
+"""
+
+import os
+import time
+
+from Skeleton import Skeleton
+from Sidebar import Sidebar, BLANKCELL
+from Banner import Banner
+from HTParser import HTParser
+from LinkFixer import LinkFixer
+
+
+
+sitelinks = [
+ # Row 1
+ ('%(rootdir)s/index.html', 'Home'),
+ ('%(rootdir)s/docs.html', 'Documentation'),
+ ('%(rootdir)s/lists.html', 'Mailing lists'),
+ ('%(rootdir)s/help.html', 'Help'),
+ ('%(rootdir)s/download.html', 'Download'),
+ ('%(rootdir)s/devs.html', 'Developers'),
+ ]
+
+
+
+class MMGenerator(Skeleton, Sidebar, Banner):
+ def __init__(self, file, rootdir, relthis):
+ self.__body = None
+ root, ext = os.path.splitext(file)
+ html = root + '.html'
+ p = self.__parser = HTParser(file, 'mailman-users@python.org')
+ f = self.__linkfixer = LinkFixer(html, rootdir, relthis)
+ p.process_sidebar()
+ p.sidebar.append(BLANKCELL)
+ # massage our links
+ self.__d = {'rootdir': rootdir}
+ self.__linkfixer.massage(p.sidebar, self.__d)
+ # tweak
+ p.sidebar.append((None,
+ '''<a href="http://www.python.org/"><img border=0
+ src="%(rootdir)s/images/PythonPoweredSmall.png"
+ ></a>&nbsp;<a href="http://sourceforge.net"><img
+ src="http://sourceforge.net/sflogo.php?group_id=103"
+ width="88" height="31" border="0"
+ alt="SourceForge Logo"></a>'''
+ % self.__d))
+ p.sidebar.append(BLANKCELL)
+ thisyear = time.localtime()[0]
+ copyright = self.__parser.get('copyright', '1998-%s' % thisyear)
+ p.sidebar.append((None, '&copy; ' + copyright + """
+Free Software Foundation, Inc. Verbatim copying and distribution of this
+entire article is permitted in any medium, provided this notice is preserved.
+"""))
+ Sidebar.__init__(self, p.sidebar)
+ #
+ # fix up our site links, no relthis because the site links are
+ # relative to the root of my web pages
+ #
+ sitelink_fixer = LinkFixer(f.myurl(), rootdir)
+ sitelink_fixer.massage(sitelinks, self.__d, aboves=1)
+ Banner.__init__(self, sitelinks, cols=3)
+ # kludge!
+## for i in range(len(p.sidebar)-1, -1, -1):
+## if p.sidebar[i] == 'Email Us':
+## p.sidebar[i] = 'Email me'
+## break
+
+ def get_corner(self):
+ rootdir = self.__linkfixer.rootdir()
+ return '''
+<center>
+ <a href="%(rootdir)s/index.html">
+ <img border=0 src="%(rootdir)s/images/logo-70.jpg"></a></center>''' \
+ % self.__d
+
+ def get_corner_bgcolor(self):
+ return 'white'
+
+ def get_banner(self):
+ return Banner.get_banner(self)
+
+ def get_title(self):
+ return self.__parser.get('title')
+
+ def get_sidebar(self):
+ return Sidebar.get_sidebar(self)
+
+ def get_banner_attributes(self):
+ return 'CELLSPACING=0 CELLPADDING=0'
+
+ def get_body(self):
+ if self.__body is None:
+ self.__body = self.__parser.fp.read()
+ return self.__body
+
+ def get_lightshade(self):
+ """Return lightest of 3 color scheme shade."""
+ # The Mailman logo's foreground is approximately #da7074
+ #return '#99997c'
+ #return '#a39c82'
+ #return '#caa08f'
+ return '#eecfa1'
+
+ def get_darkshade(self):
+ """Return darkest of 3 color scheme shade."""
+ #return '#545454'
+ return '#36648b'