diff options
Diffstat (limited to 'lib/sisu/current/xml_tables.rb')
-rw-r--r-- | lib/sisu/current/xml_tables.rb | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/lib/sisu/current/xml_tables.rb b/lib/sisu/current/xml_tables.rb deleted file mode 100644 index 55b0be41..00000000 --- a/lib/sisu/current/xml_tables.rb +++ /dev/null @@ -1,261 +0,0 @@ -# encoding: utf-8 -=begin - -* Name: SiSU - -** Description: documents, structuring, processing, publishing, search -*** common file for xml table generation - -** Author: Ralph Amissah - <ralph@amissah.com> - <ralph.amissah@gmail.com> - -** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah, - All Rights Reserved. - -** License: GPL 3 or later: - - SiSU, a framework for document structuring, publishing and search - - Copyright (C) Ralph Amissah - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program. If not, see <http://www.gnu.org/licenses/>. - - If you have Internet connection, the latest version of the GPL should be - available at these locations: - <http://www.fsf.org/licensing/licenses/gpl.html> - <http://www.gnu.org/licenses/gpl.html> - - <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html> - -** SiSU uses: - * Standard SiSU markup syntax, - * Standard SiSU meta-markup syntax, and the - * Standard SiSU object citation numbering and system - -** Hompages: - <http://www.jus.uio.no/sisu> - <http://www.sisudoc.org> - -** Git - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/current/xml_tables.rb;hb=HEAD> - -=end -module SiSU_Tables - class Table #_xml - @@tablehead=0 - @@tablefoot=[] #watch #bug??? #check was @@tablefoot - def initialize(one,ocn='') - @one,@parablock,@ocn=one,one,ocn - end - def table_split #% used but, no longer operational, revisit - @new_content=[] - @one.split(/\n/).each do |parablock| - table=TableXML.new("#{parablock}\n") - @new_content << table.table - end - @new_content.join - end - end - class TableXML <Table - @@tablehead=0 - @@tablefoot=[] - def initialize(one,ocn='') - @one,@parablock,@ocn=one,one,ocn - end - def table - m=@parablock[/<!f(.+?)!>/,1] - @@tablefoot << m if m - @parablock=@parablock.gsub(/<!f.+?!>/,'') - @@tablehead=1 if @parablock =~/#{Mx[:gr_o]}Th#{Mx[:tc_p]}/u - if @parablock =~/#{Mx[:gr_o]}Th?#{Mx[:tc_p]}/u - @parablock=@parablock.gsub(/#{Mx[:gr_o]}Th?#{Mx[:tc_p]}.+?#{Mx[:tc_p]}~(\d+);\w\d+;\w\d+#{Mx[:gr_c]}/u, - %{\n<ocn>#{@ocn}</ocn><table summary="normal text css" width="100%" border="0" bgcolor="white" cellpadding="2" align="center">}) - end - if @parablock =~/#{Mx[:gr_o]}TZ#{Mx[:gr_c]}/ - tablefoot=[] - @@tablefoot.each {|x| tablefoot << ''} - @@tablefoot=[] - end - if @@tablehead==1 - if @parablock =~/#{Mx[:tc_p]}#{Mx[:tc_p]}/u - @parablock=@parablock.gsub(/#{Mx[:tc_o]}#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u, - %{<tr> - <td width="\\1%" valign="top"><b>}). - gsub(/#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u, - %{</b></td><td width="\\1%" valign="top"><b>}). - gsub(/#{Mx[:tc_c]}/,"</b>\n</td>\n</tr>") - @@tablehead=0 - end - @parablock - else - @parablock=@parablock.gsub(/#{Mx[:tc_o]}#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u, - %{<tr> - <td width="\\1%" valign="top">}). - gsub(/#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u, - %{ - </td> - <td width="\\1%" valign="top">}). - gsub(/#{Mx[:tc_c]}/,"\n</td>\n</tr>\n") - end - @parablock - end - end - class TableXMLdocbook - @@tablehead=0 - @@tablefoot=[] #watch - def initialize(table,id='') - @table_obj,@id=table,id - 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(/^(?:~| )$/,''). # tilde / empty cell - gsub(/ /,' '). - 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=[] - def initialize(one) - @one,@parablock=one,one - end - def table_close - '</td></tr> -</table>' - end - def margin_numless - '</td><td width="4%" align="right" valign="top">' - end - def table_head(inf) - %{<table summary="normal text css" width="100%" border="0" bgcolor="white" cellpadding="2" align="center"> - <tr> - <td valign="top" align="justify"> - <a name="#{inf}"></a> - </td> - <td> -<table summary="normal text css" width="100%" border="0" bgcolor="white" cellpadding="2" align="center">} - end - def table_end(tablefoot='') - %{</table>#{the_margin_numless}#{the_margin_numless} #{the_table_close} -#{tablefoot}} - end - def table_row(inf,h=false) - bold=h ? '<b>' : '' - %{ -<tr> - <td width="#{inf}%" valign="top">#{bold}} - end - def table_cell(inf,h=false) - if h; %{</b></td><td width="#{inf}%" valign="top"><b>} - else %{</td><td width="#{inf}%" valign="top">} - end - end - def table_row_close(h=false) - bold_close=h ? '<b>' : '' - "#{bold_close}</td></tr>" - end - def table - m=@parablock[/<!f(.+?)!>/,1] - @@tablefoot << m if m - @parablock=@parablock.gsub(/<!f.+?!>/,'') - @@tablehead=1 if @parablock =~/#{Mx[:gr_o]}Th#{Mx[:tc_p]}/u - if @parablock =~/#{Mx[:gr_o]}Th?#{Mx[:tc_p]}.+?#{Mx[:tc_p]}~(\d+);\w\d+;\w\d+#{Mx[:gr_c]}/u - @parablock=table_head($1) - end - if @parablock =~/#{Mx[:gr_o]}TZ#{Mx[:gr_c]}/ - tablefoot=[] - @@tablefoot.each {|x| tablefoot << ''} - @@tablefoot=[] - if @parablock =~/#{Mx[:gr_o]}TZ#{Mx[:gr_c]}/ - @parablock=table_end - end - end - if @@tablehead==1 - if @parablock =~/#{Mx[:tc_p]}#{Mx[:tc_p]}/u - if @parablock =~/#{Mx[:tc_o]}#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u - @parablock=@parablock.gsub(/#{Mx[:tc_o]}#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u,table_row($1,true)) - end - if @parablock =~/#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u - @parablock=@parablock.gsub(/#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u,table_cell($1,true)) - end - if @parablock =~/#{Mx[:tc_c]}/ - @parablock=@parablock.gsub(/#{Mx[:tc_c]}/,table_row_close(true)) - end - @@tablehead=0 - end - @parablock - else - if @parablock =~/^#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u - @parablock=@parablock.gsub(/^#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u,table_row($1)) - end - if @parablock =~/#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u - @parablock=@parablock.gsub(/#{Mx[:tc_p]}#{Mx[:tc_p]}(\d+?)#{Mx[:tc_p]}/u,table_cell($1)) - end - if @parablock =~/#{Mx[:tc_c]}/ - @parablock=@parablock.gsub(/#{Mx[:tc_c]}/,table_row_close) - end - @parablock - end - @parablock - end - end -end -__END__ |