aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v5/xml_tables.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v5/xml_tables.rb')
-rw-r--r--lib/sisu/v5/xml_tables.rb58
1 files changed, 58 insertions, 0 deletions
diff --git a/lib/sisu/v5/xml_tables.rb b/lib/sisu/v5/xml_tables.rb
index 4ae41190..1587afbc 100644
--- a/lib/sisu/v5/xml_tables.rb
+++ b/lib/sisu/v5/xml_tables.rb
@@ -122,6 +122,64 @@ module SiSU_Tables
@parablock
end
end
+ class TableXMLdocbook
+ @@tablehead=0
+ @@tablefoot=[] #watch
+ def initialize(table,id='')
+ @table_obj,@id=table,id
+ @vz=SiSU_Viz::Defaults.new
+ end
+ def spaces
+ Ax[:spaces]
+ end
+ def table
+ table_obj=@table_obj
+ if table_obj.obj !~/^<table\s/m
+ table_obj=table_rows_and_columns_array(table_obj)
+ else p __LINE__; p caller
+ end
+ table_obj
+ end
+ def table_rows_and_columns_array(table_obj) # provides basic (x)html table
+ table_rows,nr=[],0
+ table_obj.obj.split(Mx[:tc_c]).each do |table_row|
+ table_row_with_columns=table_row.split(Mx[:tc_p])
+ trc,nc=[],0
+ table_row_with_columns.each do |c|
+ c=c.gsub(/^(?:~|&nbsp;)$/,''). # tilde / empty cell
+ gsub(/&nbsp;/,' ').
+ gsub(/<:br>/,'<br />')
+ trc <<= if table_obj.head_ and nr==0
+ %{#{spaces*6}<entry>#{c}</entry>\n}
+ else %{#{spaces*6}<entry>#{c}</entry>\n}
+ end
+ nc+=1
+ end
+ trc=(trc.is_a?(Array)) ? trc.flatten.join : trc
+ trc = if table_obj.head_ and nr==0
+ "#{spaces*4}<thead>\n#{spaces*5}<row>\n#{trc}#{spaces*5}</row>\n#{spaces*4}</thead>\n#{spaces*4}<tbody>\n"
+ else
+ "#{spaces*5}<row>\n#{trc}#{spaces*5}</row>\n"
+ end
+ nr+=1
+ table_rows << trc
+ end
+ tbody_close=if table_obj.head_
+ "#{spaces*4}</tbody>"
+ else ''
+ end
+ table_rows=table_rows.flatten.join
+ # include table_id <table id=''>
+ table_obj.obj=%{#{spaces*3}<para #{@id}>
+#{spaces*4}<table>
+#{spaces*4}<tgroup cols="#{table_obj.cols}" align="char">
+#{table_rows}#{tbody_close}
+#{spaces*4}</tgroup>
+#{spaces*4}</table>
+#{spaces*3}</para>}
+ table_obj
+ end
+ end
class TableXMLexp <Table
@@tablehead=0
@@tablefoot=[]