+def escape_if_needed(s):
+ if use_html:
+ return re_html_escaping.sub(lambda x: html_escaping.get(x.group(0)), s)
+ else:
+ return s
+
+def headline(s, level=2, bodyelement=None):
+ if use_html:
+ if bodyelement:
+ return """<thead>
+ <tr><th colspan="2" class="title" onclick="toggle('%(bodyelement)s', 'table-row-group', 'table-row-group')">%(title)s <span class="toggle-msg">(click to toggle)</span></th></tr>
+ </thead>\n"""%{"bodyelement":bodyelement,"title":utils.html_escape(s)}
+ else:
+ return "<h%d>%s</h%d>\n" % (level, utils.html_escape(s), level)
+ else:
+ return "---- %s ----\n" % (s)
+
+# Colour definitions, 'end' isn't really for use
+
+ansi_colours = {
+ 'main': "\033[36m",
+ 'contrib': "\033[33m",
+ 'nonfree': "\033[31m",
+ 'provides': "\033[35m",
+ 'arch': "\033[32m",
+ 'end': "\033[0m",
+ 'bold': "\033[1m",
+ 'maintainer': "\033[32m",
+ 'distro': "\033[1m\033[41m"}
+
+html_colours = {
+ 'main': ('<span style="color: aqua">',"</span>"),
+ 'contrib': ('<span style="color: yellow">',"</span>"),
+ 'nonfree': ('<span style="color: red">',"</span>"),
+ 'provides': ('<span style="color: magenta">',"</span>"),
+ 'arch': ('<span style="color: green">',"</span>"),
+ 'bold': ('<span style="font-weight: bold">',"</span>"),
+ 'maintainer': ('<span style="color: green">',"</span>"),
+ 'distro': ('<span style="font-weight: bold; background-color: red">',"</span>")}
+
+def colour_output(s, colour):
+ if use_html:
+ return ("%s%s%s" % (html_colours[colour][0], utils.html_escape(s), html_colours[colour][1]))
+ else:
+ return ("%s%s%s" % (ansi_colours[colour], s, ansi_colours['end']))