From f74de438d030629eec66eeb1f7275ed62bc5c370 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 1 Jul 2014 00:54:37 -0400 Subject: v5 v6: ao, segment numbering, fixed width, leading zeros * alphanumeric sorting --- lib/sisu/v6/ao_doc_str.rb | 53 +++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 22 deletions(-) (limited to 'lib/sisu/v6/ao_doc_str.rb') diff --git a/lib/sisu/v6/ao_doc_str.rb b/lib/sisu/v6/ao_doc_str.rb index 0c07eee7..2a96abb7 100644 --- a/lib/sisu/v6/ao_doc_str.rb +++ b/lib/sisu/v6/ao_doc_str.rb @@ -506,8 +506,9 @@ module SiSU_AO_DocumentStructureExtract tags: tags, quote: quotes?, } - SiSU_AO_DocumentStructure::ObjectPara.new.paragraph(h) + t_o=SiSU_AO_DocumentStructure::ObjectPara.new.paragraph(h) end + t_o=SiSU_AO_DocumentStructureExtract::Structure.new(@md).structure_markup(t_o) #must happen earlier, node info etc. require end elsif @@flag[:code]==:off if t_o =~/^(?:code(?:\.[a-z][0-9a-z_]+)?\{|```[ ]+code(?:\.[a-z][0-9a-z_]+)?)/ @@ -1146,66 +1147,74 @@ module SiSU_AO_DocumentStructureExtract end end class Structure # this must happen early - def initialize(md,dob) - @md,@dob=md,dob + def initialize(md) + @md=md end - def structure - structure_markup - @dob + def structure(data) + data.compact.each do |dob| + structure_markup(dob) + end end - def structure_markup #build structure where structure provided only in meta header - @dob=if @dob.is==:para \ - && (((@dob.hang !~/[1-9]/) && (@dob.indent !~/[1-9]/)) \ - || (@dob.hang != @dob.indent)) \ - and not @dob.bullet_ - @dob=case @dob.obj + def structure_markup(dob) #build structure where structure provided only in meta header + dob=if dob.is==:para \ + && (((dob.hang !~/[1-9]/) && (dob.indent !~/[1-9]/)) \ + || (dob.hang != dob.indent)) \ + and not dob.bullet_ + dob=case dob.obj when /^#{@md.lv0}/ h={ + is: :heading, lv: 'A', ln: 0, } - SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,@dob) + SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,dob) when /^#{@md.lv1}/ h={ + is: :heading, lv: 'B', ln: 1, } - SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,@dob) + SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,dob) when /^#{@md.lv2}/ h={ + is: :heading, lv: 'C', ln: 2, } - SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,@dob) + SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,dob) when /^#{@md.lv3}/ h={ + is: :heading, lv: 'D', ln: 3, } - SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,@dob) + SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,dob) when /^#{@md.lv4}/ h={ + is: :heading, lv: '1', ln: 4, } - SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,@dob) + SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,dob) when /^#{@md.lv5}/ h={ + is: :heading, lv: '2', ln: 5, } - SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,@dob) + SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,dob) when /^#{@md.lv6}/ h={ + is: :heading, lv: '3', ln: 6, } - SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,@dob) - else @dob + SiSU_AO_DocumentStructure::ObjectHeading.new.heading(h,dob) + else dob end - else @dob + else dob end - @dob + dob end end class OCN -- cgit v1.2.3