In that cases I prefer to keep the generators in server side.
modules/html_helpers.py from gluon import DIV class MySidebar(DIV): def __init__(self): # do whatever you want DIV.__init__(self) self.append(H1("mysidebar")) self.append(UL(*[LI().....])) def myextramethod(self): ..... So in any cotroller I can do: from html_helpers import MySidebar return dict(sidebar=MySidebar(*params))