aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/html_format.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0/html_format.rb')
-rw-r--r--lib/sisu/v0/html_format.rb957
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}">
- &nbsp;
- </p>})
+ @ocn.gsub(/^(\d+|)$/,
+ %{<label class="#{ocn_class}">&nbsp;</label>})
+ elsif @ocn.to_i == 0
+ @ocn.gsub(/^(\d+|)$/,
+ %{<label class="#{ocn_class}"><a name="#{@ocn}">&nbsp;</a></label>})
else
ocn_class='ocn'
- @paranum.gsub(/^(\d+|)$/,
- %{ <p class="#{ocn_class}">
- &nbsp;&nbsp;\\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="-&gt;">
+ #{@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%">
+ &nbsp;
+</td>
+<td width="60%" align="center">
+ #@tocband_segtoc
+</td>
+<td width="20%" align="right">
+ &nbsp;#{firstseg}&nbsp;
+#{@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">
- &nbsp;&nbsp;&nbsp;
- </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>&nbsp;<p>
+ %{
+<div class="main_column">
+<p>&nbsp;<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>&nbsp;</p>
+ %{
+<div class="main_column">
+<p>&nbsp;</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">
- &nbsp;&nbsp;&nbsp;
- </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}
- &nbsp;
-#{@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">
+ &nbsp;&nbsp;&nbsp;
+ </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}
+# &nbsp;
+##{@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">&nbsp;</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">&nbsp;</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}
&nbsp;&nbsp;&nbsp;
#{@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}
&nbsp;&nbsp;&nbsp;
#{@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+">&nbsp;<sup>\d+<\/sup>&nbsp;/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__