old_contents: from xml.sax.saxutils import escape
  import codecs
  
  class DokuWikiTablesOutput():
      def __init__(self, groups):
          result = "====== Parameter Reference ======\nThis list is auto-generated every few minutes and contains the most recent parameter names and default values.\n\n"
          for group in groups:
              result += "==== %s ====\n\n" % group.GetName()
              result += "|< 100% 20% 20% 10% 10% 10% 30%>|\n"
              result += "^ Name ^ Description ^  Min ^  Max ^  Default ^ Comment ^\n"
              for param in group.GetParams():
                  code = param.GetFieldValue("code")
                  name = param.GetFieldValue("short_desc")
                  min_val = param.GetFieldValue("min")
                  max_val = param.GetFieldValue("max")
                  def_val = param.GetFieldValue("default")
                  long_desc = param.GetFieldValue("long_desc")
  
                  name = name.replace("\n", " ")
                  result += "| %s | %s |" % (code, name)
  
                  if min_val is not None:
                      result += "  %s |" % min_val
                  else:
                      result += " |"
  
                  if max_val is not None:
                      result += "  %s |" % max_val
                  else:
                      result += " |"
  
                  if def_val is not None:
                      result += "  %s |" % def_val
                  else:
                      result += " |"
  
                  if long_desc is not None:
                      long_desc = long_desc.replace("\n", " ")
                      result += " %s |" % long_desc
                  else:
                      result += " |"
  
                  result += "\n"
              result += "\n"
          self.output = result;
  
      def Save(self, filename):
          with codecs.open(filename, 'w', 'utf-8') as f:
              f.write(self.output)
  
new_contents: from xml.sax.saxutils import escape
  import codecs
  
  class DokuWikiTablesOutput():
      def __init__(self, groups):
          result = ("====== Parameter Reference ======\n"
                    "<note>**This list is auto-generated from the source code** and contains the most recent parameter documentation.</note>\n"
                    "\n")
          for group in groups:
              result += "==== %s ====\n\n" % group.GetName()
              result += "|< 100% 25% 45% 10% 10% 10% >|\n"
              result += "^ Name ^ Description ^  Min ^  Max ^  Default ^\n"
              result += "^ :::  ^ Comment ^^^^\n"
              for param in group.GetParams():
                  code = param.GetFieldValue("code")
                  name = param.GetFieldValue("short_desc")
                  min_val = param.GetFieldValue("min")
                  max_val = param.GetFieldValue("max")
                  def_val = param.GetFieldValue("default")
                  long_desc = param.GetFieldValue("long_desc")
  
                  if name == code:
                      name = ""
                  else:
                      name = name.replace("\n", " ")
                      name = name.replace("|", "%%|%%")
                      name = name.replace("^", "%%^%%")
  
                  result += "| **%s** |" % code
                  result += " %s |" % name
                  result += "  %s |" % (min_val or "")
                  result += "  %s |" % (max_val or "")
                  result += "  %s |" % (def_val or "")
                  result += "\n"
  
                  if long_desc is not None:
                      result += "| ::: | <div>%s</div> ||||\n" % long_desc
  
              result += "\n"
          self.output = result;
  
      def Save(self, filename):
          with codecs.open(filename, 'w', 'utf-8') as f:
              f.write(self.output)
  
subject: Improve DokuWiki formatting.