From cc7bc6de70ca4dcfeee781803bc6a43dc7c273ea Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 19 Apr 2011 21:39:06 -0400 Subject: v3: harvest, sysenv, place with document manifests, variable directory path * sysenv, variable directory path fixing (language, filetype, filname), making the stub for at least manifest and html available early for processing that do not or should not need to process individual markup files completely, such as the cgi search form and harvest * harvest * place with document manifests * variable directory path fixing (language, filetype, filname) --- data/doc/sisu/CHANGELOG_v3 | 11 ++++++++++- lib/sisu/v3/harvest.rb | 3 ++- lib/sisu/v3/harvest_authors.rb | 39 ++++++++++++++++++++++++++++++++------- lib/sisu/v3/harvest_topics.rb | 31 +++++++++++++++++++++++++------ lib/sisu/v3/sysenv.rb | 30 +++++++++++++++++++++++++----- 5 files changed, 94 insertions(+), 20 deletions(-) diff --git a/data/doc/sisu/CHANGELOG_v3 b/data/doc/sisu/CHANGELOG_v3 index 9f06f48b..7dc4c980 100644 --- a/data/doc/sisu/CHANGELOG_v3 +++ b/data/doc/sisu/CHANGELOG_v3 @@ -41,7 +41,16 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_3.0.7.orig.tar.gz * some option setting moved to options * favor use of opt.act over opt.cmd where appropriate - * sysenv, odf:odt paths adjusted for changes in maintenance and odt.zip + * sysenv + * variable directory path fixing (language, filetype, filname), making + the stub for at least manifest and html available early for processing + that do not or should not need to process individual markup files + completely, such as the cgi search form and harvest + * odf:odt paths adjusted for changes in maintenance and odt.zip + + * harvest + * place with document manifests + * variable directory path fixing (language, filetype, filname) * cgi, sample-search-form * results still not right, (ruby1.9.2 libraries? double check script) diff --git a/lib/sisu/v3/harvest.rb b/lib/sisu/v3/harvest.rb index 117028e2..aaec9046 100644 --- a/lib/sisu/v3/harvest.rb +++ b/lib/sisu/v3/harvest.rb @@ -96,6 +96,7 @@ require_relative 'sysenv' # sysenv.rb argv=$* opt=SiSU_commandline::Options.new(argv) argv.shift -mkdir_p(@env.path.output_md_harvest) unless FileTest.directory?(@env.path.output_md_harvest) +harvest_pth="#{@env.path.webserv}/#{@env.stub_md_harvest}" +mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth) cases(opt) __END__ diff --git a/lib/sisu/v3/harvest_authors.rb b/lib/sisu/v3/harvest_authors.rb index dc36a06f..75d2a810 100644 --- a/lib/sisu/v3/harvest_authors.rb +++ b/lib/sisu/v3/harvest_authors.rb @@ -89,7 +89,8 @@ module HARVEST_authors end the_idx=HARVEST_authors::Index.new(idx_array,@@the_idx_authors).construct_book_author_index HARVEST_authors::Output_index.new(@opt,the_idx).html_print.html_songsheet - puts "file://#{@env.path.output_md_harvest}/harvest_authors.html" + harvest_pth="#{@env.path.webserv}/#{@env.stub_md_harvest}" + puts "file://#{harvest_pth}/harvest_authors.html" puts "file://#{@env.path.pwd}/harvest_authors.html" if @opt.cmd.inspect =~/M/ end end @@ -174,7 +175,8 @@ module HARVEST_authors end def html_file_open @output={} - @output[:html]=File.new("#{@env.path.output_md_harvest}/harvest_authors.html",'w') + harvest_pth="#{@env.path.webserv}/#{@env.stub_md_harvest}" + @output[:html]=File.new("#{harvest_pth}/harvest_authors.html",'w') @output[:html_mnt]=(@opt.cmd.inspect =~/M/) \ ? File.new("#{@env.path.pwd}/harvest_authors.html",'w') \ : nil @@ -193,9 +195,19 @@ module HARVEST_authors html_file_close end def html_head_adjust(type='') - css_path=(type !~/maintenance/) \ - ? '../_sisu/css/harvest.css' \ - : 'harvest.css' + css_path=if @env.output_dir_structure.by_language_code? + css_path=(type !~/maintenance/) \ + ? '../../_sisu/css/harvest.css' \ + : 'harvest.css' + elsif @env.output_dir_structure.by_filetype? + css_path=(type !~/maintenance/) \ + ? '../_sisu/css/harvest.css' \ + : 'harvest.css' + elsif @env.output_dir_structure.by_filename? + css_path=(type !~/maintenance/) \ + ? '../_sisu/css/harvest.css' \ + : 'harvest.css' + end sv=SiSU_Env::Info_version.instance.get_version <#{x[:date]} #{x[:title]}, #{x[:author][:authors_s]}

} ] + if @env.output_dir_structure.by_language_code? + manifest_pth="#{@env.path.output}/#{x[:file]}" + manifest_at_local=@env.path.output + '/' + 'en' + '/' + 'manifest/' + x[:file] + '.manifest.html' + manifest_at=x[:file] + '.manifest.html' + elsif @env.output_dir_structure.by_filetype? + #manifest_pth_2="#{@env.path.output}/#{x[:file]}" + manifest_name=x[:file] + manifest_at_local=manifest_name + 'manifest.html' + manifest_at=x[:file] + '.manifest.html' + elsif @env.output_dir_structure.by_filename? + manifest_at_local="#{@env.path.output}/#{x[:file]}/#{x[:page]}" + manifest_at="../#{x[:file]}/#{x[:page]}" + end + work=[ "#{x[:date]} #{x[:title]}", %{

