aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v3/shared_images.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v3/shared_images.rb')
-rw-r--r--lib/sisu/v3/shared_images.rb47
1 files changed, 44 insertions, 3 deletions
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"