diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sisu/v3/constants.rb | 5 | ||||
-rw-r--r-- | lib/sisu/v3/dal_images.rb | 2 | ||||
-rw-r--r-- | lib/sisu/v3/epub.rb | 15 | ||||
-rw-r--r-- | lib/sisu/v3/epub_concordance.rb | 10 | ||||
-rw-r--r-- | lib/sisu/v3/epub_format.rb | 22 | ||||
-rw-r--r-- | lib/sisu/v3/epub_segments.rb | 4 | ||||
-rw-r--r-- | lib/sisu/v3/epub_tune.rb | 6 | ||||
-rw-r--r-- | lib/sisu/v3/html_scroll.rb | 1 | ||||
-rw-r--r-- | lib/sisu/v3/html_tune.rb | 7 | ||||
-rw-r--r-- | lib/sisu/v3/hub.rb | 176 | ||||
-rw-r--r-- | lib/sisu/v3/manifest.rb | 5 | ||||
-rw-r--r-- | lib/sisu/v3/options.rb | 361 | ||||
-rw-r--r-- | lib/sisu/v3/param.rb | 4 | ||||
-rw-r--r-- | lib/sisu/v3/qrcode.rb | 4 | ||||
-rw-r--r-- | lib/sisu/v3/remote.rb | 4 | ||||
-rw-r--r-- | lib/sisu/v3/shared_xml.rb | 12 | ||||
-rw-r--r-- | lib/sisu/v3/sysenv.rb | 84 | ||||
-rw-r--r-- | lib/sisu/v3/urls.rb | 8 |
18 files changed, 402 insertions, 328 deletions
diff --git a/lib/sisu/v3/constants.rb b/lib/sisu/v3/constants.rb index 498ee1f3..1202e47c 100644 --- a/lib/sisu/v3/constants.rb +++ b/lib/sisu/v3/constants.rb @@ -65,8 +65,9 @@ Ax={ Xx={ protect: '☞', segment: 'Ф', - html_relative2: '※※', #'※' '☼' - html_relative1: '※', #'※' '☼' + relative_path: '☼', + html_relative2: '※※', + html_relative1: '※', } Mx={ meta_o: '〔@', meta_c: '〕', diff --git a/lib/sisu/v3/dal_images.rb b/lib/sisu/v3/dal_images.rb index c2088874..b05c7ec7 100644 --- a/lib/sisu/v3/dal_images.rb +++ b/lib/sisu/v3/dal_images.rb @@ -67,7 +67,7 @@ module SiSU_images data=@data tuned_file=[] @rmgk=false - imagemagick_=SiSU_Env::Info_settings.new.program?('rmagick') + imagemagick_=true #imagemagick_=SiSU_Env::Info_settings.new.program?('rmagick') if imagemagick_ begin @rmgk=SiSU_Env::Load.new('RMagick').prog diff --git a/lib/sisu/v3/epub.rb b/lib/sisu/v3/epub.rb index 12ec1ce0..c1dcacec 100644 --- a/lib/sisu/v3/epub.rb +++ b/lib/sisu/v3/epub.rb @@ -338,7 +338,7 @@ module SiSU_EPUB title=if dob.obj !~/Document Information/; linkname else link='metadata' - %{<b><a href="#{link}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}">#{linkname}</a></b>} + %{<b><a href="#{link}#{Sfx[:epub_xhtml]}">#{linkname}</a></b>} end toc={} txt_obj={ txt: title } @@ -423,13 +423,13 @@ module SiSU_EPUB linkname,ocn=dob.obj.strip,dob.ocn p_num=SiSU_EPUB_Format::Paragraph_number.new(@md,ocn) if ocn if dob.ln==4 - seg_link=%{ <a href="#{dob.name}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}"> + seg_link=%{ <a href="#{dob.name}#{Sfx[:epub_xhtml]}"> #{dob.obj} </a> } @@seg_url=dob.name elsif dob.obj =~/\d+.\d+.\d+.\d+|\d+.\d+.\d+|\d+.\d+|\d+/ seg_link=dob.obj.gsub(/^(\d+.\d+.\d+.\d+|\d+.\d+.\d+|\d+.\d+|\d+)(.*)/, - %{<a href="\\1#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}">} + + %{<a href="\\1#{Sfx[:epub_xhtml]}">} + %{\\1 \\2</a> }) end p_num=SiSU_EPUB_Format::Paragraph_number.new(@md,ocn) if ocn @@ -451,7 +451,7 @@ module SiSU_EPUB if ocn \ and ocn !~/#/ p_num=SiSU_EPUB_Format::Paragraph_number.new(@md,ocn) - lnk_n_txt=%{ <a href="#{@@seg_url}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}#o#{ocn}"> + lnk_n_txt=%{ <a href="#{@@seg_url}#{Sfx[:epub_xhtml]}#o#{ocn}"> #{linkname} </a>} txt_obj={ txt: lnk_n_txt } @@ -472,7 +472,7 @@ module SiSU_EPUB if ocn \ and ocn !~/#/ p_num=SiSU_EPUB_Format::Paragraph_number.new(@md,ocn) - lnk_n_txt=%{ <a href="#{@@seg_url}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}#o#{ocn}"> + lnk_n_txt=%{ <a href="#{@@seg_url}#{Sfx[:epub_xhtml]}#o#{ocn}"> #{linkname} </a>} txt_obj={ txt: lnk_n_txt } @@ -660,7 +660,10 @@ module SiSU_EPUB img_pth=@md.env.path.image_source_include @md.ec[:image].each do |x| if FileTest.directory?("#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image") \ - and FileTest.file?("#{img_pth}/#{x}") + && FileTest.file?("#{@md.file.output_path.epub.rel_image}/#{x}") + cp("#{@md.file.output_path.epub.rel_image}/#{x}","#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image") + elsif FileTest.directory?("#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image") \ + && FileTest.file?("#{img_pth}/#{x}") cp("#{img_pth}/#{x}","#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}/image") end end diff --git a/lib/sisu/v3/epub_concordance.rb b/lib/sisu/v3/epub_concordance.rb index 687155d2..3a961285 100644 --- a/lib/sisu/v3/epub_concordance.rb +++ b/lib/sisu/v3/epub_concordance.rb @@ -185,18 +185,18 @@ WOK protected def location_scroll(wordlocation,show) @wordlocation=wordlocation - %{<a href="doc#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}\##{@wordlocation}">#{@wordlocation}</a>; } + %{<a href="doc#{Sfx[:epub_xhtml]}\##{@wordlocation}">#{@wordlocation}</a>; } end def location_seg(wordlocation,show) @wordlocation,@show=wordlocation,show - @word_location_seg=wordlocation.gsub(/(.+?)\#(\d+)/,"\\1#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}#o\\2") unless wordlocation.nil? + @word_location_seg=wordlocation.gsub(/(.+?)\#(\d+)/,"\\1#{Sfx[:epub_xhtml]}#o\\2") unless wordlocation.nil? case @wordlocation when @rxp_t1 - %{[<a href="doc#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}##{@show}">H</a>]#{@show}, } + %{[<a href="doc#{Sfx[:epub_xhtml]}##{@show}">H</a>]#{@show}, } when @rxp_t2 - %{[<a href="doc#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}##{@show}">H</a>]#{@show}, } + %{[<a href="doc#{Sfx[:epub_xhtml]}##{@show}">H</a>]#{@show}, } when @rxp_t3 - %{[<a href="doc#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}##{@show}">H</a>]#{@show}, } + %{[<a href="doc#{Sfx[:epub_xhtml]}##{@show}">H</a>]#{@show}, } else %{<a href="#{@word_location_seg}">#{@show}</a>, } end end diff --git a/lib/sisu/v3/epub_format.rb b/lib/sisu/v3/epub_format.rb index 345bee95..42570dd0 100644 --- a/lib/sisu/v3/epub_format.rb +++ b/lib/sisu/v3/epub_format.rb @@ -1763,7 +1763,7 @@ WOK } end def seg_head_navigation_band - firstseg=%{<a href="#{@md.firstseg}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top"> + firstseg=%{<a href="#{@md.firstseg}#{Sfx[:epub_xhtml]}" target="_top"> #{@vz.epub_png_nav_nxt} </a>} if @md.firstseg =~/\S+/ DISABLE[:epub][:internal_navigation] \ @@ -1771,7 +1771,7 @@ WOK : %{<p class="align_right">#{firstseg}</p>} end def seg_head_navigation_band_bottom - firstseg=%{<a href="#{@md.firstseg}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top"> + firstseg=%{<a href="#{@md.firstseg}#{Sfx[:epub_xhtml]}" target="_top"> #{@vz.epub_png_nav_nxt} </a>} if @md.firstseg =~/\S+/ DISABLE[:epub][:internal_navigation] \ @@ -1906,17 +1906,17 @@ WOK def dot_control_pre_next %{<table summary="segment hidden control pre and next" width="100%" border="0" cellpadding="0" bgcolor=#{@vz.color_grey_pale} align="center"> <tr><td align="left"> - <a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker-1]}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_prev}> + <a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker-1]}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_prev}> #{@vz.png_nav_dot_pre} </a> </td> <td align="center"> - <a href="#{@index}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_toc}> + <a href="#{@index}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_toc}> #{@vz.png_nav_dot_toc} </a> </td> <td align="right"> - <a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker+1]}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_next}> + <a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker+1]}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_next}> #{@vz.png_nav_dot_nxt} </a> #{@vz.table_close}} @@ -1924,12 +1924,12 @@ WOK def dot_control_pre %{<table summary="segment hidden control pre" width="100%" border="0" cellpadding="0" bgcolor=#{@vz.color_grey_pale} align="center"> <tr><td align="left"> - <a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker-1]}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_prev}> + <a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker-1]}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_prev}> #{@vz.png_nav_dot_pre} </a> </td> <td align="center"> - <a href="#{@index}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_toc}> + <a href="#{@index}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_toc}> #{@vz.png_nav_dot_toc} </a> </td> @@ -1941,15 +1941,15 @@ WOK end def toc_nav(f_pre=false,f_nxt=false,use=1) pre=nxt='' - toc=%{<a href="#{@index}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_toc}> + toc=%{<a href="#{@index}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_toc}> #{@vz.epub_png_nav_toc} </a> } - pre=%{<a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker-use]}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_prev}> + pre=%{<a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker-use]}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_prev}> #{@vz.epub_png_nav_pre} </a> } if f_pre==true - nxt=%{<a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker+1]}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_next}> + nxt=%{<a href="#{@seg_name_xhtml[@seg_name_xhtml_tracker+1]}#{Sfx[:epub_xhtml]}" target="_top" #{@vz.js_next}> #{@vz.epub_png_nav_nxt} </a> } if f_nxt==true @@ -2439,7 +2439,7 @@ WOK fn='doc' if fn.to_s.empty? #you may wish to reconsider, sends to 'doc' where no segment info %{ <p class="endnote"> - #{@endnote_part_a}#{fn}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}#{@endnote_part_b} + #{@endnote_part_a}#{fn}#{Sfx[:epub_xhtml]}#{@endnote_part_b} </p> } end diff --git a/lib/sisu/v3/epub_segments.rb b/lib/sisu/v3/epub_segments.rb index 7e4c412e..67d0884c 100644 --- a/lib/sisu/v3/epub_segments.rb +++ b/lib/sisu/v3/epub_segments.rb @@ -238,7 +238,7 @@ WOK and dob.ln==4 if tracking != 0 Seg.new(@md).tail - segfilename="#{dir_epub_cont}/#{@@seg_name_xhtml[tracking-1]}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" + segfilename="#{dir_epub_cont}/#{@@seg_name_xhtml[tracking-1]}#{Sfx[:epub_xhtml]}" output_epub_cont_seg=File.new(segfilename,'w') if @@seg_name_xhtml[tracking-1] if dob.is=='heading' \ or @@seg_name_xhtml[tracking-1] !~/endnotes|book_index|metadata/ @@ -259,7 +259,7 @@ WOK heading_art(dob) head(dob) if @@seg_name_xhtml[tracking]=='sisu_manifest' # this is for manifest, includes navigation bug - segfilename="#{dir_epub_cont}/#{@@seg_name_xhtml[tracking]}#{@md.lang_code_insert}#{Sfx[:epub_xhtml]}" + segfilename="#{dir_epub_cont}/#{@@seg_name_xhtml[tracking]}#{Sfx[:epub_xhtml]}" output_epub_cont_seg=File.new(segfilename,'w') Seg_output.new(@md,output_epub_cont_seg,@@seg,@minitoc,'sisu_manifest').output Seg.new.reinitialise #BUG navigation bug with items following metadata, and occurring before manifest, this becomes a bug ... work area for book index, FIX diff --git a/lib/sisu/v3/epub_tune.rb b/lib/sisu/v3/epub_tune.rb index d691361b..fedef1b3 100644 --- a/lib/sisu/v3/epub_tune.rb +++ b/lib/sisu/v3/epub_tune.rb @@ -274,11 +274,11 @@ module SiSU_EPUB_Tune c=m[/"(.+?)"/m,1] caption=%{<br /><p class="caption">#{c}</p>} if c png=m.scan(/\S+/)[0] - image_path='./image' + image_path=@md.file.output_path.epub.rel_image #image_path=@env.url.images_epub ins=if u \ and u.strip !~/^image$/ - %{<a href="#{u}"><img src="#{@env.url.images_epub}/#{png}" #{w} #{h} naturalsizeflag="0" align="bottom" border="0" /></a>#{caption}} - else %{<img src="#{@env.url.images_epub}/#{png}" #{w} #{h} naturalsizeflag="0" align="bottom" border="0" />#{caption}} + %{<a href="#{u}"><img src="#{image_path}/#{png}" #{w} #{h} naturalsizeflag="0" align="bottom" border="0" /></a>#{caption}} + else %{<img src="#{image_path}/#{png}" #{w} #{h} naturalsizeflag="0" align="bottom" border="0" />#{caption}} end word.gsub!(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/,ins) else diff --git a/lib/sisu/v3/html_scroll.rb b/lib/sisu/v3/html_scroll.rb index 0a37bcca..beb3700a 100644 --- a/lib/sisu/v3/html_scroll.rb +++ b/lib/sisu/v3/html_scroll.rb @@ -81,6 +81,7 @@ module SiSU_HTML_scroll @rcdc=false @scr={ body: [], metadata: [], owner_details: [] } data.each do |dob| + dob.obj.gsub!(/#{@md.file.output_path.html_seg.rel_image}/m,@md.file.output_path.html_scroll.rel_image) if defined? dob.name and dob.name =~/^meta/ \ and dob.obj =~/Document Information/ dob.obj.gsub!(/(Document Information(?: \(metadata\))?)/,'\1<a name="docinfo"></a>') diff --git a/lib/sisu/v3/html_tune.rb b/lib/sisu/v3/html_tune.rb index c97183f1..afedec54 100644 --- a/lib/sisu/v3/html_tune.rb +++ b/lib/sisu/v3/html_tune.rb @@ -257,9 +257,10 @@ module SiSU_HTML_Tune c=m[/"(.+?)"/m,1] caption=%{<br /><p class="caption">#{c}</p>} if c png=m.scan(/\S+/)[0] - image_path=if @md.fns =~/\.-ss[tm]$/; @env.url.images_external - else @env.url.images_local - end + image_path=@md.file.output_path.html_seg.rel_image + #image_path=(@md.fns =~/\.-ss[tm]$/) \ + #? @env.url.images_external + #: @env.url.images_local ins=if u \ and u.strip !~/^image$/ %{<a href="#{u}"><img src="#{image_path}/#{png}" #{w} #{h} naturalsizeflag="0" align="bottom" border="0"></a>#{caption}} diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v3/hub.rb index 029c2861..088fb309 100644 --- a/lib/sisu/v3/hub.rb +++ b/lib/sisu/v3/hub.rb @@ -68,7 +68,7 @@ module SiSU @opt,@req,@message=opt,req,message @n_do=0 end - def pod_output(fns_pod) + def pod3_output(fns_pod) dir_pwd=@@env.path.pwd dir_pod=@@env.sisupod_gen_v3(fns_pod) Dir.chdir("#{dir_pod}/doc") @@ -95,6 +95,33 @@ module SiSU @pwd=`pwd`.strip Dir.chdir(@pwd) end + def pod2_output(fns_pod) + dir_pwd=@@env.path.pwd + dir_pod=@@env.sisupod_gen_v2(fns_pod) + Dir.chdir(dir_pod) + system("ls") + files=Dir['*.ss[tm]'] + files_ssm=Dir['*.ssm'] + files_sst=Dir['*.sst'] + content=if files_ssm.length > 0 + files_ssm.join(' ') + elsif files_sst.length > 0 + files_sst.join(' ') + else + p 'no files found' + end + @opt.fns=content + if FileTest.directory?(dir_pod) + Dir.chdir(dir_pod) + system(" + sisu3 -CC #{@opt.cmd} #{@opt.mod.join(' ')} #{content} + #sisu3 -CC #{@opt.cmd} -G #{@opt.mod.join(' ')} #{content} + ") + Dir.chdir(dir_pwd) + end + @pwd=`pwd`.strip + Dir.chdir(@pwd) + end def select require_relative @req if @req =~/^conf$/ # -C @@ -104,7 +131,6 @@ module SiSU @opt.files.each_with_index do |fns,i| env=SiSU_Env::Info_env.new(fns) if fns =~ /sisupod(?:\.txz)?|\S+?(?:\.ss[mt]\.txz|\.ssp)$/ -# env=SiSU_Env::Info_env.new(fns) require_relative 'remote' # remote.rb #check pod_name=if fns =~ /http:\/\/\S+?(?:\.ss[mt]\.txz|\.ssp)$/ SiSU_Remote::Remote_download.new(fns).pod.name @@ -114,7 +140,19 @@ module SiSU end SiSU_Screen::Ansi.new(@opt.cmd,pod_name).puts_blue unless @opt.cmd =~/q/ @opt.files.shift - pod_output(pod_name) + pod3_output(pod_name) + break + elsif fns =~ /sisupod(?:\.zip)?|\S+?(?:\.ss[mt]\.zip|\.ssp)$/ + require_relative 'remote' # remote.rb #check + pod_name=if fns =~ /http:\/\/\S+?(?:\.ss[mt]\.zip|\.ssp)$/ + SiSU_Remote::Remote_download.new(fns).pod.name + else + re_p=/(\S+?\.ss[mt](?:\.zip)?)$/ + re_p.match(fns).captures.join + end + SiSU_Screen::Ansi.new(@opt.cmd,pod_name).puts_blue unless @opt.cmd =~/q/ + @opt.files.shift + pod2_output(pod_name) break else put=fns.gsub(/(.+)?\.ssm\.sst$/,'\1.ssm') @@ -305,36 +343,47 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ if @opt.cmd =~/E/ # re-assign character require 'profile' end - if @opt.act[:harvest] - require_relative 'harvest' # harvest.rb - SiSU_Harvest::Source.new(@opt).read # -h -H html.rb + if @opt.act[:harvest][:bool] + require_relative 'harvest' # harvest.rb + SiSU_Harvest::Source.new(@opt).read # -h -H html.rb elsif @opt.mod.inspect =~/--convert|--to|--from/ - require_relative 'sst_convert_markup' # sst_convert_markup.rb + require_relative 'sst_convert_markup' # sst_convert_markup.rb elsif @opt.cmd =~/([AabCcDdeFfGgHhIiJjkLMmNnOoPpQqRrSsTtUuVvwWXxYyZ_0-9])/ \ and @opt.cmd =~/^-/ \ and @opt.mod.inspect !~/--(?:sitemaps|query|identify)/ \ or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ @cX=SiSU_Screen::Ansi.new(@opt.cmd).cX flag=SiSU_Env::Info_processing_flag.new - if @opt.cmd =~/[vVM]/ #% version information + if @opt.cmd =~/[vVM]/ #% version information if @opt.cmd =~/V/ \ - and @opt.files.empty? #% environment + and @opt.files.empty? #% environment SiSU_Help::Help.new('env',@opt).environment else SiSU_Help::Help.new('env',@opt).sisu_version end end - if @opt.act[:license] #% license information + if @opt.act[:license][:bool] #% license information SiSU_Help::Help.new('license',@opt).help_request end - if @opt.act[:dal] or @opt.act[:maintenance] #% --maintenance, -m for -C + if @opt.act[:dal][:bool] \ + or @opt.act[:maintenance][:bool] #% --maintenance, -m for -C path={} path[:css]=@@env.path.output + '/_sisu/css' path[:xml]=@@env.path.output + '/_sisu/xml' path[:xsd]=path[:xml] + '/xsd' path[:xsd]=path[:xml] + '/rnc' path[:xsd]=path[:xml] + '/rng' - re_p=/(sisupod(?:\.txz)?|\S+?\.ss[mt]\.txz|[^\/]+?\.ssp)$/ - unless @opt.files.join(',') =~ re_p #do not mix pods with source markup files in command line + re_p3=/(sisupod(?:\.txz)?|\S+?\.ss[mt]\.txz|[^\/]+?\.ssp)$/ + unless @opt.files.join(',') =~ re_p3 #do not mix pods with source markup files in command line + unless ( FileTest.directory?(path[:css]) \ + and FileTest.directory?(path[:xsd]) ) + @opt.cmd=@opt.cmd +='C' unless @opt.cmd =~/C/ #FIX + end + if @opt.cmd =~/M/ + $VERBOSE=false #debug $VERBOSE=true + end + end + re_p2=/(sisupod(?:\.zip)?|\S+?\.ss[mt]\.zip)$/ + unless @opt.files.join(',') =~ re_p2 #do not mix pods with source markup files in command line unless ( FileTest.directory?(path[:css]) \ and FileTest.directory?(path[:xsd]) ) @opt.cmd=@opt.cmd +='C' unless @opt.cmd =~/C/ #FIX @@ -344,7 +393,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ end end end - if @opt.act[:site_init] #% --init-site, -C initialize/configure + if @opt.act[:site_init][:bool] #% --init-site, -C initialize/configure op('conf','configure site') if @opt.cmd =~/R/ if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ @@ -360,36 +409,49 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ end end end - if @opt.act[:sample_search_form] #% --sample-search-form, -F cgi sample search form + if @opt.act[:sample_search_form][:bool] #% --sample-search-form, -F cgi sample search form Operations.new(@opt).cgi end - if @opt.act[:webrick] #% --webrick, -W webrick + if @opt.act[:webrick][:bool] #% --webrick, -W webrick Operations.new(@opt).webrick end - if @opt.cmd =~/Z/ #% -Z wipe previous output clean + if @opt.cmd =~/Z/ #% -Z wipe previous output clean op('zap','Zap, deletions') end - if @opt.act[:share_source] + if @opt.act[:share_source][:bool] op('share_src','SiSU markup source') end - if @opt.act[:dal] + if @opt.act[:dal][:bool] @retry_count= -1 begin path_image='./_sisu/processing/external_document/image' path_skin='./_sisu/processing/external_document/skin/doc' @get_s,@get_p,@get_pl=[],[],[] re_s=/((?:https?|file):\/\/\S+?\.sst)$/ - re_p=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.txz|sisupod(?:\.txz)?|\.ssp))/ - re_pl=/^(\/\S+?\.ss[mt]\.txz)/ + re_p3=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.txz|sisupod(?:\.txz)?|\.ssp))/ + re_pl3=/^(\/\S+?\.ss[mt]\.txz)/ + @opt.files.each do |fns| + if fns =~re_s + @get_s << re_s.match(fns)[1] if re_s + end + if fns =~re_p3 + @get_p << re_p3.match(fns)[1] if re_p3 + end + if fns =~re_pl3 + @get_pl << re_pl3.match(fns)[1] if re_p3 + end + end + re_p2=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.zip|sisupod(?:\.zip)?|\.ssp))/ + re_pl2=/^(\/\S+?\.ss[mt]\.zip)/ @opt.files.each do |fns| if fns =~re_s @get_s << re_s.match(fns)[1] if re_s end - if fns =~re_p - @get_p << re_p.match(fns)[1] if re_p + if fns =~re_p2 + @get_p << re_p2.match(fns)[1] if re_p2 end - if fns =~re_pl - @get_pl << re_pl.match(fns)[1] if re_p + if fns =~re_pl2 + @get_pl << re_pl2.match(fns)[1] if re_p2 end end if @get_s.length > 0 #% remote markup file .sst @@ -397,8 +459,8 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ SiSU_Remote::Get.new(@opt,@get_s).fns Operations.new.counter end - if @get_p.length > 0 #% remote sisupod - require_relative 'remote' # remote.rb + if @get_p.length > 0 #% remote sisupod + require_relative 'remote' # remote.rb SiSU_Remote::Get.new(@opt,@get_p).sisupod end rescue @@ -409,60 +471,60 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ end @opt.files=@opt.files.collect {|x| x=x.gsub(/(?:https?|file):\/\/\S+\/(\S+)\.sst$/,'\1.-sst') } end - if @opt.act[:dal] #%--dal, -m + if @opt.act[:dal][:bool] #%--dal, -m op('dal','dal') end @opt.files=@opt.files.collect {|x| x=x.gsub(/\.ssm$/,'.ssm.sst') } - if @opt.act[:sisupod] #% --sisupod, -S make sisupod + if @opt.act[:sisupod][:bool] #% --sisupod, -S make sisupod op('sisupod_make','sisupod (txz)') if @opt.fns=~/\.kdi._sst/ - op('share_src_kdissert','kdissert (kdi)') #% -S share kdissert source + op('share_src_kdissert','kdissert (kdi)') #% -S share kdissert source end end - if @opt.act[:qrcode] #% --qrcode, -Q + if @opt.act[:qrcode][:bool] #% --qrcode, -Q op('qrcode','QRcode') end - if @opt.act[:hash_digests] #% --hash-digests, -N digest tree + if @opt.act[:hash_digests][:bool] #% --hash-digests, -N digest tree op('digests','digests') end - if @opt.act[:html] #% --html, -h + if @opt.act[:html][:bool] #% --html, -h op('html','html') end - if @opt.act[:txt] #% --txt, -t -a + if @opt.act[:txt][:bool] #% --txt, -t -a #-A -f -e -E plaintext -a creates ms-dos type; -A creates unix type, plaintext file op('plaintext','plaintext') end - if @opt.act[:epub] #% --epub, -e + if @opt.act[:epub][:bool] #% --epub, -e op('epub','ePub') end - if @opt.act[:odt] #% --odt, -o opendocument + if @opt.act[:odt][:bool] #% --odt, -o opendocument op('odf','OpenDocument') end - if @opt.act[:xml_sax] #% --xml-sax, -x xml sax type + if @opt.act[:xml_sax][:bool] #% --xml-sax, -x xml sax type op('xml','xml sax') end - if @opt.act[:xml_dom] #% --xml-dom, -x xml dom type + if @opt.act[:xml_dom][:bool] #% --xml-dom, -x xml dom type op('xml_dom','xml dom') end - #if @opt.act[:fictionbook] #% --fictionbook, -f fictionbook xml + #if @opt.act[:fictionbook] #% --fictionbook, -f fictionbook xml # op('xml_fictionbook','xml fictionbook') #end - if @opt.act[:xhtml] #% --xhtml, -b xhtml + if @opt.act[:xhtml][:bool] #% --xhtml, -b xhtml op('xhtml','xhtml sax') end - if @opt.act[:concordance] #% --concordance, -w + if @opt.act[:concordance][:bool] #% --concordance, -w op('concordance','Concordance') end - if @opt.cmd =~/O/ #% -O open archive initiative, metadata harvesting + if @opt.cmd =~/O/ #% -O open archive initiative, metadata harvesting op('xml_md_oai_pmh_dc','OAI PMH') end - if @opt.act[:po4a] #% --po4a, -P + if @opt.act[:po4a][:bool] #% --po4a, -P op('po4a','po4a') end - if @opt.act[:git] #% --git, -g sisu git + if @opt.act[:git][:bool] #% --git, -g sisu git op('git','SiSU Git') end - if @opt.cmd =~/T/ #% -T termsheet/standard form + if @opt.cmd =~/T/ #% -T termsheet/standard form SiSU_Help::Help.new('termsheet').help_request @opt.files.each do |fns| if FileTest.file?(fns) @@ -476,38 +538,38 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ end Operations.new.counter end - if @opt.cmd =~/k/ #% -T temporary tests + if @opt.cmd =~/k/ #% -T temporary tests op('xml_scaffold','XML scaffold') end - if @opt.act[:pdf] #% --pdf, -p latex/ texpdf + if @opt.act[:pdf][:bool] #% --pdf, -p latex/ texpdf op('texpdf','LaTeX pdf') end - if @opt.act[:manpage] #% --manpage, -i + if @opt.act[:manpage][:bool] #% --manpage, -i op('manpage','manpage') end - if @opt.act[:texinfo] #% --texinfo, -I + if @opt.act[:texinfo][:bool] #% --texinfo, -I op('texinfo','TeX Info') end - if @opt.act[:psql] #% --pg, -D DB postgresql + if @opt.act[:psql][:bool] #% --pg, -D DB postgresql op('dbi','postgresql') end - if @opt.act[:sqlite] #% --sqlite, -d DB sqlite + if @opt.act[:sqlite][:bool] #% --sqlite, -d DB sqlite op('dbi','sqlite') end - if @opt.act[:dal] #% --dal, -m embedded content + if @opt.act[:dal][:bool] #% --dal, -m embedded content op('embedded','Embedded Content') end - if @opt.act[:manifest] #% --manifest, -y + if @opt.act[:manifest][:bool] #% --manifest, -y op('manifest','Manifest') end - if @opt.act[:sitemap] #% --sitemap, -Y + if @opt.act[:sitemap][:bool] #% --sitemap, -Y op('sitemaps','Sitemap') end if @opt.mod.inspect !~/--harvest/ - if @opt.act[:scp] #% -r copy to remote server + if @opt.act[:scp][:bool] #% -r copy to remote server op('remote','scp') end - if @opt.act[:rsync] #% -R copy to remote server + if @opt.act[:rsync][:bool] #% -R copy to remote server op('remote','rsync') end else @@ -555,7 +617,7 @@ p "here #{__FILE__} #{__LINE__}" if @opt =~/M/ @opt.files.each do |fns| if FileTest.file?(fns) @opt.fns=fns - unless @opt.fns =~ /(?:\.(?:(?:-|ssm\.)?sst|ssm|ssp|sx[sdn]\.xml|termsheet.rb)|\S+?\.ss[mt]\.txz|sisupod(?:\.txz)?|\S+?\.ssp)$/ + unless @opt.fns =~ /(?:\.(?:(?:-|ssm\.)?sst|ssm|ssp|sx[sdn]\.xml|termsheet.rb)|\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)?|\S+?\.ssp)$/ if @opt.cmd.inspect=~/-P/ elsif @opt.fns=~/\.kdi$/ \ and @opt.mod.inspect =~/--(?:convert(?:-from)?|from)[=-]kdi/ diff --git a/lib/sisu/v3/manifest.rb b/lib/sisu/v3/manifest.rb index 3b34d0b2..adc048ef 100644 --- a/lib/sisu/v3/manifest.rb +++ b/lib/sisu/v3/manifest.rb @@ -418,9 +418,8 @@ module SiSU_Manifest def qrc_image pth="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" fn=@f.base_filename.manifest_txt - #fix relative path for different output structures - img_md="../../_sisu/image/qrc_md.#{fn}.png" - img_title="../../_sisu/image/qrc_title.#{fn}.png" + img_md="#{@md.file.output_path.html.rel_image}/qrc_md.#{fn}.png" + img_title="#{@md.file.output_path.html.rel_image}/qrc_title.#{fn}.png" if FileTest.file?("#{pth}/qrc_md.#{fn}.png")==true @manifest[:html] <<<<WOK <tr><td class="left"> diff --git a/lib/sisu/v3/options.rb b/lib/sisu/v3/options.rb index ac31a896..eeca31ec 100644 --- a/lib/sisu/v3/options.rb +++ b/lib/sisu/v3/options.rb @@ -116,7 +116,7 @@ module SiSU_commandline end end def sisu_glob_rules(a) - a=if a.inspect =~/"-\S*[fG]/ \ + a=if a.inspect =~/"-[A-Za-z0-9]*[fG]/ \ or a.inspect =~/"--find"|"--glob"/ b,f=[],[] find_flag=false @@ -138,11 +138,9 @@ module SiSU_commandline r.gsub!(/\|#{@lng_base}\|/,'|') @lang_regx=%r{(?:#{r})} z=if find_flag - if f.length > 0 - b + find_select(find_flag,f) - else - find_all(find_flag,b) - end + (f.length > 0) \ + ? (b + find_select(find_flag,f)) + : find_all(find_flag,b) elsif a.inspect =~/"(?:-\S+?|--\S+?)"/ \ && a.inspect =~/"#{@lang_regx}\/?"/ \ && a.inspect =~/"#{@lng_base}\/\S+?\.ss[tm]"/ @@ -203,9 +201,9 @@ module SiSU_commandline if x =~/^--\S+/ m << x end - elsif x =~ /(?:\.(?:(?:-|ssm\.)?sst(?:\.xml)?|ssm|ssi|sx[sdn]\.xml|s[1-3]|kdi|ssp)|\S+?\.ss[mt]\.txz|sisupod(\.txz)?)$/ + elsif x =~ /(?:\.(?:(?:-|ssm\.)?sst(?:\.xml)?|ssm|ssi|sx[sdn]\.xml|s[1-3]|kdi|ssp)|\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip))$/ if x =~/^(?:https?|file):\/\/\S+/ \ - or x =~/\S+?\.ss[mt]\.txz|sisupod\.txz/ \ + or x =~/\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)/ \ && FileTest.file?(x) x=x.gsub(/^file:\/\//,'') f << x @@ -377,204 +375,173 @@ module SiSU_commandline def opt_act #note mod line commands have already been converted to command characters, cmd cmd,mod=@cmd,@mod act={} - act[:license]=if cmd =~/L/ \ - or mod.inspect =~/"--license/ - true - else false - end - act[:site_init]=if cmd =~/C/ \ - or mod.inspect =~/"--init-site/ - true - else false - end - act[:verbose]=if cmd =~/v/ \ - or mod.inspect =~/"--verbose"/ - true - else false - end - act[:quiet]=if cmd =~/q/ \ - or mod.inspect =~/"--quiet"/ - true - else false - end + act[:license]=(cmd =~/L/ \ + || mod.inspect =~/"--license/) \ + ? { bool: true } + : { bool: false } + act[:site_init]=(cmd =~/C/ \ + || mod.inspect =~/"--init-site/) \ + ? { bool: true } + : { bool: false } + act[:rc]=if mod.inspect =~/"--rc=/ + x=Dir.pwd + '/' + mod.join.gsub(/--rc=/,'') + { bool: true, inst: x } + else + { bool: false, inst: '' } + end + act[:verbose]=(cmd =~/v/ \ + || mod.inspect =~/"--verbose"/) \ + ? { bool: true } + : { bool: false } + act[:quiet]=(cmd =~/q/ \ + || mod.inspect =~/"--quiet"/) \ + ? { bool: true } + : { bool: false } act[:color_state]=if mod.inspect =~/"--color-on"|"--color"/ - true + { bool: true } elsif mod.inspect =~/"--color-off"/ - true - else true #fix default color + { bool: false } + else { bool: true } #fix default color end # act[:color_toggle]=if cmd =~/c/ \ # or mod.inspect =~/"--color-toggle"/ # true # else false # end - act[:maintenance]=if cmd =~/M/ \ - or mod.inspect =~/"--maintenance|--keep-processing-files"/ - true - else false - end + act[:maintenance]=(cmd =~/M/ \ + || mod.inspect =~/"--maintenance|--keep-processing-files"/) \ + ? { bool: true } + : { bool: false } act[:ocn]=if mod.inspect =~/"--no-ocn"/ - false - else true - end - act[:dal]=if cmd =~/m/ \ - or mod.inspect =~/"--dal"/ - true - else false - end - act[:html]=if cmd =~/h/ \ - or mod.inspect =~/"--html"/ - true - else false - end - act[:concordance]=if cmd =~/w/ \ - or mod.inspect =~/"--concordance"/ - true - else false - end - act[:pdf]=if cmd =~/p/ \ - or mod.inspect =~/"--pdf"/ - true - else false - end - act[:epub]=if cmd =~/e/ \ - or mod.inspect =~/"--epub"/ - true - else false - end - act[:odt]=if cmd =~/o/ \ - or mod.inspect =~/"--odf"/ - true - else false - end - act[:xml_sax]=if cmd =~/x/ \ - or mod.inspect =~/"--xml-sax"/ - true - else false - end - act[:xml_dom]=if cmd =~/X/ \ - or mod.inspect =~/"--xml-dom"/ - true - else false - end - act[:xhtml]=if cmd =~/b/ \ - or mod.inspect =~/"--xhtml"/ - true - else false - end - act[:txt]=if cmd =~/[at]/ \ - or mod.inspect =~/"--txt"/ - true - else false - end - act[:manpage]=if cmd =~/i/ \ - or mod.inspect =~/"--manpage"/ - true - else false - end - act[:texinfo]=if cmd =~/I/ \ - or mod.inspect =~/"--texinfo"/ - true - else false - end - act[:fictionbook]=if cmd =~/f/ \ - or mod.inspect =~/"--fictionbook"/ - true - else false - end - act[:psql]=if cmd =~/D/ \ - or mod.inspect =~/"--pg"|"--pgsql"/ - true - else false - end - act[:sqlite]=if cmd =~/d/ \ - or mod.inspect =~/"--sqlite"/ - true - else false - end - act[:harvest]=if mod.inspect =~/"--harvest"/ - true - else false - end - act[:po4a]=if cmd =~/P/ \ - or mod.inspect =~/"--po4a"|"--pot?"/ - true - else false - end - act[:git]=if cmd =~/g/ \ - or mod.inspect =~/"--git"/ - true - else false - end - act[:hash_digests]=if cmd =~/N/ \ - or mod.inspect =~/"--hash-digests"/ - true - else false - end - act[:sample_search_form]=if cmd =~/F/ \ - or mod.inspect =~/"--sample-search-form"/ - true - else false - end - act[:webrick]=if cmd =~/W/ \ - or mod.inspect =~/"--webrick"/ - true - else false - end - act[:share_source]=if cmd =~/s/ \ - or mod.inspect =~/"--source"/ - true - else false - end - act[:sisupod]=if cmd =~/S/ \ - or mod.inspect =~/"--sisupod"/ - true - else false - end - act[:scp]=if cmd =~/r/ \ - or mod.inspect =~/"--scp"/ - true - else false - end - act[:rsync]=if cmd =~/R/ \ - or mod.inspect =~/"--rsync"/ - true - else false - end - act[:delete_output]=if cmd =~/z/ \ - or mod.inspect =~/"--delete"|"--zap"/ - true - else false - end - act[:urls_all]=if cmd =~/U/ \ - or mod.inspect =~/"--urls-all"/ - true - else false - end - act[:urls_seleted]=if cmd =~/u/ \ - or mod.inspect =~/"--urls"/ - true - else false - end - act[:sitemap]=if cmd =~/Y/ \ - or mod.inspect =~/"--sitemap"/ - true - else false - end - act[:qrcode]=if cmd =~/Q/ \ - or mod.inspect =~/"--qrcode"/ - true - else false - end - act[:manifest]=if cmd =~/y/ \ - or mod.inspect =~/"--manifest"/ - true - else false - end - act[:help]=if mod.inspect =~/"--help/ - true - else false - end + { bool: false } + else { bool: true } + end + act[:dal]=(cmd =~/m/ \ + || mod.inspect =~/"--dal"/) \ + ? { bool: true } + : { bool: false } + act[:html]=(cmd =~/h/ \ + || mod.inspect =~/"--html"/) \ + ? { bool: true } + : { bool: false } + act[:concordance]=(cmd =~/w/ \ + || mod.inspect =~/"--concordance"/) \ + ? { bool: true } + : { bool: false } + act[:pdf]=(cmd =~/p/ \ + || mod.inspect =~/"--pdf"/) \ + ? { bool: true } + : { bool: false } + act[:epub]=(cmd =~/e/ \ + || mod.inspect =~/"--epub"/) \ + ? { bool: true } + : { bool: false } + act[:odt]=(cmd =~/o/ \ + || mod.inspect =~/"--odf"/) \ + ? { bool: true } + : { bool: false } + act[:xml_sax]=(cmd =~/x/ \ + || mod.inspect =~/"--xml-sax"/) \ + ? { bool: true } + : { bool: false } + act[:xml_dom]=(cmd =~/X/ \ + || mod.inspect =~/"--xml-dom"/) \ + ? { bool: true } + : { bool: false } + act[:xhtml]=(cmd =~/b/ \ + || mod.inspect =~/"--xhtml"/) \ + ? { bool: true } + : { bool: false } + act[:txt]=(cmd =~/[at]/ \ + || mod.inspect =~/"--txt"/) \ + ? { bool: true } + : { bool: false } + act[:manpage]=(cmd =~/i/ \ + || mod.inspect =~/"--manpage"/) \ + ? { bool: true } + : { bool: false } + act[:texinfo]=(cmd =~/I/ \ + || mod.inspect =~/"--texinfo"/) \ + ? { bool: true } + : { bool: false } + act[:fictionbook]=(cmd =~/f/ \ + || mod.inspect =~/"--fictionbook"/) \ + ? { bool: true } + : { bool: false } + act[:psql]=(cmd =~/D/ \ + || mod.inspect =~/"--pg"|"--pgsql"/) \ + ? { bool: true } + : { bool: false } + act[:sqlite]=(cmd =~/d/ \ + || mod.inspect =~/"--sqlite"/) \ + ? { bool: true } + : { bool: false } + act[:harvest]=(mod.inspect =~/"--harvest"/) \ + ? { bool: true } + : { bool: false } + act[:po4a]=(cmd =~/P/ \ + || mod.inspect =~/"--po4a"|"--pot?"/) \ + ? { bool: true } + : { bool: false } + act[:git]=(cmd =~/g/ \ + || mod.inspect =~/"--git"/) \ + ? { bool: true } + : { bool: false } + act[:hash_digests]=(cmd =~/N/ \ + || mod.inspect =~/"--hash-digests"/) \ + ? { bool: true } + : { bool: false } + act[:sample_search_form]=(cmd =~/F/ \ + || mod.inspect =~/"--sample-search-form"/) \ + ? { bool: true } + : { bool: false } + act[:webrick]=(cmd =~/W/ \ + || mod.inspect =~/"--webrick"/) \ + ? { bool: true } + : { bool: false } + act[:share_source]=(cmd =~/s/ \ + || mod.inspect =~/"--source"/) \ + ? { bool: true } + : { bool: false } + act[:sisupod]=(cmd =~/S/ \ + || mod.inspect =~/"--sisupod"/) \ + ? { bool: true } + : { bool: false } + act[:scp]=(cmd =~/r/ \ + || mod.inspect =~/"--scp"/) \ + ? { bool: true } + : { bool: false } + act[:rsync]=(cmd =~/R/ \ + || mod.inspect =~/"--rsync"/) \ + ? { bool: true } + : { bool: false } + act[:delete_output]=(cmd =~/z/ \ + || mod.inspect =~/"--delete"|"--zap"/) \ + ? { bool: true } + : { bool: false } + act[:urls_all]=(cmd =~/U/ \ + || mod.inspect =~/"--urls-all"/) \ + ? { bool: true } + : { bool: false } + act[:urls_seleted]=(cmd =~/u/ \ + || mod.inspect =~/"--urls"/) \ + ? { bool: true } + : { bool: false } + act[:sitemap]=(cmd =~/Y/ \ + || mod.inspect =~/"--sitemap"/) \ + ? { bool: true } + : { bool: false } + act[:qrcode]=(cmd =~/Q/ \ + || mod.inspect =~/"--qrcode"/) \ + ? { bool: true } + : { bool: false } + act[:manifest]=(cmd =~/y/ \ + || mod.inspect =~/"--manifest"/) \ + ? { bool: true } + : { bool: false } + act[:help]=(mod.inspect =~/"--help/) \ + ? { bool: true } + : { bool: false } @act=act end def cmd diff --git a/lib/sisu/v3/param.rb b/lib/sisu/v3/param.rb index 1be55583..f9d7ecb0 100644 --- a/lib/sisu/v3/param.rb +++ b/lib/sisu/v3/param.rb @@ -989,13 +989,11 @@ module SiSU_Param m=/((.+?)(?:\~\w\w(?:_\w\w)?)?)\.((?:-|ssm\.)?sst|ssm|ssi)$/ #watch added match for sss @fnn,@fnb,@fnt=@fns[m,1],@fns[m,2],@fns[m,3] @flv=@env.document_language_versions_found[:f] - #@fnz=(@fns =~/\.(?:ssm\.sst|ssm)$/) ? (@fnn + '.ssm.zip') : (@fnn + '.sst.zip') else m=/((.+?)(?:\~\w\w(?:_\w\w)?)?)\.((?:-|ssm\.)?sst|ssm)$/ #watch added match for sss - #m=/((.+?)(?:\~\w{2,5})?)\.((?:-|ssm\.)?sst|ssm)$/ #watch added match for sss @fnn,@fnb,@fnt=@fns[m,1],@fns[m,2],@fns[m,3] @flv=@env.document_language_versions_found[:f] - @fnz=(@fns =~/\.(?:ssm\.sst|ssm)$/) ? (@fnn + '.ssm.zip') : (@fnn + '.sst.zip') + @fnz=(@fns =~/\.(?:ssm\.sst|ssm)$/) ? (@fnn + '.ssm.txz') : (@fnn + '.sst.txz') end @papersize=@env.papersize #'A4' #default size #get first from SiSU_Env:: # @env is probably no longer most appropriate name! as default info is more general @sfx_src=@fns[m,2] diff --git a/lib/sisu/v3/qrcode.rb b/lib/sisu/v3/qrcode.rb index fe9ca432..e244231e 100644 --- a/lib/sisu/v3/qrcode.rb +++ b/lib/sisu/v3/qrcode.rb @@ -709,9 +709,9 @@ WOK @en_manifest=if @env.output_dir_structure.by_language_code? "#{url}/en/manifest/#{@md.fnb}.html" elsif @env.output_dir_structure.by_filetype? - "#{url}/manifest/#{@md.fnb}.#{lc}.html" + "#{url}/manifest/#{@md.fnb}.#{@md.opt.lng}.html" else - "#{url}/sisu_manifest.#{lc}.html" + "#{url}/sisu_manifest.#{@md.opt.lng}.html" end @manifest[:txt] <<<<WOK #{@translate.manifest_description_metadata} diff --git a/lib/sisu/v3/remote.rb b/lib/sisu/v3/remote.rb index bda7529b..1e974f9c 100644 --- a/lib/sisu/v3/remote.rb +++ b/lib/sisu/v3/remote.rb @@ -180,8 +180,8 @@ module SiSU_Remote @requested_file=requested_file end def pod - re_p_div=/https?:\/\/([^\/]+)(\/\S+)\/(sisupod(?:\.txz)?|\S+?(?:\.ss[mt]\.txz)?|[^\/]+?\.ssp)$/ - re_p=/(sisupod(?:\.txz)?|\S+?\.ss[mt](?:\.txz)?|[^\/]+?\.ssp)$/ + re_p_div=/https?:\/\/([^\/]+)(\/\S+)\/(sisupod\.(?:txz|zip)|\S+?(?:\.ss[mt]\.(?:txz|zip))?|[^\/]+?\.ssp)$/ + re_p=/(sisupod\.(?:txz|zip)|\S+?\.ss[mt]\.(?:txz|zip)?|[^\/]+?\.ssp)$/ if @requested_file =~ re_p_div @site,@pth,@pod= re_p_div.match(@requested_file).captures elsif @requested_file =~ re_p diff --git a/lib/sisu/v3/shared_xml.rb b/lib/sisu/v3/shared_xml.rb index daf59a4c..a1a68593 100644 --- a/lib/sisu/v3/shared_xml.rb +++ b/lib/sisu/v3/shared_xml.rb @@ -378,13 +378,13 @@ module SiSU_XML_munge dob.obj.gsub!(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}(\S+?)#{Mx[:rel_c]}/, '<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="#\2">\1</link>') dob.obj.gsub!(/(?:^|[^_\\])#{Mx[:lnk_o]}[ ]*(\S+?\.(?:jpg|png|gif))[ ]+(\d+)x(\d+)(\s+[^}]+)?#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/, - %{<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@dir.url.images_local}/\\1" width="\\2" height="\\3" />[\\1] \\4}) + %{<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@md.file.output_path.xml.rel_image}/\\1" width="\\2" height="\\3" />[\\1] \\4}) dob.obj.gsub!(/(?:^|[^_\\])#{Mx[:lnk_o]}[ ]*(\S+?\.(?:jpg|png|gif))([ ]+[^}]+)?#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/, - %{<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@dir.url.images_local}/\\1"/>\\1}) + %{<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@md.file.output_path.xml.rel_image}/\\1"/>\\1}) dob.obj.gsub!(/(?:^|[^_\\])#{Mx[:lnk_o]}[ ]*(\S+?\.(?:jpg|png|gif))[ ]+(\d+)x(\d+)(\s+[^}]+)?#{Mx[:lnk_c]}image/, - %{<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@dir.url.images_local}/\\1" width="\\2" height="\\3" />[\\1] \\4}) + %{<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@md.file.output_path.xml.rel_image}/\\1" width="\\2" height="\\3" />[\\1] \\4}) dob.obj.gsub!(/(?:^|[^_\\])#{Mx[:lnk_o]}[ ]*(\S+?\.(?:jpg|png|gif))([ ]+[^}]+)?#{Mx[:lnk_c]}image/, - %{<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@dir.url.images_local}/\\1"/>\\1}) + %{<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@md.file.output_path.xml.rel_image}/\\1"/>\\1}) dob.obj.gsub!(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/, '<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="\2">\1</link>') #watch, compare html_tune dob.obj.gsub!(/#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/, @@ -416,7 +416,7 @@ module SiSU_XML_munge dob.obj.gsub!(/(^|#{Mx[:gl_c]}|\s)&\s+/,'\1& ') #sort dob.obj.gsub!(/&([^;]{1,5})/,'&\1') #sort, rough estimate, revisit #WATCH found in node not sax dob.obj.gsub!(/(?:^|[^_\\])#{Mx[:lnk_o]}(\S+?\.(?:png|jpg|gif))[ ]+.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/, - "<image.path>#{@dir.url.images_local}\/\\1</image.path>") + "<image.path>#{@md.file.output_path.xml.rel_image}\/\\1</image.path>") dob.obj.gsub!(/ |#{Mx[:nbsp]}/,' ') wordlist=dob.obj.scan(/&[#0-9a-z]+;|\S+|\n/) #\n needed for tables, check though added 2005w17 dob.obj=tidywords(wordlist).join(' ').strip @@ -438,7 +438,7 @@ module SiSU_XML_munge dob.obj.gsub!(/(^|#{Mx[:gl_c]}|\s)&\s+/,'\1& ') #sort dob.obj.gsub!(/&([^;]{1,5})/,'&\1') #sort, rough estimate, revisit #WATCH found in node not sax dob.obj.gsub!(/(#{Mx[:lnk_o]}(\S+?\.(?:png|jpg|gif))[ ]+.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/, - "<image.path>#{@dir.url.images_local}\/\\1</image.path>") + "<image.path>#{@md.file.output_path.xml.rel_image}\/\\1</image.path>") dob.obj.gsub!(/ |#{Mx[:nbsp]}/,' ') wordlist=dob.obj.scan(/&[#0-9a-z]+;|\S+|\n/) #\n needed for tables, check though added 2005w17 dob.obj=tidywords(wordlist).join(' ').strip diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v3/sysenv.rb index 475a8369..7463cb4b 100644 --- a/lib/sisu/v3/sysenv.rb +++ b/lib/sisu/v3/sysenv.rb @@ -217,9 +217,10 @@ module SiSU_Env m=/.+\/(?:src\/)?(\S+)/m # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m stub_pwd=@@pwd[m,1] @@rc_path=["#{@@pwd}/_sisu/#{SiSU_version_dir}","#{@@pwd}/_sisu","#{@@home}/.sisu/#{SiSU_version_dir}","#{@@home}/.sisu","#{@@sisu_etc}/#{SiSU_version_dir}"] - @@yamlrc_path=(stub_pwd !~/^sisupod$/) \ - ? (["#{@@pwd}/_sisu/#{SiSU_version_dir}","#{@@pwd}/_sisu","#{@@home}/.sisu/#{SiSU_version_dir}","#{@@home}/.sisu","#{@@sisu_etc}/#{SiSU_version_dir}"]) - : ["#{@@home}/.sisu/#{SiSU_version_dir}","#{@@home}/.sisu","#{@@sisu_etc}/#{SiSU_version_dir}"] #security policy: prevent reading of sisurc.yml in sisupod + @@yamlrc_path=["#{@@pwd}/_sisu/#{SiSU_version_dir}","#{@@pwd}/_sisu","#{@@home}/.sisu/#{SiSU_version_dir}","#{@@home}/.sisu","#{@@sisu_etc}/#{SiSU_version_dir}"] + #@@yamlrc_path=(stub_pwd !~/^sisupod$/) \ + #? (["#{@@pwd}/_sisu/#{SiSU_version_dir}","#{@@pwd}/_sisu","#{@@home}/.sisu/#{SiSU_version_dir}","#{@@home}/.sisu","#{@@sisu_etc}/#{SiSU_version_dir}"]) + #: ["#{@@home}/.sisu/#{SiSU_version_dir}","#{@@home}/.sisu","#{@@sisu_etc}/#{SiSU_version_dir}"] #security policy: prevent reading of sisurc.yml in sisupod @@ad_path=(stub_pwd !~/^sisupod$/) \ ? (["#{@@pwd}/_sisu/skin/yml","#{@@home}/.sisu/skin/yml","#{@@sisu_etc}/skin/yml"]) : ["#{@@home}/.sisu",@@sisu_etc] @@ -381,9 +382,9 @@ module SiSU_Env @@fnb ||=@fns[m,2] @@fnt ||=@fns[m,3] @@flv ||=document_language_versions_found[:f] - unless @@fns =~/\S+?\.zip/ - @@fnz ||=if @@fns =~/(?:\~\S{2,3})?\.(?:ssm\.sst|ssm)$/; @@fnb + '.ssm.zip' - elsif @@fnb; @@fnb + '.sst.zip' + unless @@fns =~/\S+?\.txz/ + @@fnz ||=if @@fns =~/(?:\~\S{2,3})?\.(?:ssm\.sst|ssm)$/; @@fnb + '.ssm.txz' + elsif @@fnb; @@fnb + '.sst.txz' else '' # e.g. termsheet end end @@ -2496,11 +2497,9 @@ WOK unless FileTest.directory?(sisupod_processing_path) mkdir_p(sisupod_processing_path) end - if FileTest.file?("#{Dir.pwd}/#{fns_pod}") - system("unzip -q #{Dir.pwd}/#{fns_pod} -d #{processing_path.processing}") - else - SiSU_Screen::Ansi.new('',"file not found: #{fns_pod}").warn unless @cmd=~/q/ - end + (FileTest.file?(fns_pod)) \ + ? system("unzip -q #{fns_pod} -d #{processing_path.processing}") + : (SiSU_Screen::Ansi.new('',"file not found: #{fns_pod}").warn unless @cmd=~/q/) sisupod_processing_path end end @@ -2563,10 +2562,14 @@ WOK end class Info_settings < Info_env def permission?(prog) #program defaults - (defined? @rc['permission_set'][prog]) ? @rc['permission_set'][prog] : false + (defined? @rc['permission_set'][prog]) \ + ? @rc['permission_set'][prog] + : false end def program?(prog) #program defaults - (defined? @rc['program_set'][prog]) ? @rc['program_set'][prog] : false + (defined? @rc['program_set'][prog]) \ + ? @rc['program_set'][prog] + : false end end class File_map < Info_env @@ -2731,7 +2734,7 @@ WOK def src # consider if @opt.fnb \ and not @opt.fnb.empty? - sm="#{@env.path.output}/pod/#{@opt.fns}.zip" + sm="#{@env.path.output}/src/pod/#{@opt.fns}.txz" rm(sm) if FileTest.file?(sm) sm="#{@env.path.output}/src/#{@opt.fns}" rm(sm) if FileTest.file?(sm) @@ -2853,7 +2856,7 @@ WOK remote_src="#{remote_conn[:name]}/#{@env.path.stub_src}/." remote_pod="#{remote_conn[:name]}/#{@env.path.stub_pod}/." src_txt=@opt.fnc - src_pod=@opt.fncb.gsub(/(\.ss[mt])(?:\.sst)?$/,'\1.zip') + src_pod=@opt.fncb.gsub(/(\.ss[mt])(?:\.sst)?$/,'\1.txz') if (local_gen =~/\S/ \ and local_gen !~/\/\//) \ and (remote_gen =~/\S/ \ @@ -2876,7 +2879,7 @@ WOK if FileTest.file?("#{local_src}/#{src_doc}") puts "#{local_src}/#{src_doc}* -> #{remote_src}" end - if FileTest.file?("#{local_pod}/#{src_doc}.zip") + if FileTest.file?("#{local_pod}/#{src_doc}.txz") puts "#{local_pod}/#{src_doc}* -> #{remote_pod}" end else @@ -3051,7 +3054,7 @@ WOK puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ puts "#{local_gen} -> #{remote_gen}" if FileTest.file?("#{local_src}/#{src_doc}") \ - or FileTest.file?("#{local_src}/#{src_doc}.zip") + or FileTest.file?("#{local_src}/#{src_doc}.txz") puts "#{local_src}/#{src_doc}* -> #{remote_src}" end else @@ -4172,6 +4175,15 @@ WOK def rel_sm set_path(ft).rel_sm.ab end + def rel_image + if @env.output_dir_structure.by_language_code? + '../../_sisu/image' + elsif @env.output_dir_structure.by_filetype? + '../_sisu/image' + else + '../_sisu/image' + end + end self end def html_seg @@ -4193,6 +4205,15 @@ WOK def rel_sm set_path(ft).rel_sm.ab end + def rel_image + if @env.output_dir_structure.by_language_code? + '../../../_sisu/image' + elsif @env.output_dir_structure.by_filetype? + '../../_sisu/image' + else + '../_sisu/image' + end + end self end def html_concordance @@ -4218,6 +4239,15 @@ WOK def rel_sm set_path(ft).rel_sm.ab end + def rel_image + if @env.output_dir_structure.by_language_code? + '../../_sisu/image' + elsif @env.output_dir_structure.by_filetype? + '../_sisu/image' + else + '../_sisu/image' + end + end self end def xhtml @@ -4239,6 +4269,9 @@ WOK def rel_sm set_path(ft).rel_sm.ab end + def rel_image + '../../_sisu/image' + end self end def epub @@ -4260,6 +4293,9 @@ WOK def rel_sm set_path(ft).rel_sm.ab end + def rel_image + './image' + end self end def odt @@ -4302,6 +4338,9 @@ WOK def rel_sm set_path(ft).rel_sm.ab end + def rel_image + '../../_sisu/image' + end self end def xml_sax @@ -4783,10 +4822,13 @@ WOK skin_path=[] @env.sys.rc_path.each {|x| skin_path << "#{x}/skin"} skin_path << "#{@env.processing_path.processing}/external_document/skin" - skin=true - if @pwd_stub =~/^sisupod$/ \ - and @md.opt.mod.inspect !~/--trust/ - skin=false #security only run skins on sisupod if --trust flag is provided + skin=if @pwd_stub =~/^(?:doc|sisupod)$/ \ + and ((! @md.nil?) \ + && (defined? @md.opt) \ + && (defined? @md.opt.mod) \ + && @md.opt.mod.inspect =~/--trust/) + true #security only run skins on sisupod if --trust flag is provided + else false end doc_skin,dir_skin=nil,nil if skin diff --git a/lib/sisu/v3/urls.rb b/lib/sisu/v3/urls.rb index cbb11ba5..a6612175 100644 --- a/lib/sisu/v3/urls.rb +++ b/lib/sisu/v3/urls.rb @@ -134,7 +134,7 @@ module SiSU_urls SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","#{@prog.text_editor} #{@md.file.output_path.src.dir}/#{y}").result end def pod(x,y) - SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","#{@prog.web_browser} #{@env.url.output_tell}/pod/#{y}").result + SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","#{@prog.web_browser} #{@env.url.output_tell}/src/pod/#{y}").result end self end @@ -347,9 +347,9 @@ module SiSU_urls end if x=~/^S/ \ and @opt.cmd =~/S/ - zipfile=if @opt.fns =~/\.ssm\.sst$/; y.gsub(/(?:\~\S{2,3})?(\.ssm\.sst\.zip)$/,'.ssm.zip') - else y.gsub(/(?:\~\S{2,3})?(\.sst\.zip)$/,'\1') - end + (@opt.fns =~/\.ssm\.sst$/) \ + ? y.gsub(/(?:\~\S{2,3})?(\.ssm.sst\.txz)$/,'.ssm.txz') + : y.gsub(/(?:\~\S{2,3})?(\.sst\.txz)$/,'\1') show.source.pod(x,y) end if x=~/^s/ \ |