# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """I hold HTML generation helpers. """ from cgi import escape from twisted.python import log from twisted.python.compat import NativeStringIO as StringIO def PRE(text): "Wrap
 tags around some text and HTML-escape it."
    return "
"+escape(text)+"
" def UL(lst): io = StringIO() io.write("") return io.getvalue() def linkList(lst): io = StringIO() io.write("") return io.getvalue() def output(func, *args, **kw): """output(func, *args, **kw) -> html string Either return the result of a function (which presumably returns an HTML-legal string) or a sparse HTMLized error message and a message in the server log. """ try: return func(*args, **kw) except: log.msg("Error calling %r:" % (func,)) log.err() return PRE("An error occurred.")