diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sisu/v0/composite.rb | 7 | ||||
| -rw-r--r-- | lib/sisu/v0/param.rb | 104 | ||||
| -rw-r--r-- | lib/sisu/v0/remote.rb | 8 | ||||
| -rw-r--r-- | lib/sisu/v0/sisupod_make.rb | 23 | 
4 files changed, 97 insertions, 45 deletions
| diff --git a/lib/sisu/v0/composite.rb b/lib/sisu/v0/composite.rb index 4768522a..ebad049e 100644 --- a/lib/sisu/v0/composite.rb +++ b/lib/sisu/v0/composite.rb @@ -148,8 +148,8 @@ module SiSU_Assemble      end      def insertion(fni,insert_array)        file={ :prepared=>[],:images=>[] } -      rgx_image=/([a-zA-Z0-9._-]+?\.(?:png|jpg|gif))/ -      #file[:prepared] << "#% Date " << "\n" +      rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ +      #rgx_image=/([a-zA-Z0-9._-]+?\.(?:png|jpg|gif))/        file[:prepared] << "\n% |#{fni}|@|^|>>ok\n"        @code_flag=false        insert_array.each do |i| @@ -202,7 +202,8 @@ module SiSU_Assemble              @@imager[image_uri] ||=[]              @@imager[image_uri] << file[:images]              file[:prepared] -          elsif loadfile =~ /\.ss[ti]$/ and FileTest.file?(loadfile) +          elsif loadfile =~ /\.ss[ti]$/ \ +          and FileTest.file?(loadfile)              insert_array=IO.readlines(loadfile,'')              file=insertion(loadfile,insert_array)              file[:prepared] diff --git a/lib/sisu/v0/param.rb b/lib/sisu/v0/param.rb index fec253d0..8a95942a 100644 --- a/lib/sisu/v0/param.rb +++ b/lib/sisu/v0/param.rb @@ -88,7 +88,8 @@ module SiSU_Param          @@fns=@fns          @@md=nil        end -      if @@md.nil? or @cmd =~/M/ #not particularly helpful, as current cycle is through output types, with files changing, only helpful if deal with a file all output types before going to next file +      if @@md.nil? \ +      or @cmd =~/M/ #not particularly helpful, as current cycle is through output types, with files changing, only helpful if deal with a file all output types before going to next file          if File.exist?(@pstorefile)            param_msg='Parameters from pstore'            retrieve_store=PStore.new(@pstorefile) @@ -127,7 +128,7 @@ module SiSU_Param          @markup=@markup_instruction #use @markup_instruction          @doc,@fn,@make_italic,@make_bold,@tag_hash,@ec={},{},{},{},{},{},{}          @flv,@lang,@seg_names,@tags,@tag_array,@tag_a,@ec[:image],@ec[:audio],@ec[:multimedia]=Array.new(9){[]} -        @rgx_image=/\{\s*(\S+?\.(?:png|jpg|gif))/ +        @rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/          @rgx_audio=/\{\s*(\S+?\.(?:mp3|ogg))/          @rgx_mm=/\{\s*(\S+?\.(?:ogg|mpeg))/ #expand and distinguish ogg          begin @@ -153,7 +154,8 @@ module SiSU_Param          @prog=SiSU_Env::Info_settings.new          @sys=SiSU_Env::System_call.new          @env=SiSU_Env::Info_env.new(@fns) #watch -        if @prog.wc and @sys.wc +        if @prog.wc \ +        and @sys.wc            wc=%x{wc #{fns}}            wca=wc.scan(/\d+/)            @wc_lines,@wc_words,@wc_bytes=wca[0].to_i,wca[1].to_i,wca[2].to_i @@ -226,9 +228,12 @@ module SiSU_Param              end              ok=if s_a.to_i > sm_a.to_i                true -            elsif s_a.to_i == sm_a.to_i and s_b.to_i >= sm_b.to_i +            elsif s_a.to_i == sm_a.to_i \ +            and s_b.to_i >= sm_b.to_i                true -            elsif s_a.to_i == sm_a.to_i and s_b.to_i == sm_b.to_i and s_c.to_i >= sm_c.to_i +            elsif s_a.to_i == sm_a.to_i \ +            and s_b.to_i == sm_b.to_i \ +            and s_c.to_i >= sm_c.to_i                true              else false              end @@ -248,7 +253,8 @@ module SiSU_Param          end          @code_flag=false          fns_array.each do |para|                                                                     #% Scan document -          if para !~/^\%+\s/ and para =~/<![abcdeghijklmnopqrstuvwxyz]/i # <!f not included +          if para !~/^\%+\s/ \ +          and para =~/<![abcdeghijklmnopqrstuvwxyz]/i # <!f not included              raise "Old markup style in file #@fns, current version #{@sisu_version[:project]} #{@sisu_version[:version]} #{@sisu_version[:date_stamp]} #{@sisu_version[:date]}:\n\t\t#{para}\n\n"            end            @code_flag=case para @@ -257,7 +263,8 @@ module SiSU_Param            else @code_flag            end            regx_header=/^(?:0~|@\S+?:[+-]?\s)/ -          if para =~regx_header and not @code_flag #or para=~/^(?:1|:?A)~/ +          if para =~regx_header \ +          and not @code_flag #or para=~/^(?:1|:?A)~/              case para              when /^(?:0~ocn|@ocn:)\s+(.+?)$/m;  @ocn=$1                                             #% processing              when /^(?:0~title|@title:)\s+(.+?)$/m                                                   #% metainfo DC @@ -298,7 +305,8 @@ module SiSU_Param              when /^(?:0~|@)date.+?$/m                                                               #% metainfo DC                if para =~/(?:0~date|@date:)\s+(.+?)$/m                  @dc_date=$1.strip -                if @dc_date !~regx_date and not @dc_date.empty? +                if @dc_date !~regx_date \ +                and not @dc_date.empty?                    tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',@dc_date)                    tell.instruct if @cmd =~/v/                  end @@ -306,7 +314,8 @@ module SiSU_Param                end                if para =~/(?:0~date\.created|@date\.created:)\s*(.+?)$/m                  date=$1.strip -                if date !~regx_date and not date.empty? +                if date !~regx_date \ +                and not date.empty?                    tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',date)                    tell.instruct if @cmd =~/v/                  end @@ -315,7 +324,8 @@ module SiSU_Param                end                if para =~/(?:0~date\.issued|@date\.issued:)\s*(.+?)$/m                  date=$1.strip -                if date !~regx_date and not date.empty? +                if date !~regx_date \ +                and not date.empty?                    tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',date)                    tell.instruct if @cmd =~/v/                  end @@ -324,7 +334,8 @@ module SiSU_Param                end                if para =~/(?:0~date\.available|@date\.available:)\s*(.+?)$/m                  date=$1.strip -                if date !~regx_date and not date.empty? +                if date !~regx_date \ +                and not date.empty?                    tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',date)                    tell.instruct if @cmd =~/v/                  end @@ -333,7 +344,8 @@ module SiSU_Param                end                if para =~/^(?:0~date\.valid|@date\.valid:)\s*(.+?)$/m                  date=$1.strip -                if date !~regx_date and not date.empty? +                if date !~regx_date \ +                and not date.empty?                    tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',date)                    tell.instruct if @cmd =~/v/                  end @@ -342,7 +354,8 @@ module SiSU_Param                end                if para =~/^(?:0~date\.modified|@date\.modified:)\s*(.+?)$/m                                                               #% of interest rss feed & sitemap                  date=$1.strip -                if date !~regx_date and not date.empty? +                if date !~regx_date \ +                and not date.empty?                    tell=SiSU_Screen::Ansi.new(@cmd,'Date Format should be','YYYY-MM-DD','please correct document','Date','field, current value:',date)                    tell.instruct if @cmd =~/v/                  end @@ -539,11 +552,14 @@ module SiSU_Param            else                                                                   #%              if para =~ /^(?:1|:?A)~/                                                                      #% processing                if para=~/^:?A~/ -                if @markup.nil? or @markup.empty?;  @markup=@markup_version.to_s +                if @markup.nil? \ +                or @markup.empty? +                  @markup=@markup_version.to_s                  elsif @markup !~/0\.38/;            @markup=@markup.strip + "; #@markup_version"                  end                end -              if (para=~/^:?A~/ and @markup_version >= 0.38) or (para=~/^1~/ and @markup_version < 0.38) +              if (para=~/^:?A~/ and @markup_version >= 0.38) \ +              or (para=~/^1~/ and @markup_version < 0.38)                  if @title.nil?                    @title=para[/^:?[A1]~\S*(.+)$/m,1]                    @html_title=@title.gsub(/(<p>|<p \/>|<br>|<br \/>)/,'') @@ -580,15 +596,25 @@ module SiSU_Param              if para =~/table\{|<!tableh?\s+c\d+;.+?!>/i; @flag_tables=true              end            end -          if (@markup_version >= 0.38 and para =~/^:?A~/) or (@markup_version < 0.38 and para =~/^1~/) +          if (@markup_version >= 0.38 and para =~/^:?A~/) \ +          or (@markup_version < 0.38 and para =~/^1~/)              @set_heading_top=true            end -          if (@markup_version >= 0.38 and para =~/^1~/) or (@markup_version < 0.38 and para =~/^4~/) +          if (@markup_version >= 0.38 and para =~/^1~/) \ +          or (@markup_version < 0.38 and para =~/^4~/)              m=nil -            if @markup_version >= 0.38 and para =~/^1~(\S+)\s+(.+)$/;   m,t=$1,$2 -            elsif @markup_version < 0.38 and para =~/^4~(\S+)\s+(.+)$/; m,t=$1,$2 -            elsif @markup_version >= 0.38 and para =~/^1~\s+(.+)$/;     t=$1 -            elsif @markup_version < 0.38 and para =~/^4~\s+(.+)$/;      t=$1 +            if @markup_version >= 0.38 \ +            and para =~/^1~(\S+)\s+(.+)$/ +              m,t=$1,$2 +            elsif @markup_version < 0.38 \ +            and para =~/^4~(\S+)\s+(.+)$/ +              m,t=$1,$2 +            elsif @markup_version >= 0.38 \ +            and para =~/^1~\s+(.+)$/ +              t=$1 +            elsif @markup_version < 0.38 \ +            and para =~/^4~\s+(.+)$/ +              t=$1              end              unless @heading_seg_first_flag                          # extract first segment name                @heading_seg_first=t @@ -597,7 +623,10 @@ module SiSU_Param              if m                                                     # list all segment names                @seg_names << m                @set_heading_seg=true -              @seg_autoname_safe=false if m=~/^\d{1,3}/ and m !~/^0/ +              if m=~/^\d{1,3}/ \ +              and m !~/^0/ +                @seg_autoname_safe=false +              end              end            end            @ec[:image] << para.scan(@rgx_image).uniq if para =~@rgx_image #embedded content @@ -650,7 +679,8 @@ module SiSU_Param            @markup.gsub!(/num_top\s*=\s*([\dA-C])/,"num_top=#@num_top")            @markup.gsub!(/toc_lev_limit\s*=\s*([\dA-C])/,"toc_lev_limit=#@toc_lev_limit")          end -        if @mod.inspect =~/--papersize[=-]\S+|--pdf[=-]\S+/ or  @mod.inspect =~/--(?:a4|letter|legal|book|a5|b5)\b/i #command line config/header override +        if @mod.inspect =~/--papersize[=-]\S+|--pdf[=-]\S+/ \ +        or  @mod.inspect =~/--(?:a4|letter|legal|book|a5|b5)\b/i #command line config/header override            @papersize=determine_papersize(@mod.inspect)          end          if @sys.openssl !=false @@ -672,7 +702,8 @@ module SiSU_Param          end          @dc_publisher ||= "#@@publisher (this copy)"          fn_set_lang=SiSU_Env::Standardise_language.new.file_to_language(@fns) -        unless @dc_language[:code] and @dc_language[:name] +        unless @dc_language[:code] \ +        and @dc_language[:name]            lang=@env.i18n.language #default language settings for directory by name, or in sysrc.yml            @dc_language[:code] ||= lang.code            @dc_language[:name] ||= lang.title @@ -694,13 +725,15 @@ module SiSU_Param          @lang.uniq!          @fn=SiSU_Env::Env_call.new(@fns).lang(fn_set_lang[:c])          @dc_identifier="#{@env.url.root}/#@fnb/#{@fn[:toc]}" #DC note constructed dc identifier -        if @en[:note] > 0 and @en[:sum] > 0 +        if @en[:note] > 0 \ +        and @en[:sum] > 0            if @en[:sum] > 0            else tell=SiSU_Screen::Ansi.new(@cmd,'both endnote styles used',"~{ #{@en[:sum]} }~ and ^~ #{@en[:mark]}")              tell.warn if @cmd !~/q/            end          end -        if @en[:mark] != @en[:note] and @en[:note] > 0 +        if @en[:mark] != @en[:note] \ +        and @en[:note] > 0            @en[:mismatch]=@en[:note] - @en[:mark]            SiSU_Screen::Ansi.new(@cmd,'endnote number mismatch',"endnotes: #{@en[:note]} != endnote reference marks: #{@en[:mark]} (difference = #{@en[:mismatch]})").warn if @cmd !~/q/            footnote_conversion_errors=File.new("#{Dir.pwd}/footnote_conversion_errors.txt",'a') @@ -718,7 +751,9 @@ module SiSU_Param          if @title.nil?            title_trigger=nil            fns_array.each do |para| -            if para !~/0~|@\S+:[+-]?\s/ and para =~/\S/ and title_trigger.nil? +            if para !~/0~|@\S+:[+-]?\s/ \ +            and para =~/\S/ \ +            and title_trigger.nil?                @title=para[/(\S.+)/m,1]                @html_title=@title.gsub(/(<p>|<p \/>|<br>|<br \/>)/,'')                @title.chomp!("\n") @@ -760,7 +795,9 @@ module SiSU_Param            end            if doc_struct[:article] > 2                                            #%~level 4              @lv4=/^(?:Article|ARTICLE)\b/ -          elsif doc_struct[:chapter] > 2 and doc_struct[:article] and doc_struct[:article] < 3 +          elsif doc_struct[:chapter] > 2 \ +          and doc_struct[:article] \ +          and doc_struct[:article] < 3              @lv4=/^(?:Chapter|CHAPTER)\b/            elsif doc_struct[:clause] > 2              @lv4=/^(?:Clause|CLAUSE)\b/ @@ -770,13 +807,18 @@ module SiSU_Param            if doc_struct[:section] > 2                                           #%~level 3              @lv3=/^(?:Section|SECTION)\b/            end -          if doc_struct[:chapter] > 2 and doc_struct[:article] and doc_struct[:article] > 2 +          if doc_struct[:chapter] > 2 \ +          and doc_struct[:article] \ +          and doc_struct[:article] > 2              @lv2=/^(?:Chapter|CHAPTER)\b/            end -          if doc_struct[:part] > 2 and @lv[2].nil? +          if doc_struct[:part] > 2 \ +          and @lv[2].nil?              @lv2=/^(?:Part|PART)\b/            end -          if doc_struct[:part] > 2 and @lv[2].to_s !~/Part/ and @lv[1].nil? +          if doc_struct[:part] > 2 \ +          and @lv[2].to_s !~/Part/ \ +          and @lv[1].nil?              @lv1=/^(Part|PART)\b/            end          end diff --git a/lib/sisu/v0/remote.rb b/lib/sisu/v0/remote.rb index 2a45e3cb..efa49dc0 100644 --- a/lib/sisu/v0/remote.rb +++ b/lib/sisu/v0/remote.rb @@ -113,7 +113,7 @@ module SiSU_Remote        require 'open-uri'        require 'pp'        require "#{SiSU_lib}/composite" -      @rgx_image=/\{\s*(\S+?\.(?:png|jpg|gif))/ +      @rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/        @rgx_skin=/(?:0~|@)skin:?\s+(\S+)/ #@rgx_skin=/^0~skin\s+(\S+)/        threads=[]        for requested_page in @get_s @@ -133,10 +133,12 @@ module SiSU_Remote                images << r.scan(@rgx_image).uniq if r =~@rgx_image                downloaded_file << r              end -            if skin and skin.length > 0 +            if skin \ +            and skin.length > 0                SiSU_Assemble::Remote_image.new.download_doc_skin(skin)              end -            if images and images.length > 1 +            if images \ +            and images.length > 1                images.flatten!.uniq!                @msg,@msgs='downloading images:', [ images.join(',') ]                @tell.call.warn unless @opt.cmd =~/q/ diff --git a/lib/sisu/v0/sisupod_make.rb b/lib/sisu/v0/sisupod_make.rb index 392aee7d..277358c4 100644 --- a/lib/sisu/v0/sisupod_make.rb +++ b/lib/sisu/v0/sisupod_make.rb @@ -158,7 +158,7 @@ module SiSU_Doc      end      def sisupod_build                                                         #see also sisupod in sysenv        @rgx_rb_image=/["'](\S+?\.(?:png|jpg|gif))["']/ -      @rgx_image=/\{\s*(\S+?\.(?:png|jpg|gif))/ +      @rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/        @rgx_skin=/^(?:@skin:|0~skin)\s+(\S+)/        @rgx_doc_import=/^%\s\s*\|(\S+?\.ss[ti])\|@\|\^\|>>ok/        use_file=if @opt.fns =~/(?:\.ssm|\.ssm\.sst)$/; "#{@env.path.composite_file}/#{@opt.fnb}.ssm.sst" @@ -170,12 +170,14 @@ module SiSU_Doc          if f !~/^%\s/            skin << f.scan(@rgx_skin).uniq.flatten if f =~@rgx_skin            images << f.scan(@rgx_image).uniq if f =~@rgx_image -        elsif f =~/^%\s/ and @opt.fns =~/\.ssm\.sst$/ +        elsif f =~/^%\s/ \ +        and @opt.fns =~/\.ssm\.sst$/            doc_import << f.scan(@rgx_doc_import).uniq if f =~@rgx_doc_import          end        end        docskin=nil -      if skin and skin.length > 0 +      if skin \ +      and skin.length > 0          docskin=skin.pop.flatten.join          skin_source=select(docskin)        else @@ -187,8 +189,10 @@ module SiSU_Doc          docskin=[docskin_with_path.gsub(/.+?\/(skin_\S+?)\.rb/,'\1')]          docskin='skin_sisupod'        end -      if skin_source and docskin #imperfect, revisit -        unless skin_source[:name].nil? or skin_source[:name].empty? +      if skin_source \ +      and docskin #imperfect, revisit +        unless skin_source[:name].nil? \ +        or skin_source[:name].empty?            cp_r(skin_source[:name],"#{docskin_place}/#{docskin}.rb")            skinfile_array=IO.readlines(skin_source[:name],'')            para_images=[] @@ -202,7 +206,8 @@ module SiSU_Doc        end        #1. mapping in doc dir?        #2. need images used by skin, scan skin?? -      if images and images.length > 1 +      if images \ +      and images.length > 1          images.flatten!.uniq!          image_path_pwd='_sisu/image'          path_pod_conf="#{@env.path.processing}/sisupod/_sisu" @@ -228,12 +233,14 @@ module SiSU_Doc          end        end        x=@env.document_language_versions_found   #check multiple document language versions (param not used) -      if doc_import.flatten.length > 0 and @opt.fns =~/\.ssm\.sst$/ +      if doc_import.flatten.length > 0 \ +      and @opt.fns =~/\.ssm\.sst$/          doc_import.flatten.each do |f|            cp_r("#{@env.path.pwd}/#{f}","#{@env.path.processing}/sisupod/#{f}")          end        end -      if x[:f] and x[:f].length > 1             #store multiple document language versions, sisupod +      if x[:f] \ +      and x[:f].length > 1             #store multiple document language versions, sisupod          x[:f].each do |f|            cp_r("#{@env.path.pwd}/#{f}","#{@env.path.processing}/sisupod/#{f}")          end | 
