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/shared_images.rb | 47 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) (limited to 'lib/sisu/v3/shared_images.rb') diff --git a/lib/sisu/v3/shared_images.rb b/lib/sisu/v3/shared_images.rb index 46b568d8..a5a412b8 100644 --- a/lib/sisu/v3/shared_images.rb +++ b/lib/sisu/v3/shared_images.rb @@ -73,6 +73,9 @@ module SiSU_Images def songsheet images_set.select_sisu_base images_set.select_with_document + if @md.opt.cmd =~/h/ + images_set.select_with_document_skin + end end def images_set @pwd=ENV['PWD'] @@ -101,19 +104,57 @@ module SiSU_Images pth=if image_type==:image_sys pth=(@o_str.dump_or_redirect?) \ ? "#{@md.file.output_path.html.dir}/image" - : "#{@env.path.webserv}/_sisu/image_sys" + : "#{@md.file.output_path.base.dir}/_sisu/image_sys" elsif image_type==:image pth=(@o_str.dump_or_redirect?) \ ? "#{@md.file.output_path.html.dir}/image" - : "#{@env.path.webserv}/_sisu/image" + : "#{@md.file.output_path.base.dir}/_sisu/image" end + pth end def select_with_document images=@md.ec[:image] - src_path="#{@pwd}/_sisu/image" + src_path=unless @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ + "#{@pwd}/_sisu/image" + else #sisupod + pt=/(\/\S+?\/sisupod\/\S+?\/sisupod)\/doc/.match(@md.opt.f_pth[:pth])[1] + pt + '/image' + end dest=dest_path(:image) copy(src_path,dest,images) end + def select_with_document_skin + rgx_rb_image=/["']\S*?([a-zA-Z0-9_-]+?\.(?:png|jpg|gif))["']/ + skin_source=SiSU_Env::InfoSkin.new(@md).apply + docskin=nil + 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 + images=[] + if skin_source \ + and skin_source[:name_path] #imperfect, revisit + unless (skin_source[:name_path].nil? \ + or skin_source[:name_path].empty?) + skinfile_array=IO.readlines(skin_source[:name_path],'') + 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 + end + end + src_path=unless @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ + "#{@pwd}/_sisu/image" + else #sisupod + pt=/(\/\S+?\/sisupod\/\S+?\/sisupod)\/doc/.match(@md.opt.f_pth[:pth])[1] + pt + '/image' + end + dest=dest_path(:image) + copy(src_path,dest,images.flatten) + end def select_sisu_base images=%w[arrow_next_red.png arrow_prev_red.png arrow_up_red.png dot_clear.png dot_white.png b_doc.png b_epub.png b_odf.png b_pdf.png b_toc.png] src_path="#{@env.path.share}/image" -- cgit v1.2.3