summaryrefslogtreecommitdiffstats
path: root/wiki-to-help/mwlib_mods/docbook_table_tags.py
diff options
context:
space:
mode:
Diffstat (limited to 'wiki-to-help/mwlib_mods/docbook_table_tags.py')
-rw-r--r--wiki-to-help/mwlib_mods/docbook_table_tags.py93
1 files changed, 93 insertions, 0 deletions
diff --git a/wiki-to-help/mwlib_mods/docbook_table_tags.py b/wiki-to-help/mwlib_mods/docbook_table_tags.py
new file mode 100644
index 0000000000..7ec527b753
--- /dev/null
+++ b/wiki-to-help/mwlib_mods/docbook_table_tags.py
@@ -0,0 +1,93 @@
+"""
+Create docbook- instead of HTML-tables.
+
+Requires:
+ docbook_grammar
+
+Example of a docbook table:
+
+<table frame='all'><title>Sample Table</title>
+<tgroup cols='5' align='left' colsep='1' rowsep='1'>
+<colspec colname='c1'/>
+<colspec colname='c2'/>
+<colspec colname='c3'/>
+<colspec colnum='5' colname='c5'/>
+<thead>
+<row>
+ <entry namest="c1" nameend="c2" align="center">Horizontal Span</entry>
+ <entry>a3</entry>
+ <entry>a4</entry>
+ <entry>a5</entry>
+</row>
+</thead>
+<tfoot>
+<row>
+ <entry>f1</entry>
+ <entry>f2</entry>
+ <entry>f3</entry>
+ <entry>f4</entry>
+ <entry>f5</entry>
+</row>
+</tfoot>
+<tbody>
+<row>
+ <entry>b1</entry>
+ <entry>b2</entry>
+ <entry>b3</entry>
+ <entry>b4</entry>
+ <entry morerows='1' valign='middle'><para> <!-- Pernicous Mixed Content -->
+ Vertical Span</para></entry>
+</row>
+<row>
+ <entry>c1</entry>
+ <entry namest="c2" nameend="c3" align='center' morerows='1' valign='bottom'>Span Both</entry>
+ <entry>c4</entry>
+</row>
+<row>
+ <entry>d1</entry>
+ <entry>d4</entry>
+ <entry>d5</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+
+Example from http://www.docbook.org/tdg/en/html/table.html
+"""
+
+## Set up docbookwriter
+import mwlib.docbookwriter
+Element = mwlib.docbookwriter.Element
+SubElement = mwlib.docbookwriter.SubElement
+setVList=mwlib.docbookwriter.setVList
+class MyDocBookWriter(mwlib.docbookwriter.DocBookWriter):
+ def dbwriteTable(self, t):
+ """
+ rowspan & colspan are supported
+ nested tables not supported in DocBook V4.4
+ """
+ table = Element("informaltable") #border=1
+ tgroup = SubElement(table,"tgroup",cols="1") # FIXME: cols=1 is not always correct
+
+ tbody = SubElement(tgroup,"tbody")
+ setVList(table, t)
+ if t.caption:
+ #c = SubElement(table, "caption")
+ #self.writeText(t.caption, c)
+ pass
+ table.writeto = tbody
+ #docbookwriter.py l 220
+ return table
+
+ def dbwriteCell(self, cell):
+ td = Element("entry")
+ #setVList(td, cell)
+ return td
+
+ def dbwriteRow(self, row):
+ return Element("row")
+
+
+def apply():
+ mwlib.docbookwriter.DocBookWriter = MyDocBookWriter
+