diff options
| -rw-r--r-- | data/doc/sisu/CHANGELOG_v5 | 3 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_doc_str.rb | 373 | 
2 files changed, 218 insertions, 158 deletions
| diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5 index de64dce4..f3812373 100644 --- a/data/doc/sisu/CHANGELOG_v5 +++ b/data/doc/sisu/CHANGELOG_v5 @@ -30,6 +30,9 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_5.1.0.orig.tar.xz    sisu_5.1.0.orig.tar.xz    sisu_5.1.0-1.dsc +* dal_doc_str, changes related to headings provided for document structure +  without ocn, testing required +  %% 5.0.25.orig.tar.xz (2013-11-08:44/5)  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_5.0.25  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_5.0.25-1 diff --git a/lib/sisu/v5/dal_doc_str.rb b/lib/sisu/v5/dal_doc_str.rb index 203bc988..7a89dfb1 100644 --- a/lib/sisu/v5/dal_doc_str.rb +++ b/lib/sisu/v5/dal_doc_str.rb @@ -868,7 +868,6 @@ has incorrect level and/or parent level}          && (dob.of !=:comment \          && dob.of !=:layout \          && dob.of !=:meta) \ -        && dob.obj !~/#{Mx[:pa_non_object_no_heading]}|#{Mx[:pa_non_object_dummy_heading]}/ \          && dob.ocn_            #dob.ln now is determined, and set earlier, check how best to remove this -->            if dob.is==:heading @@ -884,181 +883,239 @@ has incorrect level and/or parent level}               when '6'; 9               end            end -          if not dob.obj =~/<:#>|~#|-#/ \ -          or not dob.toc_                                  # fix this no longer in dob.obj +          if not dob.obj =~/~#|-#/              ocn+=1 -            if dob.is==:heading \ -            and (ln.to_s =~/^[1-9]/ \ -            or ln.to_s =~@md.lv1 \ -            or ln.to_s =~@md.lv2 \ -            or ln.to_s =~@md.lv3 \ -            or ln.to_s =~@md.lv4 \ -            or ln.to_s =~@md.lv5 \ -            or ln.to_s =~@md.lv6) +          end +          if dob.is==:heading \ +          and (ln.to_s =~/^[1-9]/ \ +          or ln.to_s =~@md.lv1 \ +          or ln.to_s =~@md.lv2 \ +          or ln.to_s =~@md.lv3 \ +          or ln.to_s =~@md.lv4 \ +          or ln.to_s =~@md.lv5 \ +          or ln.to_s =~@md.lv6) +            if not dob.obj =~/~#|-#/                ocnh+=1 -              if ln==1 \ -              or ln=~@md.lv1; ocnh1+=1                     #heading +            end +            if ln==1 \ +            or ln=~@md.lv1 +              if not dob.obj =~/~#|-#/ +                ocn_flag=true +                ocnh1+=1                     #heading                  node1="1:#{ocnh1};#{ocn}" -                document_structure_check_info(node1,node0) -                @collapsed_lv1=1 -                collapsed_level=@collapsed_lv1 -                node,ocn_sp,parent=node1,"h#{ocnh}",node0 #FIX -              elsif ln==2 \ -              or ln=~@md.lv2; ocnh2+=1 +              else +                ocn_flag=false +                node1="1:0;0" +              end +              document_structure_check_info(node1,node0) +              @collapsed_lv1=1 +              collapsed_level=@collapsed_lv1 +              node,ocn_sp,parent=node1,"h#{ocnh}",node0 #FIX +            elsif ln==2 \ +            or ln=~@md.lv2 +              if not dob.obj =~/~#|-#/ +                ocn_flag=true +                ocnh2+=1                  node2="2:#{ocnh2};#{ocn}" -                parent=if node1 -                  document_structure_check_info(node2,node1) -                  @collapsed_lv2=@collapsed_lv1+1 -                  node1 -                else -                  document_structure_check_info(node2,node0,:error) -                  node0 -                end -                collapsed_level=@collapsed_lv2 -                node,ocn_sp=node2,"h#{ocnh}" -              elsif ln==3 \ -              or ln=~@md.lv3; ocnh3+=1 +              else +                ocn_flag=false +                node2="2:0;0" +              end +              parent=if node1 +                document_structure_check_info(node2,node1) +                @collapsed_lv2=@collapsed_lv1+1 +                node1 +              else +                document_structure_check_info(node2,node0,:error) +                node0 +              end +              collapsed_level=@collapsed_lv2 +              node,ocn_sp=node2,"h#{ocnh}" +            elsif ln==3 \ +            or ln=~@md.lv3 +              if not dob.obj =~/~#|-#/ +                ocn_flag=true +                ocnh3+=1                  node3="3:#{ocnh3};#{ocn}" -                parent=if node2 -                  document_structure_check_info(node3,node2) -                  @collapsed_lv3=@collapsed_lv2+1 -                  node2 -                elsif node1 -                  warning_incorrect_parent_level_or_level(dob.obj) -                  puts %{parent is :A~ & this level #{dob.lv} +              else +                ocn_flag=false +                node3="3:0;0" +              end +              parent=if node2 +                document_structure_check_info(node3,node2) +                @collapsed_lv3=@collapsed_lv2+1 +                node2 +              elsif node1 +                warning_incorrect_parent_level_or_level(dob.obj) +                puts %{parent is :A~ & this level #{dob.lv}  either parent should be level :B~  or this level should be level :B~ rather than #{dob.lv}} -                  document_structure_check_info(node3,node1,:error) -                  @collapsed_lv3=@collapsed_lv1+1 -                  node1 -                else -                  document_structure_check_info(node3,node0,:error) -                  warning_incorrect_parent_level_or_level(dob.obj) -                  node0 -                end -                collapsed_level=@collapsed_lv3 -                node,ocn_sp=node3,"h#{ocnh}" -              elsif ln==4 \ -              or ln=~@md.lv4; ocnh4+=1 +                document_structure_check_info(node3,node1,:error) +                @collapsed_lv3=@collapsed_lv1+1 +                node1 +              else +                document_structure_check_info(node3,node0,:error) +                warning_incorrect_parent_level_or_level(dob.obj) +                node0 +              end +              collapsed_level=@collapsed_lv3 +              node,ocn_sp=node3,"h#{ocnh}" +            elsif ln==4 \ +            or ln=~@md.lv4 +              if not dob.obj =~/~#|-#/ +                ocn_flag=true +                ocnh4+=1                  node4="4:#{ocnh4};#{ocn}" -                parent=if node3 -                  document_structure_check_info(node4,node3) -                  @collapsed_lv4=@collapsed_lv3+1 -                  node3 -                elsif node2 -                  document_structure_check_info(node4,node2) -                  @collapsed_lv4=@collapsed_lv2+1 -                  node2 -                elsif node1 -                  document_structure_check_info(node4,node1) -                  @collapsed_lv4=@collapsed_lv1+1 -                  node1 -                else -                  warning_incorrect_parent_level_or_level(dob.obj) -                  document_structure_check_info(node4,node0,:error) -                  node0 -                end -                collapsed_level=@collapsed_lv4 -                node,ocn_sp=node4,"h#{ocnh}" -              elsif ln==5 \ -              or ln=~@md.lv5; ocnh5+=1 +              else +                ocn_flag=false +                node4="4:0;0" +              end +              parent=if node3 +                document_structure_check_info(node4,node3) +                @collapsed_lv4=@collapsed_lv3+1 +                node3 +              elsif node2 +                document_structure_check_info(node4,node2) +                @collapsed_lv4=@collapsed_lv2+1 +                node2 +              elsif node1 +                document_structure_check_info(node4,node1) +                @collapsed_lv4=@collapsed_lv1+1 +                node1 +              else +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node4,node0,:error) +                node0 +              end +              collapsed_level=@collapsed_lv4 +              node,ocn_sp=node4,"h#{ocnh}" +            elsif ln==5 \ +            or ln=~@md.lv5 +              if not dob.obj =~/~#|-#/ +                ocn_flag=true +                ocnh5+=1                  node5="5:#{ocnh5};#{ocn}" -                parent=if node4 -                  document_structure_check_info(node5,node4) -                  @collapsed_lv5=@collapsed_lv4+1 -                  node4 -                elsif node3 -                  warning_incorrect_parent_level_or_level(dob.obj) -                  document_structure_check_info(node5,node3,:error) -                  @collapsed_lv5=@collapsed_lv3+1 -                  node3 -                elsif node2 -                  warning_incorrect_parent_level_or_level(dob.obj) -                  document_structure_check_info(node5,node2,:error) -                  @collapsed_lv5=@collapsed_lv2+1 -                  node2 -                elsif node1 -                  warning_incorrect_parent_level_or_level(dob.obj) -                  document_structure_check_info(node5,node1,:error) -                  @collapsed_lv5=@collapsed_lv1+1 -                  node1 -                else -                  document_structure_check_info(node5,node0,:error) -                  node0 -                end -                collapsed_level=@collapsed_lv5 -                node,ocn_sp=node5,"h#{ocnh}" -              elsif ln==6 \ -              or ln=~@md.lv6; ocnh6+=1 +              else +                ocn_flag=false +                node5="5:0;0" +              end +              parent=if node4 +                document_structure_check_info(node5,node4) +                @collapsed_lv5=@collapsed_lv4+1 +                node4 +              elsif node3 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node5,node3,:error) +                @collapsed_lv5=@collapsed_lv3+1 +                node3 +              elsif node2 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node5,node2,:error) +                @collapsed_lv5=@collapsed_lv2+1 +                node2 +              elsif node1 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node5,node1,:error) +                @collapsed_lv5=@collapsed_lv1+1 +                node1 +              else +                document_structure_check_info(node5,node0,:error) +                node0 +              end +              collapsed_level=@collapsed_lv5 +              node,ocn_sp=node5,"h#{ocnh}" +            elsif ln==6 \ +            or ln=~@md.lv6 +              if not dob.obj =~/~#|-#/ +                ocn_flag=true +                ocnh6+=1                  node6="6:#{ocnh6};#{ocn}" -                parent=if node5 -                  document_structure_check_info(node6,node5) -                  @collapsed_lv6=@collapsed_lv5+1 -                  node5 -                elsif node4 -                  warning_incorrect_parent_level_or_level(dob.obj) -                  puts "parent is level 4~ & this level #{dob.lv} +              else +                ocn_flag=false +                node6="6:0;0" +              end +              parent=if node5 +                document_structure_check_info(node6,node5) +                @collapsed_lv6=@collapsed_lv5+1 +                node5 +              elsif node4 +                warning_incorrect_parent_level_or_level(dob.obj) +                puts "parent is level 4~ & this level #{dob.lv}  either parent should be level 5~  or this level should be 5~ rather #{dob.lv}" #level 6 -                  document_structure_check_info(node6,node4,:error) -                  @collapsed_lv6=@collapsed_lv4+1 -                  node4 -                elsif node3 -                  warning_incorrect_parent_level_or_level(dob.obj) -                  document_structure_check_info(node6,node3,:error) -                  @collapsed_lv6=@collapsed_lv3+1 -                  node3 -                elsif node2 -                  warning_incorrect_parent_level_or_level(dob.obj) -                  document_structure_check_info(node6,node2,:error) -                  @collapsed_lv6=@collapsed_lv2+1 -                  node2 -                elsif node1 -                  warning_incorrect_parent_level_or_level(dob.obj) -                  document_structure_check_info(node6,node1,:error) -                  @collapsed_lv6=@collapsed_lv1+1 -                  node1 -                else -                  document_structure_check_info(node6,node0,:error) -                  node0 -                end -                collapsed_level=@collapsed_lv6 -                node,ocn_sp=node6,"h#{ocnh}" +                document_structure_check_info(node6,node4,:error) +                @collapsed_lv6=@collapsed_lv4+1 +                node4 +              elsif node3 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node6,node3,:error) +                @collapsed_lv6=@collapsed_lv3+1 +                node3 +              elsif node2 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node6,node2,:error) +                @collapsed_lv6=@collapsed_lv2+1 +                node2 +              elsif node1 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node6,node1,:error) +                @collapsed_lv6=@collapsed_lv1+1 +                node1 +              else +                document_structure_check_info(node6,node0,:error) +                node0                end +              collapsed_level=@collapsed_lv6 +              node,ocn_sp=node6,"h#{ocnh}" +            end +          else +            if not dob.obj =~/~#|-#/ +              ocn_flag=true              else -              ocno+=1 -              if dob.is==:table -                ocnt+=1 -                ocn_sp,parent="t#{ocnt}",node -              elsif dob.is==:code -                ocnc+=1 -                ocn_sp,parent="c#{ocnc}",node -              elsif dob.is==:group \ -              || dob.is==:block \ -              || dob.is==:alt \ -              || dob.is==:verse -                ocng+=1 #group, poem -                ocn_sp,parent="g#{ocng}",node -              elsif dob.is==:image #check -                ocni+=1 -                ocn_sp,parent="i#{ocni}",node -              else ocnp+=1                                 #paragraph -                ocn_sp,parent="p#{ocnp}",node -              end +              ocn_flag=false              end -            if dob.is==:heading -              dob.ln,dob.node,dob.ocn,dob.odv,dob.osp,dob.parent,dob.lc=ln,node,ocn,ocn_dv,ocn_sp,parent,collapsed_level +            ocno+=1 +            if dob.is==:table +              ocnt+=1 +              ocn_sp,parent="t#{ocnt}",node +            elsif dob.is==:code +              ocnc+=1 +              ocn_sp,parent="c#{ocnc}",node +            elsif dob.is==:group \ +            || dob.is==:block \ +            || dob.is==:alt \ +            || dob.is==:verse +              ocng+=1 #group, poem +              ocn_sp,parent="g#{ocng}",node +            elsif dob.is==:image #check +              ocni+=1 +              ocn_sp,parent="i#{ocni}",node +            else ocnp+=1                                 #paragraph +              ocn_sp,parent="p#{ocnp}",node +            end +          end +          if dob.is==:heading +            if ocn_flag==true +              dob.ln,dob.node,dob.ocn,dob.ocn_,dob.odv,dob.osp,dob.parent,dob.lc=ln,node,ocn,ocn_flag,ocn_dv,ocn_sp,parent,collapsed_level              else -              if dob.of !=:meta \ -              && dob.of !=:comment \ -              && dob.of !=:layout -                dob.ocn,dob.odv,dob.osp,dob.parent=ocn,ocn_dv,ocn_sp,parent +              ocnu+=1 +              dob.obj=dob.obj.gsub(/#{Mx[:fa_o]}[~-]##{Mx[:fa_c]}/,'') if dob.obj +              ocn_dv,ocn_sp="u#{ocnu}","u#{ocnu}" +              dob.ln,dob.node,dob.ocn,dob.ocn_,dob.odv,dob.osp,dob.parent,dob.lc=ln,node,nil,ocn_flag,ocn_dv,ocn_sp,parent,collapsed_level +            end +          else +            if dob.of !=:meta \ +            && dob.of !=:comment \ +            && dob.of !=:layout +              if ocn_flag == true +                dob.ocn,dob.ocn_,dob.odv,dob.osp,dob.parent=ocn,ocn_flag,ocn_dv,ocn_sp,parent +              else +                ocnu+=1 +                dob.obj=dob.obj.gsub(/#{Mx[:fa_o]}[~-]##{Mx[:fa_c]}/,'') if dob.obj +                ocn_dv,ocn_sp="u#{ocnu}","u#{ocnu}" +                dob.ocn,dob.ocn_,dob.odv,dob.osp,dob.parent=nil,ocn_flag,ocn_dv,ocn_sp,parent                end              end -          else ocnu+=1 -            dob.obj=dob.obj.gsub(/#{Mx[:fa_o]}~##{Mx[:fa_c]}/,'') if dob.obj -            ocn_dv,ocn_sp="u#{ocnu}","u#{ocnu}" -            dob.ocn,dob.odv,dob.osp=ocn,ocn_dv,ocn_sp            end            h          elsif dob.obj=~/#{Mx[:pa_non_object_no_heading]}/ | 
