diff options
| author | Ralph Amissah <ralph@amissah.com> | 2010-04-30 23:16:28 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2010-05-01 01:40:51 -0400 | 
| commit | 90c65af1050b7ef8027884fe24ce23c9511468c1 (patch) | |
| tree | 67d50b08c3743479c359c58e6f94399bfced2543 | |
| parent | texpdf, tell file being processed (diff) | |
param_identify_markup, identify version 2 markup
| -rw-r--r-- | lib/sisu/v2/dal_doc_str.rb | 4 | ||||
| -rw-r--r-- | lib/sisu/v2/dal_substitutions_and_insertions.rb | 2 | ||||
| -rw-r--r-- | lib/sisu/v2/param.rb | 33 | ||||
| -rw-r--r-- | lib/sisu/v2/param_identify_markup.rb | 61 | 
4 files changed, 64 insertions, 36 deletions
| diff --git a/lib/sisu/v2/dal_doc_str.rb b/lib/sisu/v2/dal_doc_str.rb index dc9a55b7..46ae8d3c 100644 --- a/lib/sisu/v2/dal_doc_str.rb +++ b/lib/sisu/v2/dal_doc_str.rb @@ -728,7 +728,7 @@ module SiSU_document_structure_extract        @dob      end      def structure_markup_normalize                         #needs a bit of thinking -      dob=if @md.markup_version.to_f < 0.38                #%convert internal representation, consider making 0.38 structure default ([A-C1-6] instead of [1-9]), requires downstream changes +      dob=if @md.markup_version.determined < 0.38                #%convert internal representation, consider making 0.38 structure default ([A-C1-6] instead of [1-9]), requires downstream changes          @dob.gsub!(/^[456]~/,'!_')          @dob.gsub!(/^3~(\S+)/,"#{Mx[:lv_o]}6:\\1#{Mx[:lv_c]}")          @dob.gsub!(/^3~\s+/,"#{Mx[:lv_o]}6:#{Mx[:lv_c]}") @@ -756,7 +756,7 @@ module SiSU_document_structure_extract        end      end      def structure_marks -      t_o=if @md.markup_version.to_f < 0.38 +      t_o=if @md.markup_version.determined < 0.38          @t_o.gsub!(/^1~(\S+)/,"#{Mx[:lv_o]}1:\\1#{Mx[:lv_c]}")          @t_o.gsub!(/^1~\s+/,"#{Mx[:lv_o]}1:#{Mx[:lv_c]}")          @t_o.gsub!(/^2~(\S+)/,"#{Mx[:lv_o]}2:\\1#{Mx[:lv_c]}") diff --git a/lib/sisu/v2/dal_substitutions_and_insertions.rb b/lib/sisu/v2/dal_substitutions_and_insertions.rb index c699a17c..e1326232 100644 --- a/lib/sisu/v2/dal_substitutions_and_insertions.rb +++ b/lib/sisu/v2/dal_substitutions_and_insertions.rb @@ -136,7 +136,7 @@ module SiSU_substitute_and_insert          data_expand.compact!        end        data_expand.each do |para| -        para=if @md.markup_version.to_f >= 0.38 +        para=if @md.markup_version.determined >= 0.38            SiSU_document_structure_extract::Structure.new(@md,para).structure_markup_normalize          else            SiSU_document_structure_extract::Structure.new(@md,para).structure_marks diff --git a/lib/sisu/v2/param.rb b/lib/sisu/v2/param.rb index fc24501a..c2ee0737 100644 --- a/lib/sisu/v2/param.rb +++ b/lib/sisu/v2/param.rb @@ -870,16 +870,16 @@ module SiSU_Param          fns_array=@data.dup          skip unless fns_array                                                    # consider          @markup_version=SiSU_Markup_type::Markup_identify.new(fns_array,@opt).markup_version?                          #% determine markup version -        if fns_array[0] =~ /^(?:% )?(?:SiSU\s+(?:master\s+)?[\d.]*|sisu-[\d.]+)$/                                      #check markup and markup version -          if fns_array[0] =~ /^(?:% )?(?:SiSU\s+(?:master\s+)?|sisu-)[\d.]+$/                                          #check markup and markup version -            @markup_version_declared=fns_array[0].match(/^(?:% )?(?:SiSU\s+(?:master\s+)?|sisu-)([\d.]+)$/)[1] -            sm_a,sm_b,sm_c=fns_array[0].match(/^(?:% )?(?:SiSU\s+(?:master\s+)?|sisu-)([0-9]+)?(?:\.([0-9]+))?(?:\.([0-9]+))?$/)[1..3] +        if fns_array[0] =~ /^(?:%\s+)?(?:SiSU\s+(?:master\s+)?[\d.]*|sisu-[\d.]+)$/                                      #check markup and markup version +          if fns_array[0] =~ /^(?:%\s+)?(?:SiSU\s+(?:master\s+)?|sisu-)[\d.]+$/                                          #check markup and markup version +            @markup_version_declared=fns_array[0].match(/^(?:%\s+)?(?:SiSU\s+(?:master\s+)?|sisu-)([\d.]+)$/)[1] +            sm_a,sm_b,sm_c=fns_array[0].match(/^(?:%\s+)?(?:SiSU\s+(?:master\s+)?|sisu-)([0-9]+)?(?:\.([0-9]+))?(?:\.([0-9]+))?$/)[1..3]              sm_c ||=0              sv=(@cmd =~/[VMv]/) ? ("SiSU version (#{@sisu_version[:version]})") : ''              s_a,s_b,s_c=@sisu_version[:version].match(/^([0-9]+)?(?:\.([0-9]+))?(?:\.([0-9]+))?(?:\-\S+)?$/)[1..3] -            tell=(@markup_version_declared.to_f==@markup_version.to_f) \ -            ? SiSU_Screen::Ansi.new(@cmd,"Markup version (#{@markup_version})",sv) \ -            : SiSU_Screen::Ansi.new(@cmd,"Markup version declared (#{@markup_version_declared}), determined (#{@markup_version})",sv) +            tell=(@markup_version_declared.to_f==@markup_version.determined) \ +            ? SiSU_Screen::Ansi.new(@cmd,"Markup version (#{@markup_version.series} version #{@markup_version.determined})",sv) \ +            : SiSU_Screen::Ansi.new(@cmd,"Markup version declared (#{@markup_version_declared}), determined (#{@markup_version.series} version #{@markup_version.determined})",sv)              ok=if s_a.to_i > sm_a.to_i                true              elsif s_a.to_i == sm_a.to_i \ @@ -894,7 +894,7 @@ module SiSU_Param              if ok                tell.txt_green if @cmd =~/[vVM]/              else -              tell=SiSU_Screen::Ansi.new(@cmd,"Warning: markup version determined (#{@markup_version}) or markup version declared (#{@markup_version_declared}) is newer than SiSU version (#{@sisu_version[:version]})") +              tell=SiSU_Screen::Ansi.new(@cmd,"Warning: markup version determined (#{@markup_version.determined}) or markup version declared (#{@markup_version_declared}) is newer than SiSU version (#{@sisu_version[:version]})")                tell.warn unless @cmd =~/q/              end            else @@ -902,7 +902,12 @@ module SiSU_Param              tell.warn if @cmd =~/[VM]/            end          else -          tell=SiSU_Screen::Ansi.new(@cmd,'SiSU filetype indicator not provided') +          mv=if defined? @markup_version.determined and not @markup_version.determined.nil? +            x=@markup_version.determined +            "markup version determined #{x}" +          else '' +          end +          tell=SiSU_Screen::Ansi.new(@cmd,'SiSU filetype indicator not provided',mv)            tell.warn unless @cmd =~/q/          end          @code_flag=false @@ -1017,12 +1022,12 @@ module SiSU_Param                if para=~/^:?A~/                  if @markup.nil? \                  or @markup.empty? -                  @markup=@markup_version.to_s -                elsif @markup !~/0\.38/; @markup=@markup.strip + "; #{@markup_version}" +                  @markup=@markup_version.determined.to_s +                elsif @markup !~/0\.38/; @markup=@markup.strip + "; #{@markup_version.determined}"                  end                end -              if (para=~/^:?A~/ and @markup_version >= 0.38) \ -              or (para=~/^1~/ and @markup_version < 0.38) +              if (para=~/^:?A~/ and @markup_version.determined >= 0.38) \ +              or (para=~/^1~/ and @markup_version.determined < 0.38)                  if @title.nil?                    @title=para[/^:?[A1]~\S*(.+)$/m,1]                    @html_title=@title.gsub(/(<p>|<p \/>|<br>|<br \/>)/,'') @@ -1130,7 +1135,7 @@ module SiSU_Param             end             @topic_register_array.sort!          end -        if @markup_version.to_f >= 0.38 #convert values in headers to internal representation +        if @markup_version.determined >= 0.38 #convert values in headers to internal representation            translated=[]            translate_list=[@pagenew,@pagebreak,@num_top,@toc_lev_limit]            translate_list.each do |t| diff --git a/lib/sisu/v2/param_identify_markup.rb b/lib/sisu/v2/param_identify_markup.rb index 0f0f40a0..97b6d888 100644 --- a/lib/sisu/v2/param_identify_markup.rb +++ b/lib/sisu/v2/param_identify_markup.rb @@ -60,85 +60,108 @@  =end  module SiSU_Markup_type    class Markup_identify -    @@fns,@@version_determined,@@version_declared,@@declared_doc_type='','','','[text?]' -    attr_accessor :version_determined,:version_declared,:declared_doc_type +    @@version={} +    @@fns,@@version[:determined],@@version[:declared],@@declared_doc_type='','','','[text?]' +    attr_accessor :version,:declared_doc_type      def initialize(content,opt)        @cont,@opt=content,opt      end      def identify -      @version_determined,@version_declared,@declared_doc_type=@@version_determined,@@version_declared,@@declared_doc_type +      @version,@declared_doc_type=@@version,@@declared_doc_type        if @opt.fns != @@fns          if @cont[0] =~ /^(?:%\s+)?SiSU\s+(text|master|insert)\s+([0-9](?:\.[0-9]+){1,2})/ \          or @cont[0] =~ /^(?:%\s+)?sisu-([0-9](?:\.[0-9]+){1,2})/ -          @declared_doc_type,@version_declared=$1,$2 +          @declared_doc_type,@version[:declared]=$1,$2          elsif @cont[0] =~ /^(?:%\s+)?SiSU\s+([0-9](?:\.[0-9]+){1,2})/ \          or @cont[0] =~ /^(?:%\s+)?sisu-([0-9](?:\.[0-9]+){1,2})/ -          @version_declared=$1 +          @version[:declared]=$1          end -        @flag_66,@flag_57,@flag_38=false,false,false +        @flag_2_0,@flag_66,@flag_57,@flag_38=false,false,false,false          @cont.each_with_index do |y,i|            if y =~/^(?:0\{?~links?|@links?:)\s/              links=unless y =~/\{.+?\}\S+/; oldlinks=' (pre 0.20.4 header links)'              else ' (post 0.20.4 header links)'              end            end +          if y =~/^@make:|^@classify|^\s\s?:\S+?:\s+\S/ +            version=2.0.to_f +            @version[:determined]=version +            @flag_2_0=true +            break +          end            unless @flag_38              if y =~/^:?A~/ -              version=0.38 -              @version_determined=version +              version=0.38.to_f +              @version[:determined]=version                @flag_38=true              end            end            if @flag_38              if @flag_69 \              or y =~/^=\{.+?\}\s*$/ -              version=0.69 +              version=0.69.to_f                @flag_69=true -              @version_determined=version +              @version[:determined]=version                break              end              if @flag_66 \              or y =~/[:;]\{.+?\}[:;][a-z+]/ -              version='0.66' +              version=0.66.to_f                @flag_66=true -              @version_determined=version +              @version[:determined]=version                break              end            end          end          @flag_57,@flag_38=false,false -        unless @flag_66 or @flag_69 +        unless @flag_2_0 \ +        or @flag_66 \ +        or @flag_69            @cont.each_with_index do |y,i|              if @flag_57 \              or y =~/^:?A~\?? @title/ -              @version_determined=0.57 +              @version[:determined]=0.57.to_f                @flag_57=true                break              end              if @flag_38 \              or y =~/^:?A~/ -              @version_determined=0.38 +              @version[:determined]=0.38.to_f                @flag_38=true                break if i >= 200                if y =~ /(?:~{\*+|~\[\*|~\[\+)\s/ -                @version_determined=0.42 #0.38 can safely be treated as 0.42 +                @version[:determined]=0.42 #0.38 can safely be treated as 0.42                  break                end              end              if y =~/^0~/ \              and not @flag_38 -              @version_determined=0.16 +              @version[:determined]=0.16.to_f                break              end            end          end          @@fns=@opt.fns -        @@version_determined,@@version_declared,@@declared_doc_type=@version_determined,@version_declared,@declared_doc_type +        @@version,@@declared_doc_type=@version,@declared_doc_type        end        self      end      def markup_version? -      identify.version_determined.to_f +      def determined +        identify.version[:determined].to_f +      end +      def series +        s=case identify.version[:determined].to_s +        when /^[01]\./; '1.0' +        when /^[2]\./; '2.0' +        else '2.0' +        end +        "series #{s}" +      end +      def declared +        identify.version[:declared].to_f +      end +      self      end    end  end | 
