diff options
Diffstat (limited to 'lib/sisu/v0/html_format.rb')
-rw-r--r-- | lib/sisu/v0/html_format.rb | 957 |
1 files changed, 644 insertions, 313 deletions
diff --git a/lib/sisu/v0/html_format.rb b/lib/sisu/v0/html_format.rb index 03d97a8d..a73f3533 100644 --- a/lib/sisu/v0/html_format.rb +++ b/lib/sisu/v0/html_format.rb @@ -55,16 +55,15 @@ <ralph@amissah.com> <ralph.amissah@gmail.com> - ** Description: base formatting template for html generation + ** Description: html formating, css template =end 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,76 +76,31 @@ module SiSU_HTML_Format or @md.mod.inspect =~/--no-ocn/ \ or @skin_no_ocn ocn_class='ocn_off' - @paranum.gsub(/^(\d+|)$/, - %{ <p class="#{ocn_class}"> - - </p>}) + @ocn.gsub(/^(\d+|)$/, + %{<label class="#{ocn_class}"> </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+|)$/, - %{ <p class="#{ocn_class}"> - \\1 - </p>}) + @ocn.gsub(/^(\d+|)$/, + %{<label class="#{ocn_class}"><a name="#{@ocn}">\\1</a></label>}) end end def name - %{<a name="#@paranum" />} + %{<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,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 - include SiSU_HTML_Format 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) @@ -188,6 +142,10 @@ module SiSU_HTML_Format #{@vz.txt_home} </a></h1>} end + def html_close #moved + %{</body> +</html>} + end end class Widget < Head_information def initialize(md) @@ -272,6 +230,8 @@ module SiSU_HTML_Format end end end + class XML + end class Head_toc < Head_information def initialize(md) super(md) @@ -333,6 +293,25 @@ WOK #{@vz.table_close} <p />} end + def seg_head_navigation_band_bottom(type='') + if type=~/pdf/ + @tocband_segtoc=make_scroll_seg_pdf + end + firstseg=%{<a href="#{@md.fnl[:pre]}#{@md.firstseg}#{@md.fnl[:mid]}#@sfx#{@md.fnl[:post]}" target="_top" alt="->"> + #{@vz.png_nav_nxt} + </a>} if @md.firstseg =~/\S+/ + %{<table summary="table of contents segment navigation band" id="toc" width="100%" bgcolor=#{@vz.color_band1}> +<tr><td width="20%"> + +</td> +<td width="60%" align="center"> + #@tocband_segtoc +</td> +<td width="20%" align="right"> + #{firstseg} +#{@vz.table_close} +<p />} + end def manifest_link(text) %{<font size=2> <a href="#{@md.fn[:manifest]}" target="_top" #{@vz.js_manifest}>#{text}</a> @@ -401,20 +380,35 @@ WOK <title> #{@md.html_title} </title> - <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> - #{@rdf.rdftoc} - #{@rdf.metatag_html} - #{@vz.font_css_table_file} +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +#{@rdf.rdftoc} +#{@rdf.metatag_html} +#{@css.html} </head> #{@vz.color_body} - <a name="top" id="top"></a> - <a name="up" id="up"></a> - <a name="start" id="start"></a> - #{@vz.js_top}} +<a name="top" id="top"></a> +<a name="up" id="up"></a> +<a name="start" id="start"></a> +#{@vz.js_top}} + end + def concordance + if @md.concord_make + %{#{@vz.margin_css} + <h4 class="toc"> + <a href="./#{@md.fn[:concordance]}" #{@vz.js_concordance}> + <i>Concordance</i> + </a> + </h4> +#{@vz.table_close}} + else + %{#{@vz.margin_css} +#{@vz.table_close}} + end end def links_guide_vertical_open #??? url=(defined? @vz.url_hp) && @vz.url_hp =~/^http:\/\/\S+$/ ? @vz.url_hp : @vz.url_home - %{<div id="vertical_links"> + %{ +<div id="vertical_links"> <ul id="vertical"> <li class="refbold"> <a href="#{url}" #{@vz.js_home}> @@ -433,7 +427,8 @@ WOK end def links_guide_horizontal_open #??? url=(defined? @vz.url_hp) && @vz.url_hp =~/^http:\/\/\S+$/ ? @vz.url_hp : @vz.url_home - %{<div id="horizontal_links"> + %{ +<div id="horizontal_links"> <ul id="horizontal"> <li class="refbold"> <a href="#{url}" #{@vz.js_home}> @@ -475,7 +470,8 @@ WOK </a> </li> </ul> -</div>} +</div> +} end %{ #{insert} <!- quick ref -!>} @@ -540,15 +536,12 @@ WOK #{@vz.table_close}} end def metadata - %{#{@vz.margin_txt_3} -#{@vz.paragraph_font_small} - <a href="#@metalink" #{@vz.js_metalink}> - <i>MetaData</i> - <font size="1" color="#777777"> - - </font> - </a> - </font> + %{#{@vz.margin_css} + <h4 class="toc"> + <a href="#@metalink" #{@vz.js_metalink}> + <i>MetaData</i> + </a> + </h4> #{@vz.table_close}} end def seg_metadata @@ -556,7 +549,9 @@ WOK metadata end def seg_tail - %{<p> <p> + %{ +<div class="main_column"> +<p> <p> <table summary="toc segment tail" bgcolor=#{@vz.color_band1}> <tr><td width="20%"> #{@vz.banner_band} @@ -575,11 +570,17 @@ WOK <a name="end" id="end"></a> <a name="finish" id="finish"></a> <a name="stop" id="stop"></a> -<a name="credits"></a>} +<a name="credits"></a> +</div> +</div> +</div> +} end - def scroll_tail + def scroll_tail #debug nav=scroll_head_navigation_band - %{#{nav} + %{ +<div class="main_column"> +#{nav} #{@vz.credits_splash} #{@vz.credits_sisu} <a name="bottom" id="bottom"></a> @@ -587,11 +588,17 @@ WOK <a name="end" id="end"></a> <a name="finish" id="finish"></a> <a name="stop" id="stop"></a> -<a name="credits"></a>} +<a name="credits"></a> +</div> +</div> +</div> +} end def seg_navigation_tail #this is a bug area, look up and "tidy" #nav=scroll_head_navigation_band - %{<p> </p> + %{ +<div class="main_column"> +<p> </p> #{@vz.credits_splash} #{@vz.credits_sisu} <a name="bottom" id="bottom"></a> @@ -599,96 +606,15 @@ WOK <a name="end" id="end"></a> <a name="finish" id="finish"></a> <a name="stop" id="stop"></a> -<a name="credits"></a>} - end - end - def html_close - %{</body> -</html>} - end - class Head_scroll < Head_toc - def initialize(md) - super(md) - end - def toc_owner_details - %{#{@vz.margin_txt_3} -#{@vz.paragraph_font_small} - <a href="#owner.details"> - Owner Details - <font size="1" color="#777777"> - - </font> - </a> - </font> -#{@vz.table_close}} - end - def table - %{<table summary="scroll table" width=#{@vz.table_width_1} border="0" bgcolor="white" cellpadding="0"> -<tr><th width=#{@@indent['level_1']} align="right"> -</th> -<td valign="top"> -#{@vz.paragraph_txt}} - end - def table1 - %{<table summary="scroll table1" width=#{@vz.table_width_1} border="0" cellpadding=#{@vz.table_cellpad_box} #{@vz.color_color_table1} align="justify"> -<tr><td valign="top"> -#{@vz.paragraph_txt}} - end - def table2 - %{<table summary="scroll table2" width=#{@vz.table_width_1} border="0" cellpadding=#{@vz.table_cellpad_box} #{@vz.color_color_table2} align="justify"> -<tr><td valign="top"> -#{@vz.paragraph_txt}} - end - def toc_endnote - %{#{@vz.margin_txt_3} -#{@vz.paragraph_font_small} - <a href="#endnotes"> - Endnotes - </a> -#{@vz.table_close}} - end - def title_endnote - %{#{@vz.margin_txt_0} - #{@vz.paragraph_txt} - <a name="endnotes" id="endnotes"></a> -#{@vz.margin_num} - -#{@vz.table_close}} - end - def tail - %{<br /> -#{@vz.margin_txt_0} -<table summary="scroll tail" bgcolor="#777777"> -<tr><td width="20%"> -#{@vz.banner_band} -</td> -<td width="60%"> -<center>#@tocband_scroll</center> -</td></tr> -</table> -<br /> -#{@vz.paragraph_txt} - <center> - #{@vz.credits_splash} - #{@vz.credits_sisu} - </center> -#{@vz.margin_num} -#{@vz.table_close} -<a name="bottom id="finish"></a> -<a name="down" id="down"></a> -<a name="end" id="end"></a> -<a name="finish" id="finish"></a> -<a name="stop" id="stop"></a> -<a name="credits" id="credits"></a> -<font color="white" size="0"> - #{@md.title*10} -</font> -</body> -</html>} +<a name="credits"></a> +</div> +</div> +</div> +} end end class Head_seg < Head_information - def initialize(md) + def initialize(md) #(md='') super(md) end def head @@ -803,7 +729,8 @@ WOK scroll=seg='' wgt=Widget.new(@md) #dir=SiSU_Env::Info_env.new(@md.fns) - %{ + x=if @md.concord_make + %{ <table summary="segment navigation available documents types: toc,doc,pdf,concordance" border="0" cellpadding="3" cellspacing="0"> <tr> #{wgt.seg(@vz.nav_txt_toc_link)} @@ -815,70 +742,36 @@ WOK #{wgt.search} #{wgt.home} </tr></table>} - end - def toc_pre_next3 #used with seg_doc_types in seg_nav_band #with pdf & other doc types #knxjs - %{<table summary="segment navigation pre/next" border="0" cellpadding="3" cellspacing="0"> -<tr><td align="center" bgcolor=#{@vz.color_band1}> - <a href="#{@md.fnl[:pre]}#{@seg_name_html[@seg_name_html_tracker-1]}#{@md.fnl[:mid]}#@sfx#{@md.fnl[:post]}" target="_top" #{@vz.js_prev}> - #{@vz.png_nav_previous} - </a> -</td> -<td align="center" bgcolor=#{@vz.color_band1}> - <a href="#{@md.fnl[:pre]}#@index#{@md.fnl[:mid]}#@sfx#{@md.fnl[:post]}" target="_top" #{@vz.js_toc}> - #{@vz.png_nav_toc} - </a> -</td> -<td align="center" bgcolor=#{@vz.color_band1}> - <a href="#{@md.fnl[:pre]}#{@seg_name_html[@seg_name_html_tracker+1]}#{@md.fnl[:mid]}#@sfx#{@md.fnl[:post]}" target="_top" #{@vz.js_next}> - #{@vz.png_nav_next} - </a> -#{@vz.table_close}} - end - def toc_next3 #used with seg_doc_types in seg_nav_band #with pdf & other doc types #knxjs - %{<table summary="segment navigation next" border="0" cellpadding="3" cellspacing="0"> + else + %{ +<table summary="segment navigation available documents types: toc,doc,pdf,concordance" border="0" cellpadding="3" cellspacing="0"> <tr> -<td align="center" bgcolor=#{@vz.color_band1}> - <a href="#{@md.fnl[:pre]}#@index#{@md.fnl[:mid]}#@sfx#{@md.fnl[:post]}" target="_top" #{@vz.js_toc}> - #{@vz.png_nav_toc} - </a> -</td> -<td align="center" bgcolor=#{@vz.color_band1}> - <a href="#{@md.fnl[:pre]}#{@seg_name_html[@seg_name_html_tracker+1]}#{@md.fnl[:mid]}#@sfx#{@md.fnl[:post]}" target="_top" #{@vz.js_next}> - #{@vz.png_nav_next} - </a> -#{@vz.table_close}} - end - def toc_pre3 #used with seg_doc_types in seg_nav_band #with pdf and other doc types #knxjs - # note endnotes is now two back, with insertion between end of text and metadata, but what happens where no endnote? - %{<table summary="segment navigation pre" border="0" cellpadding="3" cellspacing="0"> -<tr><td align="center" bgcolor=#{@vz.color_band1}> - <a href="#{@md.fnl[:pre]}#{@seg_name_html[@seg_name_html_tracker-2]}#{@md.fnl[:mid]}#@sfx#{@md.fnl[:post]}" target="_top" #{@vz.js_prev}> - #{@vz.png_nav_previous} - </a></td> -<td align="center" bgcolor=#{@vz.color_band1}> - <a href="#{@md.fnl[:pre]}#@index#{@md.fnl[:mid]}#@sfx#{@md.fnl[:post]}" target="_top" #{@vz.js_toc}> - #{@vz.png_nav_toc} - </a> -#{@vz.table_close}} - end - def toc_endnote + #{wgt.seg(@vz.nav_txt_toc_link)} + #{wgt.scroll(@vz.nav_txt_doc_link)} + #{wgt.pdf}#{wgt.odf} +<td align="center" bgcolor=#{@vz.color_band2}> + #{wgt.manifest} + #{wgt.search} + #{wgt.home} +</tr></table>} + end end def title_endnote(title,subtitle,creator,table_top_control) - %{#{@vz.banner_instrument_cover_band_seg} - <h1 class="banner"> - #{title} - </h1> - <h1 class="subbanner"> - #{subtitle} - </h1> - <h1 class="subbanner"> - #{creator} - </h1> - <h4 class="banner"> - Endnotes - </h4> -#{@vz.table_close} -<h1>Endnotes</h1>} +# %{#{@vz.banner_instrument_cover_band_seg} +# <h1 class="banner"> +# #{title} +# </h1> +# <h1 class="subbanner"> +# #{subtitle} +# </h1> +# <h1 class="subbanner"> +# #{creator} +# </h1> +# <h4 class="banner"> +# Endnotes +# </h4> +##{@vz.table_close} +#<h1>Endnotes</h1>} end def navigation_table %{<table summary="navigation segment table" width=#{@vz.table_width_1} border="0" bgcolor="white" cellpadding="0"> @@ -934,7 +827,8 @@ WOK </center>} end def credit - %{<br/> + %{ +<div class="main_column"> #{@vz.credits_splash} #{@vz.credits_sisu} <a name="bottom" id="bottom"></a> @@ -942,10 +836,12 @@ WOK <a name="end" id="end"></a> <a name="finish" id="finish"></a> <a name="stop" id="stop"></a> -<a name="credits" id="credits"></a>} +<a name="credits" id="credits"></a> +</div></div> +} end - def navigation_band(segtocband,seg_table_top_control) - %{<table summary="segment navigation band" bgcolor=#{@vz.color_band1} width="100%"><tr> + def navigation_band(segtocband,seg_table_top_control) #change name to navigaion_band_banner + %{<table summary="segment navigation band with banner" bgcolor=#{@vz.color_band1} width="100%"><tr> <td width="20%" align="left"> #{@vz.banner_band} </td> @@ -958,140 +854,575 @@ WOK </table> #{seg_table_top_control}} end + def navigation_band_bottom(segtocband,seg_table_top_control) #change name to navigaion_band_bannerless + %{ +<div class="main_column"> + <table summary="segment navigation band" bgcolor=#{@vz.color_band1} width="100%"><tr> + <td width="70%" align="center"> + #{doc_types} + </td> + <td width="30%" align="right"> + #{segtocband} + </td></tr> + </table> + #{seg_table_top_control} +</div> +} + end def endnote_mark -%{<p class="center" id="endnotes"> -<a href="#top"><hr width=90% /></a> -</p>} #revisit +%{ +<p class="center" id="endnotes"> + <hr class="endnote" /> +</p>} + end + def endnote_section_open +%{ +<div class="endnote"> +} + end + def endnote_section_close +%{ +</div> +} #revisit + end + def head + %{#{doc_type} +<head> + <title> + #{@seg_name_html[@seg_name_html_tracker]} - + #{@md.html_title} + </title> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +#{@rdf.rdfseg} +#{@rdf.metatag_html} +#{@css.html} +</head> +#{@vz.color_body} +<a name="top" id="top"></a> +<a name="up" id="up"></a> +<a name="start" id="start"></a> +#{@vz.js_top}} + end + def toc_metadata + @metalink=%{./#{@md.fn[:meatadata]}} + toc_metadata + end + def title_banner(title,subtitle,creator) + %{ +<div class="summary"> + <p class="tiny"> + #{title} + </p> + <p class="tiny"> + #{subtitle} + </p> + <p class="tiny"> + #{creator} + </p> + <p class="tiny"> + copy @ + <a href="#{@vz.url_home}"> + #{@vz.txt_home} + </a> + </p> +</div> +} + end + end + class Head_scroll < Head_toc + def initialize(md) #(md='') + super(md) + end + def toc_owner_details + %{#{@vz.margin_txt_3} +#{@vz.paragraph_font_small} + <a href="#owner.details"> + Owner Details + <font size="1" color="#777777"> + + </font> + </a> + </font> +#{@vz.table_close}} + end + def table + %{<table summary="scroll table" width=#{@vz.table_width_1} border="0" bgcolor="white" cellpadding="0"> +<tr><th width=#{@@indent['level_1']} align="right"> +</th> +<td valign="top"> +#{@vz.paragraph_txt}} + end + def table1 + %{<table summary="scroll table1" width=#{@vz.table_width_1} border="0" cellpadding=#{@vz.table_cellpad_box} #{@vz.color_color_table1} align="justify"> +<tr><td valign="top"> +#{@vz.paragraph_txt}} + end + def table2 + %{<table summary="scroll table2" width=#{@vz.table_width_1} border="0" cellpadding=#{@vz.table_cellpad_box} #{@vz.color_color_table2} align="justify"> +<tr><td valign="top"> +#{@vz.paragraph_txt}} + end +## def toc_endnote +## %{#{@vz.margin_txt_3} +## #{@vz.paragraph_font_small} +## <a href="#endnotes"> +## Endnotes +## </a> +## #{@vz.table_close}} +## end +# def toc_endnote +# %{#{@vz.margin_css} +# <h4 class="toc"> +# <a href="#endnotes"> +# Endnotes +# </a> +# </h4> +##{@vz.table_close}} +# end + def title_endnote #revisit +# %{#{@vz.margin_txt_0} +# #{@vz.paragraph_txt} +# <a name="endnotes" id="endnotes"></a> +##{@vz.margin_num} +# +##{@vz.table_close}} end end 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 - @link,@linkname=txt[0],txt[1] - @format,parablock=txt[0],txt[1] - @parablock=parablock - ##performance hit does not justify action: - #@parablock=if parablock=~/\S+/ and parablock !~/<!Th?ยก /um - # wrap=SiSU_text_utils::Wrap.new(parablock,70,4) - # wrap.line_wrap - #else parablock - #end - if txt[2]=~/\d+/ - @paranum=txt[2][/(\d+)/m,1] # unless paranum =~/#/ - @p_num=SiSU_HTML_Format::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 - @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 @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 + 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 end - def para_form(tag,attrib) # regular paragraphs shaped here + def endnote_body + %{ +<p class="endnote"> + #{@txt} +</p> +} + end + def endnote_body_indent + %{ + <p class="endnote_indent"> + #{@txt} + </p> +} + end + def no_paranum + %{ +<div class="substance"> + <label class="ocn"> </label> + <p class="norm"> + #{@txt} + </p> +</div> +} + end + def para_form_css(tag,attrib) # regular paragraphs shaped here ul=ulc='' ul,ulc="<ul>\n ","\n </ul>" if @tag =~/li/ - %{#{@vz.margin_css} - #{ul}<#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name} - #@parablock - </#{tag}>#{ulc} -#{@vz.margin_num_css} + %{ +<div class="substance"> #{@p_num.ocn_display} -#{@vz.table_close} + #{ul}<#{tag} class="#{attrib}" #{@p_num.id}> + #{@txt} + </#{tag}>#{ulc} +</div> } end def para - para_form('p','norm') + para_form_css('p','norm') end def code - para_form('p','code') + para_form_css('p','code') end def center - para_form('p','center') + para_form_css('p','center') end def bold - para_form('p','bold') + para_form_css('p','bold') end def bullet - para_form('li','bullet') + para_form_css('li','bullet') + end + def format(tag,attrib) + para_form_css(tag,attrib) + end + + def header_normal(tag,attrib) + %{ +<div class="substance"> + #{@p_num.ocn_display} + <#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name} + #{@headname}#{@txt} + </#{tag}> +</div> +} end - def format(tag,atrib) - para_form(tag,atrib) + def heading_body + header_normal('p','norm') end - def dl - "<dl><b>#@one</b> #@two</dl>" + def heading_body1 + header_normal('h1','norm') end - def table_end #<!TZ!> - %{</table> - #{@vz.margin_num_css.strip} - #{@p_num.ocn_display} - #{@vz.table_close}} + def heading_body2 + header_normal('h2','norm') end - def no_paranum - %{#{@vz.margin_css} -#{@vz.paragraph_txt} - #@one #@two -#{@vz.margin_num} -#{@vz.table_close}} + def heading_body3 + header_normal('h3','norm') + end + def heading_body4 + header_normal('h4','norm') + end + def heading_body5 + header_normal('h5','norm') + end + def heading_body6 + header_normal('h6','norm') + end + def title_header(tag,attrib) + %{ +<div class="content"> +<#{tag} class="#{attrib}"> + #{@txt} + </#{tag}> +</div> +} + end + def title_header1 + title_header('h1','tiny') + end + def title_header2 + title_header('h2','tiny') + end + def title_header3 + title_header('h3','tiny') + end + def title_header4 + '' + end + def title_header4_old + %{ +<div class="substance"> + <label class="ocn"> </label> + <h4 class="banner"> + #{@txt} + </h4> +</div> +} + end + def dl #check :trailer + "<dl><b>#{@txt}</b> #{@trailer}</dl>" + end + def table_css_end #<!TZ!> + '</table> + </p> + </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 XML + class Format_scroll < Format_text_object + 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) + end + def navigation_toc_lev1_advert + %{#{@banner.home_button}\n +<center> +#{@txt} +#@two +</a></center><p />} + end + def navigation_toc_lev1 + %{#{@banner.nav_toc}} + end + def navigation_toc_lev2 #change bold use css + %{<p /> +<table summary="navigation segment level 2"> +<tr><td width ="20"> +</td> +<td> + <font size="3" #{@vz.font_face}> + <b>#{@txt}</b> + </font> + </p> +#{@vz.table_close}} + end + def navigation_toc_lev3 #change bold use css + %{<p /> +<table summary="navigation segment level 3"> +<tr><td width ="20"> +</td> +<td> + <font size="3" #{@vz.font_face}> + <b>#{@txt}</b> + </font> + </p> +#{@vz.table_close}} + end + def navigation_toc_lev4 + %{<table summary="navigation segment level 4"> +<tr><td width ="80"> +</td> +<td> +<p> + #{@txt} +</p> +#{@vz.table_close}} + end + def navigation_toc_lev5 + end + def navigation_toc_lev6 + end + def endnote_seg_body(fn='') #FIX #url construction keep within single line... BUG WATCH 200408 + fn='doc' if fn.empty? #you may wish to reconsider, sends to 'doc' where no segment info + %{ + <p class="endnote"> + #{@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) + 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 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,' ') + 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="##{@ocn}"><i>#{txt}</i></a> #{note} + </#{tag}>} + end + def subtoc_lev5 + subtoc_lev('h5','subtoc') if @txt + end + def subtoc_lev6 + subtoc_lev('h6','subtoc') if @txt + end + #% para sisu + def header_sub(tag,attrib) + @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} + #{@txt} + </#{tag}> +</div> +} + end + def header5 + header_sub('p','bold') + end + def header6 + header_sub('p','bold') + end + def header4 + %{ +<div class="substance"> + #{@p_num.ocn_display} + <h1 class="norm" #{@p_num.id}>#{@p_num.name} + #{@t_o[:format]} + #{@txt} + </h1> +</div> +} + end + def navigation_header4 + %{<table summary="navigation segment header 4" width=100% bgcolor="#08163f" border="0"> +<tr><td align="center"> +<p class="bold"> + #{@txt} +</p> +#{@vz.table_close}} + end + def navigation_header5 + %{<p class="bold"> + #{@txt} +</p>} + end + def navigation_header6 + %{<p class="bold"> + #{@txt} +</p>} + end + def navigation_center + "<center>#{@txt}</center>" + end + end + class Format_toc < Format_text_object + def initialize(md,txt) + super(md,txt) + end + def links_guide + %{ <li class="doc"> + <a href="#{@lnk_url}" target="_top"> + #{@lnk_txt} + </a> + </li> +} + end + def lev(tag,attrib) + if @txt + %{<#{tag} class="#{attrib}"> + #{@txt} + </#{tag}> +} + else '' + end + end + def lev1 + lev('h1','toc') + end + def lev2 + lev('h2','toc') + end + def lev3 + lev('h3','toc') + end + def lev4 + lev('h4','toc') + end + def lev5 + lev('h5','toc') + end + def lev6 + lev('h6','toc') + end + def lev0 #docinfo + lev('h0','toc') + end + def mini_lev1 + lev('h1','minitoc') + end + def mini_lev2 + lev('h2','minitoc') + end + def mini_lev3 + lev('h3','minitoc') + end + def mini_lev4 + lev('h4','minitoc') + end + def mini_lev5 + lev('h5','minitoc') + end + def mini_lev6 + lev('h6','minitoc') + end + def mini_lev0 #docinfo + lev('h0','minitoc') + end + def mini_tail +# <h0 class="minitoc"> +# <a href="metadata.html">Document Information (metadata)</a> +# </h0> + %{ + <h4 class="minitoc"> + <a href="sisu_manifest.html">Manifest (alternative outputs)</a> + </h4> +} + end + def mini_concord_tail + %{ + <h4 class="minitoc"> + <a href="concordance.html">Concordance (wordlist)</a> + </h4> + <h4 class="minitoc"> + <a href="sisu_manifest.html">Manifest (alternative outputs)</a> + </h4> +} + end end end __END__ |