code: def _htmlRenderDict(pathParts, statDict, output):
    
    keys = list(statDict.keys())
    keys.sort()
  
    links = []
  
    output.write('<div class="level">')
    for key in keys:
      keyStr = cgi.escape(_utf8str(key))
      value = statDict[key]
      if hasattr(value, '__call__'):
        value = value()
      if hasattr(value, 'keys'):
        valuePath = pathParts + (keyStr,)
        if isinstance(value, scales.StatContainer) and value.isCollapsed():
          link = '/status/' + '/'.join(valuePath)
          links.append('<div class="key"><a href="%s">%s</a></div>' % (link, keyStr))
        else:
          output.write('<div class="key">%s</div>' % keyStr)
          _htmlRenderDict(valuePath, value, output)
      else:
        output.write('<div><span class="key">%s</span> <span class="%s">%s</span></div>' %
                     (keyStr, type(value).__name__, cgi.escape(_utf8str(value)).replace('\n', '<br/>')))
  
    if links:
      for link in links:
        output.write(link)
  
    output.write('</div>')
docs: Render a dictionary as a table - recursing as necessary.