class Markdown: def __init__(self,output): self._id=0 self._output = output # Write columns in markdown format def writeColumns(self,cols): colStr = "".join(joinit(cols,"|")) self._output.write("|") self._output.write(colStr) self._output.write("|\n") sepStr="".join(joinit([":-:" for x in cols],"|")) self._output.write("|") self._output.write(sepStr) self._output.write("|\n") # Write row in markdown format def writeRow(self,row): row=[str(x) for x in row] rowStr = "".join(joinit(row,"|")) self._output.write("|") self._output.write(rowStr) self._output.write("|\n") def visitTable(self,table): self.writeColumns(table.columns) for row in table.rows: self.writeRow(row) def visitSection(self,section): self._id = self._id + 1 header = "".join(["#" for i in range(self._id)]) self._output.write("%s %s\n" % (header,section.name)) def leaveSection(self,section): self._id = self._id - 1 def visitDocument(self,document): self._output.write("Run number %d on %s\n" % (document.runid, str(document.date))) def leaveDocument(self,document): pass styleSheet=""" """ script="""""" class HTMLToc: def __init__(self,output): self._id=0 self._sectionID = 0 self._output = output def visitTable(self,table): pass def visitSection(self,section): self._id = self._id + 1 self._sectionID = self._sectionID + 1 if section.hasChildren: self._output.write("
| ") self._output.write(str(col)) self._output.write(" | \n") for col in table.cores: if firstCore: self._output.write("") else: self._output.write(" | ") self._output.write(str(col)) self._output.write(" | \n") firstCore = False self._output.write("
|---|---|---|
| ") self._output.write(str(elem)) self._output.write(" | \n") elif i == nbParams and nbParams != 0: self._output.write("") self._output.write(str(elem)) self._output.write(" | \n") else: self._output.write("") self._output.write(str(elem)) self._output.write(" | \n") i = i + 1 self._output.write("
Run number %d on %s
\n" % (document.runid, str(document.date))) def leaveDocument(self,document): document.accept(HTMLToc(self._output)) self._output.write("\n")