diff options
-rw-r--r-- | data/doc/sisu/CHANGELOG_v3 | 11 | ||||
-rw-r--r-- | lib/sisu/v3/harvest.rb | 3 | ||||
-rw-r--r-- | lib/sisu/v3/harvest_authors.rb | 39 | ||||
-rw-r--r-- | lib/sisu/v3/harvest_topics.rb | 31 | ||||
-rw-r--r-- | 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 <<WOK <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" @@ -286,9 +298,22 @@ WOK @output[:html] << x works=[] a[1][:md].each do |x| - work=[ "#{x[:date]} #{x[:title]}", %{<p class="publication">#{x[:date]} <a href="../#{x[:file]}/#{x[:page]}">#{x[:title]}</a>, #{x[:author][:authors_s]}</p>} ] + 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]}", %{<p class="publication">#{x[:date]} <a href="#{manifest_at}">#{x[:title]}</a>, #{x[:author][:authors_s]}</p>} ] works<<=(@output[:html_mnt].class==File) \ - ? (work.concat([%{<p class="publication">[<a href="#{x[:file]}.sst">src</a>] #{x[:date]} <a href="file://#{@env.path.output}/#{x[:file]}/#{x[:page]}">#{x[:title]}</a>, #{x[:author][:authors_s]} -- [<a href="#{x[:file]}.sst">#{x[:file]}.sst</a>]</p>}])) \ + ? (work.concat([%{<p class="publication">[<a href="#{x[:file]}.sst">src</a>] #{x[:date]} <a href="file://#{manifest_at_local}">#{x[:title]}</a>, #{x[:author][:authors_s]} -- [<a href="#{x[:file]}.sst">#{x[:file]}.sst</a>]</p>}])) \ : 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 <<WOK <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" @@ -382,7 +394,14 @@ WOK end end def do_hash_md(attrib,hash) - html=%{<a href="../#{hash[:file]}/#{hash[:page]}">#{hash[:title]}</a> - #{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=%{<a href="#{manifest_at}">#{hash[:title]}</a> - #{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' |