From 26e5e47cb281d7ee98abcc619332b87b321aaed0 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sun, 3 Jun 2012 14:39:42 -0400 Subject: v3: images, regular & sisupod --- lib/sisu/v3/sisupod_make.rb | 66 ++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 24 deletions(-) (limited to 'lib/sisu/v3/sisupod_make.rb') diff --git a/lib/sisu/v3/sisupod_make.rb b/lib/sisu/v3/sisupod_make.rb index 54376271..984d807d 100644 --- a/lib/sisu/v3/sisupod_make.rb +++ b/lib/sisu/v3/sisupod_make.rb @@ -143,14 +143,14 @@ module SiSU_Doc sk_doc,sk_dir="doc/#{skin}.rb","dir/skin_#{@env.stub_pwd}.rb" skin_path.each do |v| #document skin priority 1 if FileTest.file?("#{v}/#{sk_doc}") - @skin[:name],@skin[:type]="#{v}/#{sk_doc}",'doc' + @skin={ name_path: "#{v}/#{sk_doc}", type: :doc } break end end unless @skin.length > 0 skin_path.each do |v| #directory skin priority 2 if FileTest.file?("#{v}/#{sk_dir}") - @skin[:name],@skin[:type]="#{v}/#{sk_dir}",'dir' + @skin={ name_path: "#{v}/#{sk_dir}", type: :dir } break end end @@ -167,7 +167,7 @@ module SiSU_Doc end def sisupod_build #see also sisupod in sysenv @pwd=Dir.pwd - @rgx_rb_image=/["'](\S+?\.(?:png|jpg|gif))["']/ + @rgx_rb_image=/["']\S*?([a-zA-Z0-9_-]+?\.(?:png|jpg|gif))["']/ @rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ @rgx_skin=/^\s+:skin:\s+(\S+)/ @rgx_doc_import=/^<<\s*(\S+?\.ss[ti])/ @@ -207,24 +207,26 @@ module SiSU_Doc else skin_source=select_skin end - docskin_place="#{@env.processing_path.processing_sisupod(@opt)}/doc/_sisu/skin/#{skin_source[:type]}" + docskin_place="#{@env.processing_path.processing_sisupod(@opt)}/doc/_sisu/skin/#{skin_source[:type].to_s}" FileUtils::mkdir_p(docskin_place) - if skin_source[:type] =~/dir/ + if skin_source[:type] == :dir docskin_with_path="#{docskin_place}/skin_#{@env.stub_pwd}.rb" 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? - FileUtils::cp_r(skin_source[:name],"#{docskin_place}/#{docskin}.rb") - skinfile_array=IO.readlines(skin_source[:name],'') - para_images=[] - skinfile_array.each do |f| #% work area - unless f =~/^%+ / #hmmm - images << f.scan(@rgx_rb_image).uniq if f =~@rgx_rb_image - #does not really discriminate, may duplicate images in sisu file, and may take images from default image pool + and skin_source[:name_path] + unless skin_source[:name_path].nil? \ + or skin_source[:name_path].empty? + if FileTest.file?(skin_source[:name_path]) + FileUtils::cp(skin_source[:name_path],"#{docskin_place}/#{docskin}.rb") + skinfile_array=IO.readlines(skin_source[:name_path],'') + para_images=[] + skinfile_array.each do |f| #% work area + unless f =~/^%+ / #hmmm + images << f.scan(@rgx_rb_image).uniq if f =~@rgx_rb_image + #does not really discriminate, may duplicate images in sisu file, and may take images from default image pool + end end else STDERR.puts %{\t*WARN* did not find - "#{skin_source[:name_path]}" [#{__FILE__}:#{__LINE__}]} end @@ -282,18 +284,34 @@ module SiSU_Doc if f[:f] =~/\~(\S{2,3})\.ss[tm]$/ lng_f=$1 if @opt.lng == lng_f - (@opt.fno =~/\.ssm$/) \ - ? FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}", + if @opt.fno =~/\.ssm$/ + if FileTest.file?("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}") + FileUtils::cp("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}", + "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") + else STDERR.puts %{\t*WARN* did not find - "#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} + end + else + if FileTest.file?("#{@env.path.pwd}/#{f[:f]}") + FileUtils::cp("#{@env.path.pwd}/#{f[:f]}", + "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") + else STDERR.puts %{\t*WARN* did not find - "#{@env.path.pwd}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} + end + end + end + else + if @opt.fno =~/\.ssm$/ + if FileTest.file?("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}") + FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}", "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") - : FileUtils::cp_r("#{@env.path.pwd}/#{f[:f]}", + else STDERR.puts %{\t*WARN* did not find - "#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} + end + else + if FileTest.file?("#{@env.path.pwd}/#{f[:f]}") + FileUtils::cp("#{@env.path.pwd}/#{f[:f]}", "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") + else STDERR.puts %{\t*WARN* did not find - "#{@env.path.pwd}/#{f[:f]}" [#{__FILE__}:#{__LINE__}]} + end end - else - (@opt.fno =~/\.ssm$/) \ - ? FileUtils::cp_r("#{@env.path.pwd}#{doc_import_dir}/#{f[:f]}", - "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") - : FileUtils::cp_r("#{@env.path.pwd}/#{f[:f]}", - "#{@env.processing_path.processing_sisupod(@opt)}/doc/#{@opt.lng}/#{f[:n]}") end end end #NB not all possibilies met, revisit, also in case of composite file may wish to add README -- cgit v1.2.3