# -*- coding: iso-8859-1 -*-
"""
MoinMoin theme by and for crw.
"""
from MoinMoin import wikiutil
from MoinMoin.Page import Page
from MoinMoin.theme import ThemeBase
class Theme(ThemeBase):
""" here are the functions generating the html responsible for
the look and feel of your wiki site
"""
name = "rightsidebarsmaller"
def wikipanel(self, d):
""" Create wiki panel """
_ = self.request.getText
html = [
u'
',
u'
%s
' % _("Navigation"),
self.navibar(d),
u'',
]
return u'\n'.join(html)
def pagepanel(self, d):
""" Create page panel """
_ = self.request.getText
if self.shouldShowEditbar(d['page']):
html = [
u'',
u'
%s
' % _("Page"),
self.editbar(d),
u'',
]
return u'\n'.join(html)
return ''
def userpanel(self, d):
""" Create user panel """
_ = self.request.getText
trail = self.trail(d)
if trail:
trail = u'%s
\n' % _("Recently viewed pages") + trail
html = [
u'',
u'
%s
' % _("User"),
self.username(d),
trail,
u''
]
return u'\n'.join(html)
def header(self, d):
"""
Assemble page header
@param d: parameter dictionary
@rtype: string
@return: page header html
"""
_ = self.request.getText
html = [
# Custom html above header
self.emit_custom_html(self.cfg.page_header1),
# Hedar
u'',
# Custom html below header (not recomended!)
self.emit_custom_html(self.cfg.page_header2),
# Sidebar
u'',
self.msg(d),
# Page
self.startPage(),
self.title(d),
]
return u'\n'.join(html)
def footer(self, d, **keywords):
""" Assemble page footer
@param d: parameter dictionary
@keyword ...:...
@rtype: string
@return: page footer html
"""
page = d['page']
html = [
# Page end
# Used to extend the page to the bottom of the sidebar
u'',
self.pageinfo(page),
self.endPage(),
# Custom html above footer
self.emit_custom_html(self.cfg.page_footer1),
# And bellow
self.emit_custom_html(self.cfg.page_footer2),
]
return u'\n'.join(html)
def execute(request):
"""
Generate and return a theme object
@param request: the request object
@rtype: MoinTheme
@return: Theme object
"""
return Theme(request)