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.rb177
1 files changed, 0 insertions, 177 deletions
diff --git a/lib/sisu/v3/shared_images.rb b/lib/sisu/v3/shared_images.rb
deleted file mode 100644
index d71710df..00000000
--- a/lib/sisu/v3/shared_images.rb
+++ /dev/null
@@ -1,177 +0,0 @@
-# encoding: utf-8
-=begin
-
- * Name: SiSU
-
- * Description: a framework for document structuring, publishing and search
-
- * Author: Ralph Amissah
-
- * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009, 2010, 2011, 2012, 2013 Ralph Amissah, All Rights Reserved.
-
- * License: GPL 3 or later:
-
- SiSU, a framework for document structuring, publishing and search
-
- Copyright (C) Ralph Amissah
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation, either version 3 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program. If not, see <http://www.gnu.org/licenses/>.
-
- If you have Internet connection, the latest version of the GPL should be
- available at these locations:
- <http://www.fsf.org/licensing/licenses/gpl.html>
- <http://www.gnu.org/licenses/gpl.html>
-
- <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
-
- * SiSU uses:
- * Standard SiSU markup syntax,
- * Standard SiSU meta-markup syntax, and the
- * Standard SiSU object citation numbering and system
-
- * Hompages:
- <http://www.jus.uio.no/sisu>
- <http://www.sisudoc.org>
-
- * Download:
- <http://www.sisudoc.org/sisu/en/SiSU/download.html>
-
- * Git
- <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
- <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v3/shared_images.rb;hb=HEAD>
-
- * Ralph Amissah
- <ralph@amissah.com>
- <ralph.amissah@gmail.com>
-
- ** Description: common file for xml generation
-=end
-module SiSU_Images
- require_relative 'particulars' # particulars.rb
- class Source
- def initialize(opt)
- @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt)
- end
- def read
- SiSU_Images::Source::Place.new(@particulars).songsheet
- end
- class Place
- def initialize(particulars)
- @particulars=particulars
- @md=@particulars.md
- @env=@particulars.env
- @o_str ||=SiSU_Env::ProcessingSettings.new(@md).output_dir_structure
- end
- 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=(/(\S+?)(?:\/(?:#{Px[:lng_lst_rgx]}))?$/).match(Dir.pwd)[1]
- def copy(src_path,dest_path,images=nil)
- if FileTest.directory?(src_path)
- FileUtils::cd(src_path)
- unless images
- images=Dir.glob("*.{png,jpg,gif,ico}")
- end
- unless FileTest.directory?(dest_path) \
- or FileTest.symlink?(dest_path)
- FileUtils::mkdir_p(dest_path)
- FileUtils::chmod(0755,dest_path)
- end
- if images.length > 0
- images.each do |i|
- if FileTest.file?(i)
- FileUtils::cp_r(i,"#{dest_path}/#{i}")
- FileUtils::chmod(0644,"#{dest_path}/#{i}")
- else STDERR.puts %{\t*WARN* did not find image - "#{i}" [#{__FILE__}:#{__LINE__}]}
- end
- end
- end
- FileUtils::cd(@pwd)
- else STDERR.puts %{\t*WARN* did not find - "#{src_path}" [#{__FILE__}:#{__LINE__}]}
- end
- end
- def dest_path(image_type)
- pth=if image_type==:image_sys
- pth=(@o_str.dump_or_redirect?) \
- ? "#{@md.file.output_path.html.dir}/image"
- : "#{@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"
- : "#{@md.file.output_path.base.dir}/_sisu/image"
- end
- pth
- end
- def select_with_document
- images=@md.ec[: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 \
- and 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"
- dest=dest_path(:image_sys)
- copy(src_path,dest,images)
- end
- self
- end
- end
- end
-end
-__END__