From 1625f316c0d74e01789bec8b8fca0608acc9310e Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Thu, 20 Nov 2014 23:03:24 -0500 Subject: d: html, segments, reorganize, introduce new file --- lib/sisu/develop/html_segments.rb | 356 +++++++++++++++++++------------------- 1 file changed, 178 insertions(+), 178 deletions(-) (limited to 'lib/sisu/develop/html_segments.rb') diff --git a/lib/sisu/develop/html_segments.rb b/lib/sisu/develop/html_segments.rb index 61bed7bf..d6a76de6 100644 --- a/lib/sisu/develop/html_segments.rb +++ b/lib/sisu/develop/html_segments.rb @@ -57,12 +57,13 @@ module SiSU_HTML_Seg require_relative 'html_shared' # html_shared.rb require_relative 'html' # html.rb + require_relative 'html_persist' # html_persist.rb require_relative 'html_promo' # html_promo.rb require_relative 'shared_metadata' # shared_metadata.rb class Output - def initialize(md,outputfile,seg,minitoc,type='') - @md, @output_seg_file,@seg,@minitoc,@type= - md,outputfile, seg,minitoc, type + def initialize(md,outputfile,per,minitoc,type='') + @md, @output_seg_file,@per,@minitoc,@type= + md,outputfile, per,minitoc, type @title_banner_=SiSU_Env::CreateSite.new(@md.opt).html_seg_title_banner? @file=SiSU_Env::FileOp.new(@md) @make=SiSU_Env::ProcessingSettings.new(@md) @@ -71,67 +72,68 @@ module SiSU_HTML_Seg : 'content0' end def output - if @seg[:title] =~/\S/ + if @per.title =~/\S/ filename_seg=[] if @make.build.html_top_band? filename_seg \ - << @seg[:title] \ - << @seg[:tocband_banner] + << @per.title \ + << @per.tocband_banner else filename_seg \ - << @seg[:title] + << @per.title end if @type=='endnotes' - @seg[:headings]=[] + @per.headings=[] format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md) if @title_banner_ - @seg[:headings] \ + @per.headings \ << format_head_seg. title_banner(@md.title.main,@md.title.sub,@author) end txt_obj={ txt: 'Endnotes', ocn_display: '' } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - @seg[:headings] \ + @per.headings \ << format_seg.title_heading1 filename_seg \ - << @seg[:heading_endnotes] \ - << @minitoc << @seg[:headings] \ + << @per.heading_endnotes \ + << @minitoc << @per.headings \ << %{\n
\n} \ - << @seg[:endnote_all] \ + << @per.endnote_all \ << '
' # << '' elsif @type=='idx' - @seg[:headings]=[] + @per.headings=[] format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md) if @title_banner_ - @seg[:headings] \ + @per.headings \ << format_head_seg. title_banner(@md.title.main,@md.title.sub,@author) end txt_obj={ txt: 'Index', ocn_display: '' } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - @seg[:headings] << format_seg.title_heading1 + @per.headings << format_seg.title_heading1 filename_seg \ - << @seg[:heading_idx] \ - << @minitoc << @seg[:headings] \ + << @per.heading_idx \ + << @minitoc << @per.headings \ << %{\n
\n} \ - << @seg[:idx] \ + << @per.idx \ << '
' # << '' elsif @type=='metadata' metadata=SiSU_Metadata::Summary.new(@md).html_display.metadata - @seg[:headings]=[] + @per.headings=[] format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md) if @title_banner_ - @seg[:headings] \ + @per.headings \ << format_head_seg. title_banner(@md.title.main,@md.title.sub,@author) end txt_obj={ txt: 'Metadata', ocn_display: '' } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - @seg[:headings] << format_seg.title_heading1 + @per.headings \ + << format_seg.title_heading1 filename_seg \ - << @seg[:heading_idx] \ + << @per.heading_idx \ << @minitoc \ - << @seg[:headings] \ + << @per.headings \ << %{\n
\n} \ << metadata \ << '
' # << '' @@ -139,23 +141,23 @@ module SiSU_HTML_Seg if @make.build.html_top_band? filename_seg \ << @minitoc \ - << @seg[:headings] \ - << @seg[:main] \ + << @per.headings \ + << @per.main \ << "\n\n" else filename_seg \ << @minitoc \ - << @seg[:main] \ + << @per.main \ << "\n\n" end end filename_seg <<=if @make.build.html_top_band? - @seg[:tail] \ - << @seg[:tocband_bannerless] \ - << @seg[:credits] + @per.tail \ + << @per.tocband_bannerless \ + << @per.credits else - @seg[:tail] \ - << @seg[:credits] + @per.tail \ + << @per.credits end filename_seg=filename_seg.flatten.compact #watch filename_seg.each do |str| @@ -173,32 +175,15 @@ module SiSU_HTML_Seg end end class Seg - @@seg,@@seg_subtoc,@@seg_endnotes,@@seg_ad={},{},{},{} - @@seg_name,@@seg_name_html=[],[] - @@seg_url=@@fn=@@get_hash_to=@@get_hash_fn='' - @@loop_count=@@seg_total=@@tracker=0 - @@is4=@@is3=@@is2=@@is1=@@is0=0 - @@heading0=@@heading1=@@heading2=@@heading3=@@heading4=0 - @@seg[:tocband_banner], - @@seg[:tocband_bannerless], - @@seg[:title],@@seg[:headings], - @@seg[:main], - @@seg[:idx], - @@seg[:tail], - @@seg[:credits], - @@seg_subtoc_array, - @@seg_endnotes_array, - @@seg[:endnote_all]= - Array.new(11){[]} - @@seg[:heading_endnotes]='' - @@tablehead,@@number_of_cols=0,0 - @@dp,@@segtocband=nil,nil - @@fns_previous='' - attr_reader :seg_name_html,:seg_name_html_tracker + @@seg_url='' + @@tracker=0 + @@seg_name=[] + attr_reader :seg_name_x,:seg_name_x_tracker def initialize(md=nil,data='') @md,@data=md,data - @seg_name_html=@@seg_name_html || nil - @seg_name_html_tracker=@@tracker || nil + @per=SiSU_HTML_Persist::Persist.new + @seg_name_x=@per.seg_name_x=(@@seg_name || []) + @seg_name_x_tracker=@per.seg_name_x_tracker=(@@tracker || 0) @env=SiSU_Env::InfoEnv.new(@md.fns) if @md if @md @make=SiSU_Env::ProcessingSettings.new(@md) @@ -214,22 +199,24 @@ module SiSU_HTML_Seg def songsheet begin @minitoc=SiSU_HTML::Source::Toc.new(@md,@data).minitoc - data=get_subtoc_endnotes(@data) - data=articles(data) - SiSU_HTML_Seg::Seg.new.cleanup # (((( added )))) + SiSU_HTML_Persist::Persist.new.persist_init + @per=SiSU_HTML_Persist::Persist.new + data=get_subtoc_endnotes(@data,@per) + data=articles(data,@per) + cleanup(@md,@per) # (((( added )))) #### (((( END )))) #### rescue SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure - @@seg_name=[] + @@seg_name=@per.seg_name=[] end end protected - def articles(data) + def articles(data,per) + @per=per tracking,newfile=0,0 - @@is4=@@is3=@@is2=@@is1=@@is0=0 printed_endnote_seg='n' idx_html=nil if @md.book_idx @@ -237,27 +224,28 @@ module SiSU_HTML_Seg idx_html=SiSU_Particulars::CombinedSingleton. instance.get_idx_html(@md.opt).html_idx idx_html.each do |x| - @@seg[:idx] << x + @per.idx << x end - @@seg[:heading_idx]='' + @per.heading_idx='' end data.each do |dob| if (dob.is == :heading \ || dob.is == :heading_insert) \ && dob.ln == 4 @@seg_name << dob.name + @per.seg_name = @@seg_name dob.name end end - @@seg_name_html=@@seg_name - @@seg_total=@@seg_name.length - testforartnum=@@seg_name_html + @per.seg_name_x=@per.seg_name + @per.seg_name.length + testforartnum=@per.seg_name_x if (@md.opt.act[:verbose][:set]==:on \ || @md.opt.act[:verbose_plus][:set]==:on \ || @md.opt.act[:maintenance][:set]==:on) SiSU_Screen::Ansi.new( @md.opt.act[:color_state][:set], - @@seg_name.length + @per.seg_name.length ).segmented end map_nametags=SiSU_Particulars::CombinedSingleton. @@ -285,41 +273,41 @@ module SiSU_HTML_Seg if (dob.is==:heading \ || dob.is==:heading_insert) \ && dob.ln==4 - @@heading4=dob.obj - @@is4=newfile=1 + @per.heading4=dob.obj + @per.is4=newfile=1 end if (dob.is==:heading \ || dob.is==:heading_insert) \ && dob.ln==3 - @@heading3=dob.obj - @@is4,@@is3=0,1 + @per.heading3=dob.obj + @per.is4,@per.is3=0,1 end if (dob.is==:heading \ || dob.is==:heading_insert) \ && dob.ln==2 - @@heading2=dob.obj - @@is4,@@is3,@@is2=0,0,1 + @per.heading2=dob.obj + @per.is4,@per.is3,@per.is2=0,0,1 end if (dob.is==:heading \ || dob.is==:heading_insert) \ && dob.ln==1 - @@heading1=dob.obj - @@is4,@@is3,@@is2,@@is1=0,0,0,1 + @per.heading1=dob.obj + @per.is4,@per.is3,@per.is2,@per.is1=0,0,0,1 end if (dob.is==:heading \ || dob.is==:heading_insert) \ && dob.ln==0 - @@heading0=dob.obj - @@is4,@@is3,@@is2,@@is1,@@is0=0,0,0,0,1 + @per.heading0=dob.obj + @per.is4,@per.is3,@per.is2,@per.is1,@per.is0=0,0,0,0,1 end - if (@@is1 && !@@is2 && !@@is3 && !@@is4) + if (@per.is1 && !@per.is2 && !@per.is3 && !@per.is4) if not (dob.is==:heading \ || dob.is==:heading_insert) \ && dob.ln==0 $_ #; check end end - if @@is4==1 + if @per.is4==1 if newfile==1 \ or dob.obj =~/^#{Mx[:br_endnotes]}|^#{Mx[:br_eof]}/ newfile=0 @@ -332,43 +320,46 @@ module SiSU_HTML_Seg FileUtils::mkdir_p(@file.output_path.html_seg.dir) \ if File.writable?("#{@file.output_path.base.dir}/.") end - SiSU_HTML_Seg::Seg.new(@md).tail + tail(@md,@per) + #SiSU_HTML_Seg::Seg.new(@md,@per).tail fnh={ - fn: @@seg_name_html[tracking-1], + fn: @per.seg_name_x[tracking-1], } fn=@md.file.base_filename.html_seg(fnh) segfilename="#{@file.output_path.html_seg.dir}/#{fn}" - output_seg_file=File.new(segfilename,'w') if @@seg_name_html[tracking-1] + output_seg_file=File.new(segfilename,'w') if @per.seg_name_x[tracking-1] minitoc=(@make.build.html_minitoc?) ? @minitoc : '' if dob.is==:heading \ - || (@@seg_name_html[tracking-1] !~/endnotes|book_index|metadata/) - SiSU_HTML_Seg::Output.new(@md,output_seg_file,@@seg,minitoc).output + || (@per.seg_name_x[tracking-1] !~/endnotes|book_index|metadata/) + SiSU_HTML_Seg::Output.new(@md,output_seg_file,@per,minitoc).output elsif dob.is==:heading_insert - if @@seg_name_html[tracking-1]=='endnotes' - SiSU_HTML_Seg::Output.new(@md,output_seg_file,@@seg,minitoc,'endnotes').output - elsif @@seg_name_html[tracking-1]=='book_index' - SiSU_HTML_Seg::Output.new(@md,output_seg_file,@@seg,minitoc,'idx').output - @@seg[:idx]=[] - elsif @@seg_name_html[tracking-1]=='metadata' - SiSU_HTML_Seg::Output.new(@md,output_seg_file,@@seg,minitoc,'metadata').output + if @per.seg_name_x[tracking-1]=='endnotes' + SiSU_HTML_Seg::Output.new(@md,output_seg_file,@per,minitoc,'endnotes').output + elsif @per.seg_name_x[tracking-1]=='book_index' + SiSU_HTML_Seg::Output.new(@md,output_seg_file,@per,minitoc,'idx').output + @per.idx=[] + elsif @per.seg_name_x[tracking-1]=='metadata' + SiSU_HTML_Seg::Output.new(@md,output_seg_file,@per,minitoc,'metadata').output else puts "#{__FILE__}::#{__LINE__}" end else puts "#{__FILE__}::#{__LINE__}" end - SiSU_HTML_Seg::Seg.new.reinitialise + SiSU_HTML_Seg::Seg.new.reinitialise(per) + #per=persist_init heading_art(dob) head(dob) #keep use for last segment, eg if metadata is last segment - if @@seg_name_html[tracking] =='metadata' # this is for metadata - fnh={ - fn: @@seg_name_html[tracking], - } - fn=@md.file.base_filename.html_seg(fnh) - segfilename="#{@file.output_path.html_seg.dir}/#{fn}" - output_seg_file=File.new(segfilename,'w') - SiSU_HTML_Seg::Output.new(@md,output_seg_file,@@seg,minitoc,'metadata').output - Seg.new.reinitialise - end + if @per.seg_name_x[tracking] =='metadata' # this is for metadata + fnh={ + fn: @per.seg_name_x[tracking], + } + fn=@md.file.base_filename.html_seg(fnh) + segfilename="#{@file.output_path.html_seg.dir}/#{fn}" + output_seg_file=File.new(segfilename,'w') + SiSU_HTML_Seg::Output.new(@md,output_seg_file,@per,minitoc,'metadata').output + #per=persist_init + Seg.new.reinitialise(per) + end end if tracking==0 heading_art(dob) @@ -381,8 +372,8 @@ module SiSU_HTML_Seg || dob.is==:heading_insert) \ && dob.ln==4 \ && dob.name - @@get_hash_to=dob.name - @@get_hash_fn=dob.name + @per.get_hash_to=dob.name + @per.get_hash_fn=dob.name end if dob.obj.is_a?(String) markup(dob) @@ -402,108 +393,108 @@ module SiSU_HTML_Seg end def heading_art(dob) format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md) - @@seg[:dot_nav]=if (@make.build.html_navigation?) \ + @per.dot_nav=if (@make.build.html_navigation?) \ && (@make.build.html_navigation_bar?) x=if (dob.is==:heading \ || dob.is==:heading_insert) \ && (dob.ln.to_s =~/^[0-7]/) - x=if @@tracker < @@seg_total-1 + x=if @@tracker < @per.seg_name.length-1 format_head_seg.dot_control_pre_next else format_head_seg.dot_control_pre end - else @@seg[:dot_nav] + else @per.dot_nav end - else @@seg[:dot_nav]='' + else @per.dot_nav='' end ads=SiSU_HTML_Promo::Ad.new(@md) - @@seg[:title]=format_head_seg.head_seg << ads.div.major + @per.title=format_head_seg.head_seg << ads.div.major end def head(dob) clean=/|<:.*?>/ format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md) if @make.build.html_navigation? - if @@tracker < @@seg_total-1 - @@segtocband=if @@tracker==0 + if @@tracker < @per.seg_name.length-1 + @per.segtocband=if @@tracker==0 format_head_seg.toc_next2 else format_head_seg.toc_pre_next2 end - else @@segtocband=format_head_seg.toc_pre2 + else @per.segtocband=format_head_seg.toc_pre2 end - else @@segtocband='' + else @per.segtocband='' end @p_num ||= '' - if @@is0==1 + if @per.is0==1 @author=%{#{@md.author}\n} if @md.author.to_s =~/\S/ - @@seg[:tocband_banner] \ - << format_head_seg.navigation_band(@@segtocband,@@seg[:dot_nav]) - @@seg[:tocband_bannerless] \ + @per.tocband_banner \ + << format_head_seg.navigation_band(@per.segtocband,@per.dot_nav) + @per.tocband_bannerless \ << '
' \ - << format_head_seg.navigation_band_bottom(@@segtocband,@@seg[:dot_nav]) + << format_head_seg.navigation_band_bottom(@per.segtocband,@per.dot_nav) if @title_banner_ - @@seg[:headings] \ + @per.headings \ << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author).gsub(clean,'') end - ocn=(@@heading0[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/]) \ + ocn=(@per.heading0[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/]) \ ? $1 : '' @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) - txt_obj={ txt: @@heading0, ocn_display: @p_num.ocn_display } + txt_obj={ txt: @per.heading0, ocn_display: @p_num.ocn_display } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - @@seg[:headings] \ + @per.headings \ << format_seg.title_heading0.gsub(clean,'') - @@heading0=@@heading0. + @per.heading0=@per.heading0. gsub(/  [\d*+]+<\/sup> <\/a>/,'') end - if @@is1==1 - heading1=@@heading1 + if @per.is1==1 + heading1=@per.heading1 ocn=(heading1[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/]) \ ? $1 : '' @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) txt_obj={ txt: heading1, ocn_display: @p_num.ocn_display } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - @@seg[:headings] \ + @per.headings \ << format_seg.title_heading1.gsub(clean,'') - @@heading1=@@heading1. + @per.heading1=@per.heading1. gsub(/  [\d*+]+<\/sup> <\/a>/,'') end - if @@is2==1 - heading2=@@heading2 + if @per.is2==1 + heading2=@per.heading2 ocn=(heading2[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/]) \ ? $1 : '' @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) txt_obj={ txt: heading2, ocn_display: @p_num.ocn_display } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - @@seg[:headings] \ + @per.headings \ << format_seg.title_heading2.gsub(clean,'') - @@heading2=@@heading2. + @per.heading2=@per.heading2. gsub(/  [\d*+]+<\/sup> <\/a>/,'') end - if @@is3==1 - heading3=@@heading3 + if @per.is3==1 + heading3=@per.heading3 ocn=(heading3[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/]) \ ? $1 : '' @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) txt_obj={ txt: heading3, ocn_display: @p_num.ocn_display } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - @@seg[:headings] \ + @per.headings \ << format_seg.title_heading3.gsub(clean,'') - @@heading3=@@heading3. + @per.heading3=@per.heading3. gsub(/  [\d*+]+<\/sup> <\/a>/,'') end - if @@is4==1 - heading4=@@heading4 + if @per.is4==1 + heading4=@per.heading4 ocn=(heading4[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/]) \ ? $1 : '' @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) txt_obj={ txt: heading4, ocn_display: @p_num.ocn_display } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - @@seg[:headings] \ + @per.headings \ << format_seg.title_heading4.gsub(clean,'') end @@tracker=@@tracker+1 @@ -586,66 +577,73 @@ module SiSU_HTML_Seg if (dob.is==:heading \ || dob.is==:heading_insert) \ && dob.ln==4 - @@seg[:main] << %{\n
\n} - @@seg[:main] << dob_html + @per.main << %{\n
\n} + @per.main << dob_html if @make.build.segsubtoc? - @@seg[:main] << @@seg_subtoc[@@get_hash_fn] #% insertion of sub-toc + @per.main << @per.seg_subtoc[@per.get_hash_fn] #% insertion of sub-toc end else - @@seg[:main] << dob_html #unless @@flag_alt==true + @per.main << dob_html #unless @@flag_alt==true end end end - def tail + def tail(md,per) + @md,@per=md,per format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md) - if @md.flag_auto_endnotes and @@seg_endnotes[@@get_hash_fn] - @@seg[:tail] << %{\n
\n
\n} - if @@seg_endnotes[@@get_hash_fn].flatten.length > 0 - @@seg[:tail] << format_head_seg.endnote_mark - @@seg[:tail] << @@seg_endnotes[@@get_hash_fn].flatten #endnotes deposited at end of individual segments ||@|EXTRACTION OF ENDNOTES| + if @md.flag_auto_endnotes \ + and @per.seg_endnotes[@per.get_hash_fn] + @per.tail << %{\n
\n
\n} + if @per.seg_endnotes[@per.get_hash_fn].flatten.length > 0 + @per.tail << format_head_seg.endnote_mark + @per.tail << @per.seg_endnotes[@per.get_hash_fn].flatten #endnotes deposited at end of individual segments ||@|EXTRACTION OF ENDNOTES| end - @@seg[:tail] << '
' - @@seg[:tail] << '
' #this div closes div class content + @per.tail << '
' + @per.tail << '
' #this div closes div class content end ads=SiSU_HTML_Promo::Ad.new(@md) - @@seg[:credits] << format_head_seg.credit << ads.div.close << ads.display << format_head_seg.html_close + @per.credits \ + << format_head_seg.credit \ + << ads.div.close \ + << ads.display \ + << format_head_seg.html_close end - def reinitialise - @@seg[:title],@@seg[:dot_nav],@@seg[:tocband_banner],@@seg[:tocband_bannerless],@@seg[:headings],@@seg[:main],@@seg[:tail],@@seg[:credits]=Array.new(8){[]} - @@segtocband=nil + def reinitialise(per) + per.title,per.dot_nav,per.tocband_banner,per.tocband_bannerless,per.headings,per.main,per.tail,per.credits=Array.new(8){[]} + @per.segtocband=nil end - def cleanup - reinitialise - @@seg_total,@@tracker=0,0 - @@seg_endnotes,@@seg_subtoc={},{} - @@seg_endnotes_array,@@seg_subtoc_array=[],[] - @@seg[:endnote_all]=[] + def cleanup(md,per) + #per=persist_init + reinitialise(per) + @@tracker=0 + @per.seg_endnotes,@per.seg_subtoc={},{} + @per.seg_endnotes_array,@per.seg_subtoc_array=[],[] + per.endnote_all=[] end - def get_subtoc_endnotes(data) #get endnotes & sub-table of contents subtoc + def get_subtoc_endnotes(data,per) #get endnotes & sub-table of contents subtoc + @per=per data.each do |dob| dob.obj=dob.obj.gsub(/
(.+?)<\/a>/mi,'\1') if @md.flag_auto_endnotes if (dob.is==:heading \ || dob.is==:heading_insert) \ && (dob.ln.to_s =~/^[0-4]/) \ - and not @@fn.to_s.empty? - @@seg_endnotes[@@fn]=[] - @@seg_endnotes[@@fn] << @@seg_endnotes_array - @@seg_endnotes_array=[] if dob.ln==4 - @@fns_previous=@md.fns if dob.ln==4 and dob.name =~/^meta/ + and not @per.fn.to_s.empty? + @per.seg_endnotes[@per.fn]=[] + @per.seg_endnotes[@per.fn] << @per.seg_endnotes_array + @per.seg_endnotes_array=[] if dob.ln==4 end if (dob.is==:heading \ || dob.is==:heading_insert) \ && dob.ln==4 #% EXTRACTION OF SUB-TOCs & SEGMENT NAME, after EXTRACTION OF ENDNOTES & SUB-TOCs - @@seg_subtoc[@@fn]=@@seg_subtoc_array - @@seg_subtoc_array=[] + @per.seg_subtoc[@per.fn]=@per.seg_subtoc_array + @per.seg_subtoc_array=[] if dob.name \ and dob.obj - @@fn=dob.name + @per.fn=dob.name else if dob.name =~/\S+/ - @@fn=dob.name - else @@fn='' + @per.fn=dob.name + else @per.fn='' end end end @@ -666,7 +664,7 @@ module SiSU_HTML_Seg format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) subtoc=format_seg.subtoc_lev7 #keep and make available, this is the subtoc end - @@seg_subtoc_array << subtoc + @per.seg_subtoc_array << subtoc end if @md.flag_auto_endnotes if (dob.obj =~/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]})[\d*+]+\s*') #% creation of separate end segment/page of all endnotes referenced back to reference segment @@ -703,8 +703,8 @@ module SiSU_HTML_Seg endnote_part_b=note_match_seg[m,2] txt_obj={ endnote_part_a: endnote_part_a, endnote_part_b: endnote_part_b } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) - note_match_all_seg=format_seg.endnote_seg_body(@@fn) #BUG WATCH 200408 - @@seg[:endnote_all] << note_match_all_seg + note_match_all_seg=format_seg.endnote_seg_body(@per.fn) #BUG WATCH 200408 + @per.endnote_all << note_match_all_seg end dob.obj=dob.obj.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ') end -- cgit v1.2.3