diff options
| author | Ralph Amissah <ralph@amissah.com> | 2011-04-19 21:39:06 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2011-04-19 21:39:06 -0400 | 
| commit | cc7bc6de70ca4dcfeee781803bc6a43dc7c273ea (patch) | |
| tree | 02fb16f0a4502293d09d01ae30b58942c6ad726e /lib | |
| parent | v3: param, md remove md.cmd and md.mod shortcut methods, use use md.opt (diff) | |
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)
Diffstat (limited to 'lib')
| -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 | 
4 files changed, 84 insertions, 19 deletions
| 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' | 
