From 90ad666b942b965394f3dcb461177a52a25f90cd Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Thu, 18 Aug 2011 23:14:00 -0400 Subject: v3: epub, param, (defaults) epub tuning * include levels A - C as individual sections (xhtml file with consistent opf & ncx) * sync ncx with sisu internal structural logic (correct depth, include level A, place sisu toc) --- lib/sisu/v3/epub_segments.rb | 70 ++++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 28 deletions(-) (limited to 'lib/sisu/v3/epub_segments.rb') diff --git a/lib/sisu/v3/epub_segments.rb b/lib/sisu/v3/epub_segments.rb index 23af70f7..f110dfe4 100644 --- a/lib/sisu/v3/epub_segments.rb +++ b/lib/sisu/v3/epub_segments.rb @@ -168,7 +168,8 @@ WOK @@seg[:heading_idx]='' end data.each do |dob| - if (dob.is=='heading' or dob.is=='heading_insert') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln==4 @@seg_name << dob.name seg_name=dob.name @@ -193,7 +194,8 @@ WOK # # end # #end #end - if (dob.is=='heading' or dob.is=='heading_insert') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln==4 if dob.ocn==0 @@heading4=dob.obj @@ -201,23 +203,27 @@ WOK end @@is4=newfile=1 end - if (dob.is=='heading' or dob.is=='heading_insert') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln==3 @@heading3=dob.obj @@is4,@@is3=0,1 end - if (dob.is=='heading' or dob.is=='heading_insert') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln==2 @@heading2=dob.obj @@is4,@@is3,@@is2=0,0,1 end - if (dob.is=='heading' or dob.is=='heading_insert') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln==1 @@heading1=dob.obj @@is4,@@is3,@@is2,@@is1=0,0,0,1 end if (@@is1 && !@@is2 && !@@is3 && !@@is4) - if not (dob.is=='heading' or dob.is=='heading_insert') \ + if not (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln==1 head1=$_ #; check end @@ -227,7 +233,8 @@ WOK if newfile==1 \ or dob.obj =~/^#{Mx[:br_endnotes]}|^#{Mx[:br_eof]}/ newfile=0 - if (dob.is=='heading' or dob.is=='heading_insert') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln==4 if tracking != 0 Seg.new(@md).tail @@ -266,8 +273,13 @@ WOK end tracking=tracking+1 end - @@get_hash_to=dob.name if (dob.is=='heading' or dob.is=='heading_insert') and dob.ln==4 and dob.name - @@get_hash_fn=dob.name if (dob.is=='heading' or dob.is=='heading_insert') and dob.ln==4 and dob.name + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ + and dob.ln==4 \ + and dob.name + @@get_hash_to=dob.name + @@get_hash_fn=dob.name + end if dob.obj.class==String markup(dob) elsif dob.obj.class==Array @@ -288,9 +300,9 @@ WOK format_head_seg=SiSU_EPUB_Format::Head_seg.new(@md) if dob.is=='heading' \ and dob.ln =~/^[1-6]/ - if @@tracker < @@seg_total-1; @@seg[:dot_nav]=format_head_seg.dot_control_pre_next - else @@seg[:dot_nav]=format_head_seg.dot_control_pre - end + @@seg[:dot_nav]= (@@tracker < @@seg_total-1) \ + ? format_head_seg.dot_control_pre_next \ + : format_head_seg.dot_control_pre end @@seg[:title]=format_head_seg.head end @@ -298,9 +310,9 @@ WOK clean=/|<:.*?>$/ format_head_seg=SiSU_EPUB_Format::Head_seg.new(@md) if @@tracker < @@seg_total-1 - if @@tracker==0; @@segtocband=format_head_seg.toc_next2 #if format_head_seg.toc_next2 - else @@segtocband=format_head_seg.toc_pre_next2 #if format_head_seg.toc_pre_next2 - end + @@segtocband=(@@tracker==0) \ + ? format_head_seg.toc_next2 \ + : format_head_seg.toc_pre_next2 else @@segtocband=format_head_seg.toc_pre2 #if format_head_seg.toc_pre2 end @p_num ||= '' @@ -377,11 +389,9 @@ WOK and dob.indent =~/[0-9]/ \ and dob.hang =~/[0-9]/ if dob.bullet_ - if dob.indent =~/[1-9]/ - sto.format('li',"i#{dob.indent}") - else - sto.format('li','bullet') - end + (dob.indent =~/[1-9]/) \ + ? sto.format('li',"i#{dob.indent}") \ + : sto.format('li','bullet') elsif dob.indent == dob.hang sto.format('p',"i#{dob.indent}") elsif dob.indent != dob.hang @@ -409,12 +419,15 @@ WOK and (not dob.ocn or dob.ocn.to_s.empty?) format_seg=SiSU_EPUB_Format::Format_seg.new(@md,dob) end - if (dob.is=='heading' or dob.is=='heading_insert' or dob.is=='para') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert' \ + || dob.is=='para') \ and dob.note_ #dob.obj =~/ \n} @@seg[:main] << dob_xhtml @@ -453,7 +466,8 @@ WOK data.each do |dob| dob.obj.gsub!(/(.+?)<\/a>/mi,'\1') if @md.flag_auto_endnotes - if (dob.is=='heading' or dob.is=='heading_insert') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln.to_s =~/^[1234]/ \ and not @@fn.to_s.empty? @@seg_endnotes[@@fn]=[] @@ -461,7 +475,8 @@ WOK @@seg_endnotes_array=[] if dob.ln==4 @@fns_previous=@md.fns if dob.ln==4 and dob.name =~/^meta/ end - if (dob.is=='heading' or dob.is=='heading_insert') \ + if (dob.is=='heading' \ + || dob.is=='heading_insert') \ and dob.ln==4 #% EXTRACTION OF SUB-TOCs & SEGMENT NAME, after EXTRACTION OF ENDNOTES & SUB-TOCs @@seg_subtoc[@@fn]=@@seg_subtoc_array @@seg_subtoc_array=[] @@ -469,10 +484,9 @@ WOK and dob.obj @@fn=dob.name else - if dob.name =~/\S+/ - @@fn=dob.name - else @@fn='' - end + @@fn=(dob.name =~/\S+/) \ + ? dob.name \ + : '' end end end -- cgit v1.2.3