aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v5/xhtml_epub2_segments.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v5/xhtml_epub2_segments.rb')
-rw-r--r--lib/sisu/v5/xhtml_epub2_segments.rb64
1 files changed, 31 insertions, 33 deletions
diff --git a/lib/sisu/v5/xhtml_epub2_segments.rb b/lib/sisu/v5/xhtml_epub2_segments.rb
index 07447020..764fcc17 100644
--- a/lib/sisu/v5/xhtml_epub2_segments.rb
+++ b/lib/sisu/v5/xhtml_epub2_segments.rb
@@ -124,8 +124,8 @@ WOK
@@seg_name,@@seg_name_xhtml=[],[]
@@seg_url=@@fn=@@get_hash_to=@@get_hash_fn=''
@@loop_count=@@seg_total=@@tracker=0
- @@is4=@@is3=@@is2=@@is1=0
- @@heading1=@@heading2=@@heading3=@@heading4=0
+ @@is4=@@is3=@@is2=@@is1=@@is0=0
+ @@heading0=@@heading1=@@heading2=@@heading3=@@heading4=0
@@seg[:headings],@@seg[:main],@@seg[:idx],@@seg[:tail],@@seg_subtoc_array,@@seg_endnotes_array,@@seg[:endnote_all]=Array.new(7){[]}
@@seg[:heading_endnotes]=''
@@tablehead,@@number_of_cols=0,0
@@ -155,7 +155,7 @@ WOK
protected
def articles(data)
tracking,newfile=0,0
- @@is4=@@is3=@@is2=@@is1=0
+ @@is4=@@is3=@@is2=@@is1=@@is0=0
printed_endnote_seg='n'
idx_xhtml=nil
if @md.book_idx
@@ -196,35 +196,38 @@ WOK
#end
if (dob.is==:heading \
|| dob.is==:heading_insert) \
- and dob.ln==4
- if dob.ocn==0
- @@heading4=dob.obj
- else @@heading4=dob.obj
- end
+ && dob.ln==4
+ @@heading4=dob.obj
@@is4=newfile=1
end
if (dob.is==:heading \
|| dob.is==:heading_insert) \
- and dob.ln==3
+ && dob.ln==3
@@heading3=dob.obj
@@is4,@@is3=0,1
end
if (dob.is==:heading \
|| dob.is==:heading_insert) \
- and dob.ln==2
+ && dob.ln==2
@@heading2=dob.obj
@@is4,@@is3,@@is2=0,0,1
end
if (dob.is==:heading \
|| dob.is==:heading_insert) \
- and dob.ln==1
+ && dob.ln==1
@@heading1=dob.obj
@@is4,@@is3,@@is2,@@is1=0,0,0,1
end
- if (@@is1 && !@@is2 && !@@is3 && !@@is4)
+ if (dob.is==:heading \
+ || dob.is==:heading_insert) \
+ && dob.ln==0
+ @@heading0=dob.obj
+ @@is4,@@is3,@@is2,@@is1,@@is0=0,0,0,0,1
+ end
+ if (@@is0 && !@@is1 && !@@is2 && !@@is3 && !@@is4)
if not (dob.is==:heading \
|| dob.is==:heading_insert) \
- and dob.ln==1
+ && dob.ln==0
$_ #; check
end
end
@@ -235,7 +238,7 @@ WOK
newfile=0
if (dob.is==:heading \
|| dob.is==:heading_insert) \
- and dob.ln==4
+ && dob.ln==4
if tracking != 0
SiSU_XHTML_EPUB2_Seg::Seg.new(@md).tail
segfilename="#{dir_epub_cont}/#{@@seg_name_xhtml[tracking-1]}#{Sfx[:epub_xhtml]}"
@@ -275,8 +278,8 @@ WOK
end
if (dob.is==:heading \
|| dob.is==:heading_insert) \
- and dob.ln==4 \
- and dob.name
+ && dob.ln==4 \
+ && dob.name
@@get_hash_to=dob.name
@@get_hash_fn=dob.name
end
@@ -302,15 +305,19 @@ WOK
def head(dob)
clean=/<!.*?!>|<:.*?>$/
@p_num ||= ''
- if @@is1==1
+ if @@is0==1
if defined? @md.creator.author \
and @md.creator.author
@author=%{<b>#{@md.creator.author}</b>\n}
end
- 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_XHTML_EPUB2_Format::ParagraphNumber.new(@md,ocn)
+ @p_num=SiSU_XHTML_EPUB2_Format::ParagraphNumber.new(@md,dob.ocn)
+ txt_obj={ txt: @@heading0, ocn_display: @p_num.ocn_display }
+ format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,txt_obj)
+ @@seg[:headings] << format_seg.title_heading0.gsub(clean,'')
+ @@heading0=@@heading0.gsub(/#{$ep[:hsp]}<a name="-[\d*+]+" href="#_[\d*+]+">#{$ep[:hsp]}<sup>[\d*+]+<\/sup>#{$ep[:hsp]}<\/a>/,'')
+ end
+ if @@is1==1
+ @p_num=SiSU_XHTML_EPUB2_Format::ParagraphNumber.new(@md,dob.ocn)
txt_obj={ txt: @@heading1, ocn_display: @p_num.ocn_display }
format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,txt_obj)
@@seg[:headings] << format_seg.title_heading1.gsub(clean,'')
@@ -318,10 +325,7 @@ WOK
end
if @@is2==1
heading2=@@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_XHTML_EPUB2_Format::ParagraphNumber.new(@md,ocn)
+ @p_num=SiSU_XHTML_EPUB2_Format::ParagraphNumber.new(@md,dob.ocn)
txt_obj={ txt: heading2, ocn_display: @p_num.ocn_display }
format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,txt_obj)
@@seg[:headings] << format_seg.title_heading2.gsub(clean,'')
@@ -329,10 +333,7 @@ WOK
end
if @@is3==1
heading3=@@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_XHTML_EPUB2_Format::ParagraphNumber.new(@md,ocn)
+ @p_num=SiSU_XHTML_EPUB2_Format::ParagraphNumber.new(@md,dob.ocn)
txt_obj={ txt: heading3, ocn_display: @p_num.ocn_display }
format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,txt_obj)
@@seg[:headings] << format_seg.title_heading3.gsub(clean,'')
@@ -340,10 +341,7 @@ WOK
end
if @@is4==1
heading4=@@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_XHTML_EPUB2_Format::ParagraphNumber.new(@md,ocn)
+ @p_num=SiSU_XHTML_EPUB2_Format::ParagraphNumber.new(@md,dob.ocn)
txt_obj={ txt: heading4, ocn_display: @p_num.ocn_display }
format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,txt_obj)
@@seg[:headings] << format_seg.title_heading4.gsub(clean,'')