aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/html.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0/html.rb')
-rw-r--r--lib/sisu/v0/html.rb145
1 files changed, 51 insertions, 94 deletions
diff --git a/lib/sisu/v0/html.rb b/lib/sisu/v0/html.rb
index 208b7409..5b9639dd 100644
--- a/lib/sisu/v0/html.rb
+++ b/lib/sisu/v0/html.rb
@@ -75,6 +75,7 @@ module SiSU_HTML
require "#{SiSU_lib}/html_tune"
include SiSU_Tune
require "#{SiSU_lib}/shared_xml"
+ require "#{SiSU_lib}/shared_structure"
class Source
def initialize(opt)
@opt=opt
@@ -180,52 +181,7 @@ module SiSU_HTML
@tuned_file_array
end
end
- class Split_text_object
- include SiSU_Viz
- include SiSU_HTML_Format_type
- @@dp=nil
- attr_reader :format,:text,:ocn,:scroll_lev_para_ocn,:seg_lev_para_ocn
- def initialize(md,para)
- @md,@para=md,para
- @format,@ocn='null','null'
- #@format,@ocn=nil,nil
- @dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern
- end
- def lev_segname_para_ocn #needs work 2003w29
- if @para =~/^\d~.+?<~\d+;(?:[ohmu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- if @para[/^([1-6])~(\S+)\s+(\S.+?)<~(\d+);(?:[ohmu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
- @format,segname,@text,@ocn=$1,$2,$3,$4
- @format="#@format~#{segname}" #
- elsif @para[/^([1-6]~)\s+(\S.+?)<~(\d+);(?:[ohmu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
- @format,@text,@ocn=$1,$2,$3
- end
- else
- if @para[/^(?:<:i([1-9])>\s*_\*)\s+(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
- @format,@text,@ocn="_#{$1}\*",$2,$3,$4
- elsif @para[/^(_\*)\s+(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
- @format,@text,@ocn=$1,$2,$3
- elsif @para[/<:(i[1-9])>\s*(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
- @format,@text,@ocn=$1,$2,$3
- elsif @para[/<:(code|alt|verse|group)>(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
- @format,@text,@ocn=$1,$2,$3
- elsif @para[/(.+?)<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m]
- @text,@ocn=$1,$2 #,$3
- end
- if @para !~/<~(\d+);(?:[ohu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$|^$/ #added 2002w06
- @text=@para[/(.+?)/m,1]
- end
- if @para[/^(\d)~\S*\s+(.+)/m]
- @format,@text=$1,$2
- end
- end
- @seg_lev_para_ocn=if @para[/.+<~\d+;(?:[ohmu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/]
- SiSU_HTML_Format_type::Format_seg.new(@md,@format,@text,@ocn)
- end
- @scroll_lev_para_ocn=if @para[/.+<~\d+;(?:[ohmu]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/]
- SiSU_HTML_Format_type::Format_scroll.new(@md,@format,@text,@ocn)
- end
- self
- end
+ class Split_text_object <SiSU_Structure::Split_text_object
end
class Links_guide
@links_guide_toc=[]
@@ -266,18 +222,18 @@ module SiSU_HTML
@scr_endnotes << format_head_scroll.title_endnote
@data.each do |para|
pg=para.dup
- unless pg =~/^<:code>/
- if pg =~/~[{\[][\d*+]+ <a name="_[\d*+]+"/ \
- and not pg =~/^<:code>/
- endnote_array=[]
- if pg=~/~\{[\d*+].+?\}\~/m
- endnote_array << pg.scan(/~\{[\d*+]+(.+?)\}\~/m)
+ unless pg =~/^#{Mx[:gr_o]}code#{Mx[:gr_c]}/
+ if pg =~/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]})[\d*+]+ <a name="_[\d*+]+"/ \
+ and not pg =~/^#{Mx[:gr_o]}code#{Mx[:gr_c]}/
+ endnote_array=[] #(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]})
+ if pg=~/#{Mx[:en_a_o]}[\d*+].+?#{Mx[:en_a_c]}/m
+ endnote_array << pg.scan(/#{Mx[:en_a_o]}[\d*+]+(.+?)#{Mx[:en_a_c]}/m)
end
- if pg=~/~\[[\d*]+\s.+?\]\~/m
- endnote_array << pg.scan(/~\[[\d*]+(.+?)\]\~/m)
+ if pg=~/#{Mx[:en_b_o]}[\d*]+\s.+?#{Mx[:en_b_c]}/m
+ endnote_array << pg.scan(/#{Mx[:en_b_o]}[\d*]+(.+?)#{Mx[:en_b_c]}/m)
end
- if pg=~/~\[[\d+]+\s.+?\]\~/m
- endnote_array << pg.scan(/~\[[\d+]+(.+?)\]\~/m)
+ if pg=~/#{Mx[:en_b_o]}[\d+]+\s.+?#{Mx[:en_b_c]}/m
+ endnote_array << pg.scan(/#{Mx[:en_b_o]}[\d+]+(.+?)#{Mx[:en_b_c]}/m)
end
endnote_array.flatten.each do |note|
format_scroll=SiSU_HTML_Format_type::Format_scroll.new(@md,note)
@@ -297,7 +253,7 @@ module SiSU_HTML
@data,@md=data,md
@vz=SiSU_Env::Get_init.instance.skin
@dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern
- @pat_heading=/^(?:[1-6]~\S*)?(.*)<~(\d+);(?:[hm]|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ @pat_heading=/^(?:#{Mx[:lv_o]}[1-6]:\S*?#{Mx[:lv_c]}\s*)?(.*)#{Mx[:id_o]}~(\d+);(?:[hm]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
@pat_strip_heading_name=/<a name="h?\d.*?">(.+?)<\/a>/
@tell=SiSU_Screen::Ansi.new(@md.cmd)
end
@@ -306,22 +262,22 @@ module SiSU_HTML
toc=nil
@@firstseg=nil
@data.each do |para|
- if para =~/^([1-6]~|4~!)/
+ if para =~/^(?:#{Mx[:lv_o]}[1-6]:|4~!)/
para_toc=para.dup
- para_toc.gsub!(/&nbsp;<a name="-[\d*+]+" href="#_[\d*+]+">&nbsp;<sup>[\d*+]+<\/sup>&nbsp;<\/a>\s+~[{\[].+?[}\]]~/m,'') #remove endnotes from toc
+ para_toc.gsub!(/&nbsp;<a name="-[\d*+]+" href="#_[\d*+]+">&nbsp;<sup>[\d*+]+<\/sup>&nbsp;<\/a>\s*(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]}).+?(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})/m,'') #remove endnotes from toc
toc=case para_toc
- when /^\s*1~(\S+)?/; Toc.new(para_toc,@md).level_1
- when /^\s*2~(\S+)?/; Toc.new(para_toc,@md).level_2
- when /^\s*3~(\S+)?/; Toc.new(para_toc,@md).level_3
- when /^\s*4~(\S+)?/; Toc.new(para_toc,@md).level_4
- when /^\s*5~(\S+)?/; Toc.new(para_toc,@md).level_5
- when /^\s*6~(\S+)?/; Toc.new(para_toc,@md).level_6
+ when /^\s*#{Mx[:lv_o]}1:\S*/; Toc.new(para_toc,@md).level_1
+ when /^\s*#{Mx[:lv_o]}2:\S*/; Toc.new(para_toc,@md).level_2
+ when /^\s*#{Mx[:lv_o]}3:\S*/; Toc.new(para_toc,@md).level_3
+ when /^\s*#{Mx[:lv_o]}4:\S+/; Toc.new(para_toc,@md).level_4
+ when /^\s*#{Mx[:lv_o]}5:\S*/; Toc.new(para_toc,@md).level_5
+ when /^\s*#{Mx[:lv_o]}6:\S*/; Toc.new(para_toc,@md).level_6
when /^\s*4~!/; Toc.new(para_toc).level_crosslink
else
end
if @@firstseg.nil? \
- and para=~/^4~\S+?/
- @@firstseg=/^4~(\S+)?/.match(para)[1]
+ and para=~/^#{Mx[:lv_o]}4:\S+?#{Mx[:lv_c]}/
+ @@firstseg=/^#{Mx[:lv_o]}4:(\S+?)#{Mx[:lv_c]}/.match(para)[1]
end
if toc
begin
@@ -374,11 +330,11 @@ WOK
end
def level_1
para=@data
- unless para =~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ unless para =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
para.gsub!(@pat_strip_heading_name,'\1')
end
para[@pat_heading]
- linkname,link=$1,$2 if $&
+ linkname,link=$1.strip,$2 if $&
if link \
and link !~/#/ #% keep eye on link
p_num=SiSU_HTML_Format_type::Paragraph_number.new(@md,link)
@@ -390,26 +346,26 @@ WOK
end
toc={}
format_toc=SiSU_HTML_Format_type::Format_toc.new(@md,title)
- toc[:seg]=if para =~/^\d~meta\s+Document Information/
+ toc[:seg]=if para =~/^#{Mx[:lv_o]}\d:meta^#{Mx[:lv_c]}\s*Document Information/
format_toc.lev0
else format_toc.lev1
end
- title=if para =~/(<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>)$/
+ title=if para =~/(#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]})$/
m=/#{$1}/
para.gsub!(m,'')
- if para=~/^\d~meta\s+Document Information/
+ if para=~/^#{Mx[:lv_o]}\d:meta#{Mx[:lv_c]}\s*Document Information/
%{<a href="#docinfo">#{linkname}</a>}
else linkname
end
else
@@toc[:scr] << '<br />'
- link=if para =~/<~[1-9];([0-6]):\d+;\w\d+><#@dp:#@dp>$/; $1
+ link=if para =~/#{Mx[:id_o]}~[1-9];([0-6]):\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/; $1
else ''
end
%{<b><a href="##{link}">#{linkname}</a></b>}
end
format_toc=SiSU_HTML_Format_type::Format_toc.new(@md,title)
- toc[:scr]=if para =~/^\d~meta\s+Document Information/
+ toc[:scr]=if para =~/^#{Mx[:lv_o]}\d:meta^#{Mx[:lv_c]}\s*Document Information/
format_toc.lev0
else format_toc.lev1
end
@@ -417,11 +373,11 @@ WOK
end
def level_2
para=@data
- unless para =~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ unless para =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
para.gsub!(@pat_strip_heading_name,'\1')
end
para[@pat_heading]
- linkname,link=$1,$2 if $&
+ linkname,link=$1.strip,$2 if $&
if link \
and link !~/#/
p_num=SiSU_HTML_Format_type::Paragraph_number.new(@md,link)
@@ -429,7 +385,7 @@ WOK
format_toc=SiSU_HTML_Format_type::Format_toc.new(@md,linkname)
toc={}
toc[:seg]=format_toc.lev2
- if para =~/(<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>)$/
+ if para =~/(#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]})$/
m=/#{$1}/
para.gsub!(m,'')
title=linkname
@@ -444,7 +400,7 @@ WOK
para.gsub!(@pat_strip_heading_name,'\1')
para.gsub(/(.*?)<a name="(\d+)"><\/a>(.*)/,'\1') #2002w42 altered gsub! - problematic? - suspect
para[@pat_heading]
- linkname,link=$1,$2 if $&
+ linkname,link=$1.strip,$2 if $&
if link \
and link !~/#/
p_num=SiSU_HTML_Format_type::Paragraph_number.new(@md,link)
@@ -452,7 +408,7 @@ WOK
format_toc=SiSU_HTML_Format_type::Format_toc.new(@md,linkname)
toc={}
toc[:seg]=format_toc.lev3
- if para =~/(<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>)$/
+ if para =~/(#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]})$/
m=/#{$1}/
para.gsub!(m,'')
title=linkname
@@ -465,19 +421,19 @@ WOK
def level_4
para=@data
unless para =~/~metadata/
- unless para =~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ unless para =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
para.gsub!(@pat_strip_heading_name,'\1')
para[@pat_heading]
- linkname,link=$1,$2 if $&
+ linkname,link=$1.strip,$2 if $&
p_num=SiSU_HTML_Format_type::Paragraph_number.new(@md,link) if link
end
- para.gsub!(/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/,'')
- if para =~/^4~/
- seg_link=para.gsub(/^\s*4~(\S+)\s+(.+?)$/,
+ para.gsub!(/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/,'')
+ if para =~/^#{Mx[:lv_o]}4:/
+ seg_link=para.gsub(/^\s*#{Mx[:lv_o]}4:(\S+?)#{Mx[:lv_c]}\s*(.+?)$/,
%{ <a href="#{@md.fnl[:pre]}\\1#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}" target="_top">
\\2
</a> })
- @@seg_url=para[/^4~(\S+).+?$/,1]
+ @@seg_url=para[/^#{Mx[:lv_o]}4:(\S+?)#{Mx[:lv_c]}.+?$/,1]
elsif para =~/\d+.\d+.\d+.\d+|\d+.\d+.\d+|\d+.\d+|\d+/
seg_link=para.gsub(/^\s*(#{@md.lv4}\s+)\s*(\d+.\d+.\d+.\d+|\d+.\d+.\d+|\d+.\d+|\d+)(.*)/,
%{<a href="#{@md.fnl[:pre]}\\2#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}" } +
@@ -487,7 +443,7 @@ WOK
format_toc=SiSU_HTML_Format_type::Format_toc.new(@md,seg_link)
toc={}
toc[:seg]=format_toc.lev4
- if para =~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ if para =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
m=/#{$1}/
para.gsub!(m,'')
title=linkname
@@ -500,17 +456,17 @@ WOK
end
def level_5
para=@data
- if para !~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ if para !~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
para.gsub!(@pat_strip_heading_name,'\1')
end
para[@pat_heading]
- linkname,link=$1,$2 if $&
+ linkname,link=$1.strip,$2 if $&
if link \
and link !~/#/
p_num=SiSU_HTML_Format_type::Paragraph_number.new(@md,link)
end
toc={}
- if para =~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ if para =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
m=/#{$1}/
para.gsub!(m,'')
title=linkname
@@ -528,17 +484,17 @@ WOK
end
def level_6
para=@data
- if para !~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ if para !~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
para.gsub!(@pat_strip_heading_name,'\1')
end
para[@pat_heading]
- linkname,link=$1,$2 if $&
+ linkname,link=$1.strip,$2 if $&
if link \
and link !~/#/
p_num=SiSU_HTML_Format_type::Paragraph_number.new(@md,link)
end
toc={}
- if para =~/<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
+ if para =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
m=/#{$1}/
para.gsub!(m,'')
title=linkname
@@ -671,7 +627,7 @@ WOK
def publish
scroll=[]
hr='<center><hr width=90% /></center>'
- scroll << @scr_toc << hr << @scr_body << hr << @scr_endnotes << hr << @scr_metadata << @scr_owner_details << @scr_tails
+ scroll << @scr_toc << hr << @scr_body << @scr_endnotes << hr << @scr_metadata << @scr_owner_details << @scr_tails
scroll.flatten!.compact!
end
end
@@ -690,6 +646,7 @@ WOK
@data.each do |para|
para.strip!
para.gsub!(/<:.+?>/,'')
+ para.gsub!(/#{Rx[:mx_fa_clean]}/,'')
unless para =~/\A\s*\Z/
@filename_html_scroll.puts para,"\n"
end
@@ -703,7 +660,7 @@ WOK
@filename_html_index=@my_make.file_html_index(@md)
@data.each do |para|
para.strip!
- para.gsub!(/<!.+?!>|<~\d+;(?:[ohm]|[0-6]:)\d+;\w\d+><#@dp:#@dp>/,'')
+ para.gsub!(/<!.+?!>|#{Mx[:gr_o]}.*?#{Mx[:gr_c]}|#{Mx[:id_o]}~\d+;(?:[ohm]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}/,'')
unless para =~/\A\s*\Z/
@filename_html_segtoc.puts para,"\n"
@filename_html_index.puts para,"\n"