From 418716166677579b407653959f5d7e8947a4579d Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 1 Jul 2014 00:39:28 -0400 Subject: v5 v6: files renamed: ao_composite.rb, html_concordance.rb * ao_composite.rb (from composite.rb) * html_concordance.rb (from concordance.rb) --- lib/sisu/v5/composite.rb | 267 ----------------------------------------------- 1 file changed, 267 deletions(-) delete mode 100644 lib/sisu/v5/composite.rb (limited to 'lib/sisu/v5/composite.rb') diff --git a/lib/sisu/v5/composite.rb b/lib/sisu/v5/composite.rb deleted file mode 100644 index 9f722799..00000000 --- a/lib/sisu/v5/composite.rb +++ /dev/null @@ -1,267 +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, 2014 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 . - - If you have Internet connection, the latest version of the GPL should be - available at these locations: - - - - - - * SiSU uses: - * Standard SiSU markup syntax, - * Standard SiSU meta-markup syntax, and the - * Standard SiSU object citation numbering and system - - * Hompages: - - - - * Download: - - - * Git - - - - * Ralph Amissah - - - - ** Description: composite documents, assemble/build documents from other - documents or parts of marked up text - -=end -module SiSU_Assemble - require_relative 'sysenv' # sysenv.rb - class RemoteImage - def initialize - @env=SiSU_Env::InfoEnv.new - end - def image(dir) - images=[] - images[0]=dir - images - end - def download_images(images_info) - path="#{@env.processing_path.processing}/external_document/image" - FileUtils::mkdir_p(path) unless FileTest.directory?(path) - download_from=images_info.shift - images_info.each do |i| - image="#{path}/#{i}" - imagefile=File.new(image,'w+') - open("#{download_from}/#{i}") do |g| - imagefile << g.read - end - imagefile.close - end - output_path="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_external" - FileUtils::mkdir_p(output_path) unless FileTest.directory?(output_path) - SiSU_Env::SystemCall.new("#{path}/*",output_path,'q').rsync - end - end - class Composite - @@imager={} - def initialize(opt) - @opt=opt - @env=SiSU_Env::InfoEnv.new - end - def read - begin - pwd=Dir.pwd - Dir.chdir(@opt.f_pth[:pth]) - @fns_array=IO.readlines(@opt.fno,'') - assembled=insertions? - write(assembled) - Dir.chdir(pwd) - rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do - __LINE__.to_s + ':' + __FILE__ - end - ensure - end - end - def write(assembled) - assembled_file=File.new("#{@env.processing_path.composite_file}/#{@opt.fnb}.ssm.sst",'w+') - assembled.each {|a| assembled_file << a } - assembled_file.close - end - def download_images(download_from,images_array) - path="#{@env.processing_path.processing}/external_document/image" - FileUtils::mkdir_p(path) unless FileTest.directory?(path) - images_array.each do |i| - image="#{path}/#{i}" - unless FileTest.exists?(image) - imagefile=File.new(image,'w+') - open("#{download_from}/#{i}") do |g| - imagefile << g.read - end - imagefile.close - end - end - end - def insertion(fni,insert_array) - file={ prepared: [], images: [] } - rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ - file[:prepared] << "\n% |#{fni}|@|^|>>ok\n\n" - @code_flag=false - insert_array.each do |i| - @code_flag=if i =~/^code\{/ then true - elsif i =~/^\}code/ then false - else @code_flag - end - if not @code_flag \ - and i !~/^%+\s/ - i=i.gsub(/^([123]|:?[ABCD])~\? /,'% [conditional heading:] \1~ ') #off conditional heading (consider syntax) - if i =~/^@\S+?:/ - i=i.gsub(/\n/m,"\n% "). - gsub(/\n%\s+$/m,''). - gsub(/^@\S+?:/m,"\n% [imported header:] ") #off imported headers - end - end - file[:prepared] << i - if i !~/^%+\s/ \ - and i =~rgx_image - file[:images] << i.scan(rgx_image).uniq - end - end - file[:prepared] << "\n% end import" << "\n\n" - if file[:images].length > 0 - file[:images]=file[:images].flatten.uniq - file[:images].delete_if {|x| x =~/https?:\/\// } - end - file - end - def insertions? - data=@fns_array - tuned_file,imagedir=[],[] - SiSU_Screen::Ansi.new(@opt.act[:color_state][:set],'Composite Document',"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}").grey_title_hi unless @opt.act[:quiet][:set]==:on - data.each do |para| - if para =~/^<<\s+(\S+?\.ss[it])$/ - loadfile=$1.strip - src_ssm=@opt.fns.sub(/\.ssm\.sst/,'.ssm') - if (@opt.act[:verbose][:set]==:on \ - || @opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) - SiSU_Screen::Ansi.new(@opt.act[:color_state][:set],'loading:',loadfile).txt_grey - end - tuned_file << if loadfile =~ /(?:https?|file):\/\/\S+?\.ss[ti]$/ # and NetTest - imagedir = /((?:https?|file):\/\/\S+?)\/[^\/]+?\.ss[ti]$/.match(loadfile).captures.join + '/_sisu/image' #watch - begin - require 'uri' - require 'open-uri' - require 'pp' - rescue LoadError - SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('uri, open-uri or pp NOT FOUND (LoadError)') - end - image_uri=URI.parse(imagedir) - insert=open(loadfile) - insert_array=insert.dup - insert.close - file=insertion(loadfile,insert_array) - @@imager[image_uri] ||=[] - @@imager[image_uri] << file[:images] - file[:prepared] - elsif loadfile =~ /\.ss[ti]$/ \ - and FileTest.file?(loadfile) - insert_array=IO.readlines(loadfile,'') - file=insertion(loadfile,insert_array) - file[:prepared] - else - cX=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]).cX - STDERR.puts %{SKIPPED processing file: [#{@opt.lng}] "#{@opt.fns}" it requires an invalid or non-existent file: "#{loadfile}"} - $process_document = :skip; break #remove this line to continue processing documents that have missing include files - para - end - else tuned_file << para - end - tuned_file=tuned_file.flatten.compact - end - if @@imager.length >0 - @@imager.each do |d,i| - i=i.flatten.uniq - image_info=d + i - download_images(image_info.flatten) - end - end - tuned_file - end - end - class CompositeFileList - @@imager={} - def initialize(opt) - @opt=opt - @env=SiSU_Env::InfoEnv.new - end - def read - begin - @opt.fns=@opt.fns.gsub(/\.ssm\.sst$/,'.ssm') #FIX earlier, hub - @fns_array=IO.readlines(@opt.fns,'') - insertions? - rescue - SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do - __LINE__.to_s + ':' + __FILE__ - end - ensure - end - end - def insertions? - data=@fns_array - tuned_file=[] - SiSU_Screen::Ansi.new(@opt.act[:color_state][:set],'Composite Document',@opt.fno).grey_title_hi unless @opt.act[:quiet][:set]==:on - @ssm=[@opt.fns] - data.each do |para| - if para =~/^<<\s+(\S+?\.ss[it])$/ - loadfile=$1.strip - if (@opt.act[:verbose][:set]==:on \ - || @opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) - SiSU_Screen::Ansi.new(@opt.act[:color_state][:set],'loading:',loadfile).txt_grey - end - tuned_file << if loadfile =~ /(?:https?|file):\/\/\S+?\.ss[ti]$/ - @ssm << loadfile - elsif loadfile =~ /\.ss[ti]$/ \ - and FileTest.file?(loadfile) - @ssm << loadfile - else - cX=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]).cX - STDERR.puts %{SKIPPED processing file: [#{@opt.lng}] "#{@opt.fns}" it requires an invalid or non-existent file: "#{loadfile}"} - $process_document = :skip; break #remove this line to continue processing documents that have missing include files - para - end - end - end - @ssm - end - end -end -__END__ -- cgit v1.2.3