diff options
author | Ralph Amissah <ralph@amissah.com> | 2008-08-23 12:01:59 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2008-08-23 12:01:59 -0400 |
commit | 08c69d074001507d64cd5960c8679ec91a5a8353 (patch) | |
tree | af52d5986b3108abc5edbd943ea287455c89deb3 /lib/sisu/v0/html_format.rb | |
parent | a bit of a cleanup, and change reference to null to ordinary (diff) |
pass Hash to Format classes; some match tuning in dal
Diffstat (limited to 'lib/sisu/v0/html_format.rb')
-rw-r--r-- | lib/sisu/v0/html_format.rb | 242 |
1 files changed, 103 insertions, 139 deletions
diff --git a/lib/sisu/v0/html_format.rb b/lib/sisu/v0/html_format.rb index af36dc30..1d82ddfe 100644 --- a/lib/sisu/v0/html_format.rb +++ b/lib/sisu/v0/html_format.rb @@ -61,10 +61,9 @@ module SiSU_HTML_Format include SiSU_Viz class Paragraph_number - def initialize(md,paranum) - @md=md - @paranum=paranum[/(\d+)/m,1] - @paranum ||='' + def initialize(md,ocn) + @md,@ocn=md,ocn[/(\d+)/m,1] + @ocn ||='' vz=SiSU_Env::Get_init.instance.skin @skin_no_ocn=if defined? vz.ocn_display_off \ and vz.ocn_display_off == true @@ -77,75 +76,31 @@ module SiSU_HTML_Format or @md.mod.inspect =~/--no-ocn/ \ or @skin_no_ocn ocn_class='ocn_off' - @paranum.gsub(/^(\d+|)$/, + @ocn.gsub(/^(\d+|)$/, %{<label class="#{ocn_class}"> </label>}) - elsif @paranum.to_i == 0 - @paranum.gsub(/^(\d+|)$/, - %{<label class="#{ocn_class}"><a name="#@paranum"> </a></label>}) + elsif @ocn.to_i == 0 + @ocn.gsub(/^(\d+|)$/, + %{<label class="#{ocn_class}"><a name="#{@ocn}"> </a></label>}) else ocn_class='ocn' - @paranum.gsub(/^(\d+|)$/, - %{<label class="#{ocn_class}"><a name="#@paranum">\\1</a></label>}) + @ocn.gsub(/^(\d+|)$/, + %{<label class="#{ocn_class}"><a name="#{@ocn}">\\1</a></label>}) end end def name - %{<a name="#@paranum"></a>} + %{<a name="#{@ocn}"></a>} end def id #w3c? "tidy" complains about numbers as identifiers ! annoying - %{id="o#@paranum"} + %{id="o#{@ocn}"} end def goto - %{<a href="##@paranum">} - end - end - class Paragraph_id_ocn #used by table version #work area 2003w48 - attr_accessor :paranum,:font,:p_num - def initialize(md,paranum) - @paranum,@vz,@p_num=paranum,SiSU_Env::Get_init.instance.skin,Paragraph_number.new(md,paranum) #font - #@paranum,@vz,@p_num=paranum,SiSU_Env::Get_init.instance.skin,SiSU_HTML_Format::Paragraph_number.new(md,paranum) #font - end - def txt - %{ <p #{@p_num.id} align="justify">#{@p_num.name} - <font #{@vz.font_size_txt} #{@vz.font_color} #{@vz.font_face}>} - end - def txt_00 - %{ <p #{@p_num.id} align="justify">#{@p_num.name} - <font #{@vz.font_size_txt_00} #{@vz.font_color} #{@vz.font_face}>} - end - def font_citation - %{<font #{@vz.font_size_txt} #{@vz.font_face}>} - end - def endnote - %{ <p #{@p_num.id} align="justify">#{@p_num.name} - <font #{@vz.font_size_endnote} #{@vz.font_color} #{@vz.font_face}>} - end - def table - %{ <p #{@p_num.id} align="left">#{@p_num.name} - <font #{@vz.font_small} #{@vz.font_color} #{@vz.font_face}>} - end - def tiny - %{ <p #{@p_num.id} align="justify">#{@p_num.name} - <font #{@vz.font_tiny} #{@vz.font_color} #{@vz.font_face}>} - end - def small - %{ <p #{@p_num.id} align="justify">#{@p_num.name} - <font #{@vz.font_small} #{@vz.font_color} #{@vz.font_face}>} # keep but not used? - end - def font_tiny - %{<font #{@vz.font_tiny} #{@vz.font_face}>} - end - def font_small - %{<font #{@vz.font_small} #{@vz.font_face}>} - end - def header_ - %{ <p #{@p_num.id} align="center">#{@p_num.name} - <font #@vz.font color="#@color" #{@vz.font_face}>} + %{<a href="##{@ocn}">} end end class Head_information include SiSU_Viz attr_reader :md,:sfx,:pdf,:rdf,:vz - def initialize(md='') + def initialize(md) @md=md @sfx,@pdf=@md.sfx,@md.pdf @rdf=SiSU_XML_tags::RDF.new(md) @@ -1038,27 +993,39 @@ WOK class Format_text_object @vz=SiSU_Env::Get_init.instance.skin @@dp=nil - attr_accessor :md,:one,:two,:three,:parablock,:table,:link,:linkname,:format,:paranum,:p_num,:para_id,:headname,:margin,:paragraph,:table,:banner,:url,:icon,:font,:one_stripped - def initialize(md='',*txt) - @md,@one,@two,@three=md,txt[0],txt[1],txt[2] - rgx=/^#{Mx[:lv_o]}\d:\S*?#{Mx[:lv_c]}/ - @one_stripped=@one.gsub(rgx,'') if @one =~rgx - @dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern - rgx=/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]})[\d*+]+\s+(.+?)#{Mx[:id_o]}#@dp#{Mx[:id_c]}(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})/ #problem introduced - @one_stripped=@one.gsub(rgx,'\1') if @one =~rgx #problem introduced - @format,@parablock=txt[0],txt[1] - @one.gsub!(/#{Mx[:mk_o]}[-~]##{Mx[:mk_c]}/,'') if @one - @parablock.gsub!(/#{Mx[:mk_o]}[-~]##{Mx[:mk_c]}/,'') if @parablock - if txt[2]=~/\d+/ - @paranum=txt[2][/(\d+)/m,1] # unless paranum =~/#/ - @p_num=Paragraph_number.new(@md,@paranum) - @para_id=Paragraph_id_ocn.new(@md,@paranum) #used by table version + attr_accessor :md,:t_o,:txt,:ocn,:format,:table,:link,:linkname,:paranum,:p_num,:headname,:banner,:url + def initialize(md,t_o) + @md,@t_o=md,t_o + if t_o.class == Hash + @txt =t_o[:txt] || nil + @ocn =t_o[:ocn] || nil + @ocn_display =t_o[:ocn_display] || nil + @headname =t_o[:headname] || nil + @trailer =t_o[:trailer] || nil + @endnote_part_a =t_o[:endnote_part_a] || nil + @endnote_part_b =t_o[:endnote_part_b] || nil + @lnk_url =t_o[:lnk_url] || nil + @lnk_txt =t_o[:lnk_txt] || nil + @format =t_o[:format] || nil + @target =t_o[:target] || nil #occasionally passed but not used + else + if @md.cmd =~/M/ + p t_o.class + p caller + end + end + if @txt and not @txt.empty? + @txt.gsub!(/#{Mx[:mk_o]}[-~]##{Mx[:mk_c]}/,'') + end + if @ocn and @ocn=~/\d+/ #WATCH FIX + @p_num=Paragraph_number.new(@md,@ocn) end - @headname='' - if @format=~/^\d:(\S+)/ #need more reliable marker #if @format =~ /#{Rx[:lv]}/ - headname=$1 #format[/\d~(\S+)/m,1] - @headname=if headname =~/^[a-zA-Z]/; %{<a name="#{headname}" id="#{headname}"></a>} #consider: h_#{headname} - else %{<a name="h#{headname}" id="h#{headname}"></a>} + if @format and not @format.empty? + if @format=~/^\d:(\S+)/ #need more reliable marker #if @format =~ /#{Rx[:lv]}/ + headname=$1 #format[/\d~(\S+)/m,1] + @headname=if headname =~/^[a-zA-Z]/; %{<a name="#{headname}" id="#{headname}"></a>} #consider: h_#{headname} + else %{<a name="h#{headname}" id="h#{headname}"></a>} + end end end @vz=SiSU_Env::Get_init.instance.skin @@ -1066,14 +1033,14 @@ WOK def endnote_body %{ <p class="endnote"> - #@one + #{@txt} </p> } end def endnote_body_indent %{ <p class="endnote_indent"> - #@one + #{@txt} </p> } end @@ -1082,7 +1049,7 @@ WOK <div class="substance"> <label class="ocn"> </label> <p class="norm"> - #@one #@two + #{@txt} </p> </div> } @@ -1094,7 +1061,7 @@ WOK <div class="substance"> #{@p_num.ocn_display} #{ul}<#{tag} class="#{attrib}" #{@p_num.id}> - #@parablock + #{@txt} </#{tag}>#{ulc} </div> } @@ -1123,8 +1090,7 @@ WOK <div class="substance"> #{@p_num.ocn_display} <#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name} - #@headname - #@parablock + #{@headname}#{@txt} </#{tag}> </div> } @@ -1154,7 +1120,7 @@ WOK %{ <div class="content"> <#{tag} class="#{attrib}"> - #@one + #{@txt} </#{tag}> </div> } @@ -1176,13 +1142,13 @@ WOK <div class="substance"> <label class="ocn"> </label> <h4 class="banner"> - #@one + #{@txt} </h4> </div> } end - def dl - "<dl><b>#@one</b> #@two</dl>" + def dl #check :trailer + "<dl><b>#{@txt}</b> #{@trailer}</dl>" end def table_css_end #<!TZ!> '</table> @@ -1190,66 +1156,66 @@ WOK </div>' end def gsub_body - case @one + case @txt when /^(?:#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]}\s*)?\((i+|iv|v|vi+|ix|x|xi+)\)/ - @one.gsub!(/^\((i+|iv|v|vi+|ix|x|xi+)\)/,'<b>(\1)</b>') - @one.gsub!(/^(#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]})\s*\((i+|iv|v|vi+|ix|x|xi+)\)/,'\1<b>(\2)</b>') + @txt.gsub!(/^\((i+|iv|v|vi+|ix|x|xi+)\)/,'<b>(\1)</b>') + @txt.gsub!(/^(#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]})\s*\((i+|iv|v|vi+|ix|x|xi+)\)/,'\1<b>(\2)</b>') when /^(?:#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]}\s*)?\(?(\d|[a-z])+\)/ - @one.gsub!(/^\((\d+|[a-z])+\)/,'<b>(\1)</b>') - @one.gsub!(/^(#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]})\s*\((\d+|[a-z])+\)/,'\1<b>(\2)</b>') + @txt.gsub!(/^\((\d+|[a-z])+\)/,'<b>(\1)</b>') + @txt.gsub!(/^(#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]})\s*\((\d+|[a-z])+\)/,'\1<b>(\2)</b>') when /^\s*\d{1,3}\.\s/ - @one.gsub!(/^\s*(\d+\.)/,'<b>\1</b>') + @txt.gsub!(/^\s*(\d+\.)/,'<b>\1</b>') when /^\s*[A-Z]\.\s/ - @one.gsub!(/^\s*([A-Z]\.)/,'<b>\1</b>') + @txt.gsub!(/^\s*([A-Z]\.)/,'<b>\1</b>') end end def bold_para %{#{@vz.margin_txt_0} <p class="bold"> - #@one + #{@txt} </p> #{@vz.margin_num_css} #{@vz.table_close}} end def bold_header - @one.gsub!(/[1-9]~(\S+)/,'<a name="\1"></a>') - @one.gsub!(/[1-9]~/,'') - @one.gsub!(/#{Mx[:id_o]}~0;[um]\d+;[um]\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}\s*$/i,'') #watch & do differently + @txt.gsub!(/[1-9]~(\S+)/,'<a name="\1"></a>') + @txt.gsub!(/[1-9]~/,'') + @txt.gsub!(/#{Mx[:id_o]}~0;[um]\d+;[um]\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}\s*$/i,'') #watch & do differently %{<p class="bold"> - #@one + #{@txt} </p> #{@vz.margin_num_css} #{@vz.table_close}} end def toc_head_copy_at - %{<p class="center">#@one</p>\n} + %{<p class="center">#{@txt}</p>\n} end def center - %{<p class="center">#@one</p>\n} + %{<p class="center">#{@txt}</p>\n} end def bold - %{<p class="bold">#@one</p>\n} + %{<p class="bold">#{@txt}</p>\n} end def center_bold - %{<p class="centerbold">#@one</p>\n} + %{<p class="centerbold">#{@txt}</p>\n} end end class Format_scroll < Format_text_object - def initialize(md='',*txt) - super(md,*txt) + def initialize(md,txt) + super(md,txt) @vz=SiSU_Env::Get_init.instance.skin end end class Format_seg < Format_text_object - def initialize(md='',*txt) - super(md,*txt) + def initialize(md,txt) + super(md,txt) end def navigation_toc_lev1_advert %{#{@banner.home_button}\n <center> -#@one +#{@txt} #@two </a></center><p />} end @@ -1263,7 +1229,7 @@ WOK </td> <td> <font size="3" #{@vz.font_face}> - <b>#@one</b> + <b>#{@txt}</b> </font> </p> #{@vz.table_close}} @@ -1275,7 +1241,7 @@ WOK </td> <td> <font size="3" #{@vz.font_face}> - <b>#@one</b> + <b>#{@txt}</b> </font> </p> #{@vz.table_close}} @@ -1286,7 +1252,7 @@ WOK </td> <td> <p> - #@one + #{@txt} </p> #{@vz.table_close}} end @@ -1298,41 +1264,41 @@ WOK fn='doc' if fn.empty? #you may wish to reconsider, sends to 'doc' where no segment info %{ <p class="endnote"> - #@one#{@md.fnl[:pre]}#{fn}#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}#@two#@three + #{@endnote_part_a}#{@md.fnl[:pre]}#{fn}#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}#{@endnote_part_b} </p> } end def subtoc_lev(tag,attrib) - one=if @one \ - and @one =~/<\/?i>|<a\s+name="\S+?">/mi - @one.gsub(/<\/?i>|<a\s+name="\S+?">/mi,'') #removes name markers from subtoc, go directly to substantive text - else @one + txt=if @txt \ + and @txt =~/<\/?i>|<a\s+name="\S+?">/mi + @txt.gsub(/<\/?i>|<a\s+name="\S+?">/mi,'') #removes name markers from subtoc, go directly to substantive text + else @txt end note='' - if one =~/((?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]}).+?(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})\s*)/m #this is a clumsy fix, revisit and address upstream + if txt =~/((?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]}).+?(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})\s*)/m #this is a clumsy fix, revisit and address upstream note=$1 note.gsub!(/[\n\s]+/m,' ') - one.gsub!(/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]}).+?(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})\s*/m,' ') - one.gsub!(/<a[\n\s]+name="-\d+"[\n\s]+href="#_\d+"> <sup>\d+<\/sup> /m,'') + txt.gsub!(/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]}).+?(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})\s*/m,' ') + txt.gsub!(/<a[\n\s]+name="-\d+"[\n\s]+href="#_\d+"> <sup>\d+<\/sup> /m,'') end %{<#{tag} class="#{attrib}"> - <a href="##@two"><i>#{one}</i></a> #{note} + <a href="##{@ocn}"><i>#{txt}</i></a> #{note} </#{tag}>} end def subtoc_lev5 - subtoc_lev('h5','subtoc') if @one + subtoc_lev('h5','subtoc') if @txt end def subtoc_lev6 - subtoc_lev('h6','subtoc') if @one + subtoc_lev('h6','subtoc') if @txt end #% para sisu def header_sub(tag,attrib) - @parablock.gsub!(/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]}).+?(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})\s*/m,' ') + @txt.gsub!(/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]}).+?(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})\s*/m,' ') %{ <div class="substance"> #{@p_num.ocn_display} <#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name} #{@headname} - #{@parablock} + #{@txt} </#{tag}> </div> } @@ -1348,8 +1314,8 @@ WOK <div class="substance"> #{@p_num.ocn_display} <h1 class="norm" #{@p_num.id}>#{@p_num.name} - #@format - #@parablock + #{@t_o[:format]} + #{@txt} </h1> </div> } @@ -1358,42 +1324,40 @@ WOK %{<table summary="navigation segment header 4" width=100% bgcolor="#08163f" border="0"> <tr><td align="center"> <p class="bold"> - #@parablock + #{@txt} </p> #{@vz.table_close}} end def navigation_header5 %{<p class="bold"> - #@parablock + #{@txt} </p>} end def navigation_header6 %{<p class="bold"> - #@parablock + #{@txt} </p>} end def navigation_center - "<center>#@parablock</center>" + "<center>#{@txt}</center>" end end class Format_toc < Format_text_object - def initialize(md='',*txt) - super(md,*txt) - @link,@linkname=@one,@two + def initialize(md,txt) + super(md,txt) end def links_guide - #@three distinguishes between _top and external, can be used e.g. for different colour scheme %{ <li class="doc"> - <a href="#@link" target="_top"> - #@linkname + <a href="#{@lnk_url}" target="_top"> + #{@lnk_txt} </a> </li> } end def lev(tag,attrib) - if @one + if @txt %{<#{tag} class="#{attrib}"> - #@one + #{@txt} </#{tag}> } else '' |