#{x[:date]} #{x[:title]}, #{x[:author][:authors_s]}

} ] works<<=(@output[:html_mnt].class==File) \ - ? (work.concat([%{

[src]  #{x[:date]} #{x[:title]}, #{x[:author][:authors_s]} -- [#{x[:file]}.sst]

}])) \ + ? (work.concat([%{

[src]  #{x[:date]} #{x[:title]}, #{x[:author][:authors_s]} -- [#{x[:file]}.sst]

}])) \ : work end works.sort_by {|x| x[0]}.each do |x| diff --git a/lib/sisu/v3/harvest_topics.rb b/lib/sisu/v3/harvest_topics.rb index f00fb7f3..3ca72326 100644 --- a/lib/sisu/v3/harvest_topics.rb +++ b/lib/sisu/v3/harvest_topics.rb @@ -90,7 +90,8 @@ module HARVEST_topics the_idx=HARVEST_topics::Index.new(idx_array,@@the_idx_topics).construct_book_topic_index #HARVEST_topics::Output_index.new('',the_idx).screen_print.cycle if @opt.cmd.inspect =~/[VM]/ HARVEST_topics::Output_index.new(@opt,the_idx).html_print.html_songsheet - puts "file://#{@env.path.output_md_harvest}/harvest_topics.html" + harvest_pth="#{@env.path.webserv}/#{@env.stub_md_harvest}" + puts "file://#{harvest_pth}/harvest_topics.html" puts "file://#{@env.path.pwd}/harvest_topics.html" if @opt.cmd.inspect =~/M/ end end @@ -258,7 +259,8 @@ module HARVEST_topics end def html_file_open @output={} - @output[:html]=File.new("#{@env.path.output_md_harvest}/harvest_topics.html",'w') + harvest_pth="#{@env.path.webserv}/#{@env.stub_md_harvest}" + @output[:html]=File.new("#{harvest_pth}/harvest_topics.html",'w') if @opt.cmd.inspect =~/-M/ @output[:html_mnt]=File.new("#{@env.path.pwd}/harvest_topics.html",'w') end @@ -277,9 +279,19 @@ module HARVEST_topics html_file_close end def html_head_adjust(type='') - css_path=(type !~/maintenance/) \ - ? '../_sisu/css/harvest.css' \ - : 'harvest.css' + css_path=if @env.output_dir_structure.by_language_code? + css_path=(type !~/maintenance/) \ + ? '../../_sisu/css/harvest.css' \ + : 'harvest.css' + elsif @env.output_dir_structure.by_filetype? + css_path=(type !~/maintenance/) \ + ? '../_sisu/css/harvest.css' \ + : 'harvest.css' + elsif @env.output_dir_structure.by_filename? + css_path=(type !~/maintenance/) \ + ? '../_sisu/css/harvest.css' \ + : 'harvest.css' + end sv=SiSU_Env::Info_version.instance.get_version <#{hash[:title]} - #{hash[:author]}} + if @env.output_dir_structure.by_language_code? + manifest_at=hash[:file] + '.manifest.html' + elsif @env.output_dir_structure.by_filetype? + manifest_at=hash[:file] + '.manifest.html' + elsif @env.output_dir_structure.by_filename? + manifest_at="../#{hash[:file]}/#{hash[:page]}" + end + html=%{#{hash[:title]} - #{hash[:author]}} do_string_default(attrib,html) end def do_hash_md_maintenance(attrib,hash) diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v3/sysenv.rb index e3aee003..6f69296a 100644 --- a/lib/sisu/v3/sysenv.rb +++ b/lib/sisu/v3/sysenv.rb @@ -902,6 +902,23 @@ module SiSU_Env @stub_src= @stub_pwd + '/src' @stub_pod= @stub_pwd + '/pod' @stub_md= @stub_pwd + '/sisu_site_metadata' + pt=Pathname.new(Dir.pwd) + stub=if output_dir_structure.by_language_code? + stub=if Dir.pwd =~/.+?\/([^\/]+)(?:\/(en|fr|es)$)/ + lng=pt.split[-1].to_s + lng_part='/' + lng + base=pt.split[0].split[-1].to_s + else + lng_part='/' + 'en' #fix default language + base=pt.split[-1].to_s + end + base + lng_part + elsif output_dir_structure.by_filetype? + pt.split[-1].to_s + elsif output_dir_structure.by_filename? + '' + end + @stub_set_manifest=stub + '/manifest' end def user @sys.user @@ -968,8 +985,8 @@ module SiSU_Env def stub_pwd #200412 @stub_pwd end - def stub_md_harvest - @stub_md + def stub_md_harvest #watch + @stub_set_manifest end def stub_src @stub_src @@ -1387,6 +1404,9 @@ WOK def stub_manifest @stub_manifest end + def stub_set_manifest + @stub_set_manifest + end def stub_src @stub_src end @@ -1394,7 +1414,7 @@ WOK @stub_pod end def stub_md_harvest - @stub_md + @stub_set_manifest end def etc defaults[:sisu_etc] #live/dynamic @@ -2408,7 +2428,7 @@ WOK ? "#{@env.path.output}/pod" \ : @env.path.output_pod) @source_path_harvest=(@fnb && !(@fnb.empty?) \ - ? "#{@env.path.output}/sisu_site_metadata" \ + ? "#{@env.path.output}/manifest" \ : @env.path.output_harvest) @local_sisu_source=(@filetypes =~/\S/) \ ? "#{@source_path}/#{@filetypes}" \ @@ -3425,7 +3445,7 @@ WOK @env.processing_path.git + '/' + @md.fnb + '/' + ft end def md_harvest - "#{output_path.base}/sisu_site_metadata" + manifest end def txt ft='txt' -- cgit v1.2.3