diff options
Diffstat (limited to 'logilab/common/ureports/docbook_writer.py')
-rw-r--r-- | logilab/common/ureports/docbook_writer.py | 87 |
1 files changed, 43 insertions, 44 deletions
diff --git a/logilab/common/ureports/docbook_writer.py b/logilab/common/ureports/docbook_writer.py index f28474e..7e7564f 100644 --- a/logilab/common/ureports/docbook_writer.py +++ b/logilab/common/ureports/docbook_writer.py @@ -29,15 +29,17 @@ class DocbookWriter(HTMLWriter): super(HTMLWriter, self).begin_format(layout) if self.snippet is None: self.writeln('<?xml version="1.0" encoding="ISO-8859-1"?>') - self.writeln(""" + self.writeln( + """ <book xmlns:xi='http://www.w3.org/2001/XInclude' lang='fr'> -""") +""" + ) def end_format(self, layout): """finished to format a layout""" if self.snippet is None: - self.writeln('</book>') + self.writeln("</book>") def visit_section(self, layout): """display a section (using <chapter> (level 0) or <section>)""" @@ -46,98 +48,95 @@ class DocbookWriter(HTMLWriter): else: tag = "section" self.section += 1 - self.writeln(self._indent('<%s%s>' % (tag, self.handle_attrs(layout)))) + self.writeln(self._indent("<%s%s>" % (tag, self.handle_attrs(layout)))) self.format_children(layout) - self.writeln(self._indent('</%s>' % tag)) + self.writeln(self._indent("</%s>" % tag)) self.section -= 1 def visit_title(self, layout): """display a title using <title>""" - self.write(self._indent(' <title%s>' % self.handle_attrs(layout))) + self.write(self._indent(" <title%s>" % self.handle_attrs(layout))) self.format_children(layout) - self.writeln('</title>') + self.writeln("</title>") def visit_table(self, layout): """display a table as html""" self.writeln( - self._indent(' <table%s><title>%s</title>' % ( - self.handle_attrs(layout), layout.title))) + self._indent(" <table%s><title>%s</title>" % (self.handle_attrs(layout), layout.title)) + ) self.writeln(self._indent(' <tgroup cols="%s">' % layout.cols)) for i in range(layout.cols): - self.writeln( - self._indent( - ' <colspec colname="c%s" colwidth="1*"/>' % i)) + self.writeln(self._indent(' <colspec colname="c%s" colwidth="1*"/>' % i)) table_content = self.get_table_content(layout) # write headers if layout.cheaders: - self.writeln(self._indent(' <thead>')) + self.writeln(self._indent(" <thead>")) self._write_row(table_content[0]) - self.writeln(self._indent(' </thead>')) + self.writeln(self._indent(" </thead>")) table_content = table_content[1:] elif layout.rcheaders: - self.writeln(self._indent(' <thead>')) + self.writeln(self._indent(" <thead>")) self._write_row(table_content[-1]) - self.writeln(self._indent(' </thead>')) + self.writeln(self._indent(" </thead>")) table_content = table_content[:-1] # write body - self.writeln(self._indent(' <tbody>')) + self.writeln(self._indent(" <tbody>")) for i in range(len(table_content)): row = table_content[i] - self.writeln(self._indent(' <row>')) + self.writeln(self._indent(" <row>")) for j in range(len(row)): - cell = row[j] or ' ' - self.writeln( - self._indent(' <entry>%s</entry>' % cell)) - self.writeln(self._indent(' </row>')) - self.writeln(self._indent(' </tbody>')) - self.writeln(self._indent(' </tgroup>')) - self.writeln(self._indent(' </table>')) + cell = row[j] or " " + self.writeln(self._indent(" <entry>%s</entry>" % cell)) + self.writeln(self._indent(" </row>")) + self.writeln(self._indent(" </tbody>")) + self.writeln(self._indent(" </tgroup>")) + self.writeln(self._indent(" </table>")) def _write_row(self, row): """write content of row (using <row> <entry>)""" - self.writeln(' <row>') + self.writeln(" <row>") for j in range(len(row)): - cell = row[j] or ' ' - self.writeln(' <entry>%s</entry>' % cell) - self.writeln(self._indent(' </row>')) + cell = row[j] or " " + self.writeln(" <entry>%s</entry>" % cell) + self.writeln(self._indent(" </row>")) def visit_list(self, layout): """display a list (using <itemizedlist>)""" - self.writeln(self._indent(' <itemizedlist%s>' - '' % self.handle_attrs(layout))) + self.writeln(self._indent(" <itemizedlist%s>" "" % self.handle_attrs(layout))) for row in list(self.compute_content(layout)): - self.writeln(' <listitem><para>%s</para></listitem>' % row) - self.writeln(self._indent(' </itemizedlist>')) + self.writeln(" <listitem><para>%s</para></listitem>" % row) + self.writeln(self._indent(" </itemizedlist>")) def visit_paragraph(self, layout): """display links (using <para>)""" - self.write(self._indent(' <para>')) + self.write(self._indent(" <para>")) self.format_children(layout) - self.writeln('</para>') + self.writeln("</para>") def visit_span(self, layout): """display links (using <p>)""" # TODO: translate in docbook - self.write('<literal %s>' % self.handle_attrs(layout)) + self.write("<literal %s>" % self.handle_attrs(layout)) self.format_children(layout) - self.write('</literal>') + self.write("</literal>") def visit_link(self, layout): """display links (using <ulink>)""" - self.write('<ulink url="%s"%s>%s</ulink>' % ( - layout.url, self.handle_attrs(layout), layout.label)) + self.write( + '<ulink url="%s"%s>%s</ulink>' % (layout.url, self.handle_attrs(layout), layout.label) + ) def visit_verbatimtext(self, layout): """display verbatim text (using <programlisting>)""" - self.writeln(self._indent(' <programlisting>')) - self.write(layout.data.replace('&', '&').replace('<', '<')) - self.writeln(self._indent(' </programlisting>')) + self.writeln(self._indent(" <programlisting>")) + self.write(layout.data.replace("&", "&").replace("<", "<")) + self.writeln(self._indent(" </programlisting>")) def visit_text(self, layout): """add some text""" - self.write(layout.data.replace('&', '&').replace('<', '<')) + self.write(layout.data.replace("&", "&").replace("<", "<")) def _indent(self, string): """correctly indent string according to section""" - return ' ' * 2*(self.section) + string + return " " * 2 * (self.section) + string |