import output from xml.sax.saxutils import escape class DokuWikiOutput(output.Output): def Generate(self, groups): pre_text = """ wiki.putPage :firmware:parameters """ result = "====== Parameter Reference ======\nThis list is auto-generated every few minutes and contains the most recent parameter names and default values." 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" post_text = """ sum Updated parameters automagically from code. """ return pre_text + escape(result) + post_text