class SiSU_HarvestTopics::OutputIndex

Public Class Methods

new(opt,the_idx) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 489
def initialize(opt,the_idx)
  @opt,@the_idx=opt,the_idx
  @env=SiSU_Env::InfoEnv.new
  @rc=SiSU_Env::GetInit.new.sisu_yaml.rc
  @alphabet_list=%W[9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
  @alph=@alphabet_list.dup
  @letter=@alph.shift
end

Public Instance Methods

do_array(lng,lv,array) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 798
def do_array(lng,lv,array)
  lv+=1
  array.each do |b|
    do_case(lng,lv,b)
  end
end
do_case(lng,lv,a) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 849
def do_case(lng,lv,a)
  case a
  when String
    attrib="lev#{lv}"
    if a=~/S/
      lv==0 ? do_string_name(lng,attrib,a) : do_string(lng,attrib,a)
    end
  when Array
    do_array(lng,lv,a)
  when Hash
    do_hash(lng,lv,a)
  end
end
do_hash(lng,lv,hash) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 823
def do_hash(lng,lv,hash)
  lv+=1
  key=[]
  hash.each_key do |m|
    if m == :md
      do_case(lng,lv,hash[m])
    elsif m != :title \
    and m != :author \
    and m != :filename \
    and m != :file \
    and m != :rough_idx \
    and m != :page
      key << m
    elsif m == :title
      do_hash_md(lng,'work',hash)
      do_hash_md_maintenance(lng,'work',hash)
    end
  end
  if key.length > 0
    key.sort.each do |m|
      attrib="lev#{lv}"
      lv==0 ? do_string_name(lng,attrib,m) : do_string(lng,attrib,m)
      do_case(lng,lv,hash[m])
    end
  end
end
do_hash_md(lng,attrib,hash) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 804
def do_hash_md(lng,attrib,hash)
  lang_code_insert=SiSU_Env::FilenameLanguageCodeInsert.new(@opt,lng).language_code_insert
  manifest_at=if @env.output_dir_structure.by? == :language
    hash[:file] + Sfx[:html]
  elsif @env.output_dir_structure.by? == :filetype
    hash[:file] + lang_code_insert +  Sfx[:html]
  elsif @env.output_dir_structure.by? == :filename
    "./#{hash[:file]}/#{hash[:page]}"
  else '' #error
  end
  html=%{<a href="#{manifest_at}">#{hash[:title]}</a> - #{hash[:author]}}
  do_string_default(lng,attrib,html)
end
do_hash_md_maintenance(lng,attrib,hash) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 817
def do_hash_md_maintenance(lng,attrib,hash)
  if @output[lng][:html_mnt].is_a?(File) #should not be run for presentation output
    html=%{[<a href="#{hash[:file]}.sst">src</a>]&nbsp;&nbsp;<a href="file://#{@env.path.output}/#{hash[:file]}/#{hash[:page]}">#{hash[:title]}</a> - #{hash[:author]}}
    do_string_maintenance(lng,attrib,html)
  end
end
do_html(lng,html) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 749
def do_html(lng,html)
  @output[lng][:html] << html
end
do_html_maintenance(lng,html) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 752
def do_html_maintenance(lng,html)
  @output[lng][:html_mnt] << html \
    if @output[lng][:html_mnt].is_a?(File)
end
do_string(lng,attrib,string) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 756
def do_string(lng,attrib,string)
  html=%{<p class="#{attrib}">#{string}</p>}
  do_html(lng,html)
  do_html_maintenance(lng,html) \
    if @output[lng][:html_mnt].is_a?(File)
end
do_string_default(lng,attrib,string) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 762
def do_string_default(lng,attrib,string)
  html=%{<p class="#{attrib}">#{string}</p>}
  do_html(lng,html)
end
do_string_maintenance(lng,attrib,string) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 766
def do_string_maintenance(lng,attrib,string)
  html=%{<p class="#{attrib}">#{string}</p>}
  do_html_maintenance(lng,html) \
    if @output[lng][:html_mnt].is_a?(File)
end
do_string_name(lng,attrib,string) click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 771
def do_string_name(lng,attrib,string)
  f=/^(\S)/.match(string)[1]
  if @lng != lng
    @alph=@alphabet_list.dup
    @letter=@alph.shift
    @lng = lng
  end
  if @letter < f
    while @letter < f
      if @alph.length > 0
        @letter=@alph.shift
        if @output[lng][:html_mnt].is_a?(File)
          @output[lng][:html_mnt] \
          << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>}
        end
        @output[lng][:html] \
        << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>}
      else break
      end
    end
  end
  name=string.strip.gsub(/\s+/,'_')
  html=%{<p class="#{attrib}"><a name="#{name}">#{string}</a></p>}
  do_html(lng,html)
  do_html_maintenance(lng,html) \
    if @output[lng][:html_mnt].is_a?(File)
end
html_alph() click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 715
def html_alph
  a=[]
  a << '<p>'
  @alph.each do |x|
    a << ((x =~/[0-9]/) \
    ? ''
    : %{<a href="##{x}">#{x}</a>,&nbsp;})
  end
  a=a.join
  @the_idx.keys.each do |lng|
    @output[lng][:html_mnt] << a \
      if @opt.act[:maintenance][:set]==:on
    @output[lng][:html] << a
  end
end
html_body_traverse() click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 553
def html_body_traverse
  @the_idx.each_pair do |x0,y0|
    lng=x0
    if x0.is_a?(String)
      #do_string_name(lng,'lev0',x0)
      #puts spaces*0 + x0
    end
    if y0.is_a?(Hash)
      if y0.has_key?(:md)
        y0[:md].each do |x|
          #do_hash(lng,attrib,x) #lv==0 ?
          #puts spaces*5 + x[:title]
        end
      end
      y0.each_pair do |x1,y1|
        if x1.is_a?(String)
          do_string_name(lng,'lev0',x1)
          #puts spaces*1 + x1
        end
        if y1.is_a?(Hash)
          if y1.has_key?(:md)
            y1[:md].each do |x|
              do_hash(lng,0,x)
              #puts spaces*5 + x[:title]
            end
          end
          y1.each_pair do |x2,y2|
            if x2.is_a?(String)
              do_string(lng,'lev1',x2)
              #puts spaces*2 + x2
            end
            if y2.is_a?(Hash)
              if y2.has_key?(:md)
                y2[:md].each do |x|
                  do_hash(lng,1,x)
                  #puts spaces*5 + x[:title]
                end
              end
              y2.each_pair do |x3,y3|
                if x3.is_a?(String)
                  do_string(lng,'lev2',x3)
                  #puts spaces*3 + x3
                end
                if y3.is_a?(Hash)
                  if y3.has_key?(:md)
                    y3[:md].each do |x|
                      do_hash(lng,2,x)
                      #puts spaces*5 + x[:title]
                    end
                  end
                  y3.each_pair do |x4,y4|
                    if x4.is_a?(String)
                      do_string(lng,'lev3',x4)
                      #puts spaces*4 + x4
                    end
                    if y4.is_a?(Hash)
                      if y4.has_key?(:md)
                        y4[:md].each do |x|
                          do_hash(lng,3,x)
                          #puts spaces*5 + x[:title]
                        end
                      end
                      y4.each_pair do |x5,y5|
                        if x5.is_a?(String)
                          do_string(lng,'lev4',x5)
                          #puts spaces*5 + x5
                        end
                      end
                    end
                  end
                end
              end
            end
          end
        end
      end
    end
  end
end
html_file_close() click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 537
def html_file_close
  @the_idx.keys.each do |lng|
    @output[lng][:html].close
    @output[lng][:html_mnt].close if @output[lng][:html_mnt].is_a?(File)
  end
end
html_file_open() click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 497
def html_file_open
  @the_idx.keys.each do |lng|
    @output ||={}
    @output[lng] ||={}
    harvest_pth,file='',''
    if @env.output_dir_structure.by? == :language
      harvest_pth=@env.path.webserv + '/' \
      + @opt.base_stub + '/' \
      + lng + '/' \
      + 'manifest'
      file=harvest_pth + '/' + 'topics.html'
    elsif @env.output_dir_structure.by? == :filetype
      harvest_pth=@env.path.webserv + '/' \
      + @opt.base_stub + '/' \
      + 'manifest'
      file=harvest_pth + '/' + 'topics.' + lng + '.html'
    elsif @env.output_dir_structure.by? == :filename
      harvest_pth=@env.path.webserv + '/' \
      + @opt.base_stub
      file=harvest_pth + '/' + 'topics.' + lng + '.html'
    end
    FileUtils::mkdir_p(harvest_pth) \
      unless FileTest.directory?(harvest_pth)
    fileinfo=(@opt.act[:verbose][:set]==:on \
    || @opt.act[:verbose_plus][:set]==:on \
    || @opt.act[:urls_selected][:set]==:on \
    || @opt.act[:maintenance][:set]==:on) \
    ? ("file://#{file}")
    : ''
    SiSU_Screen::Ansi.new(
      @opt.act[:color_state][:set],
      "harvest topics(#{@opt.files.length} files)",
      fileinfo
    ).dark_grey_title_hi unless @opt.act[:quiet][:set]==:on
    @output[lng][:html]=File.new(file,'w')
    if @opt.act[:maintenance][:set]==:on
      @output[lng][:html_mnt]=File.new("#{@env.path.pwd}/topics.html",'w')
    end
  end
end
html_head() click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 707
def html_head
  @the_idx.keys.each do |lng|
    @output[lng][:html_mnt] \
    << html_head_adjust(lng,'maintenance') \
      if @opt.act[:maintenance][:set]==:on
    @output[lng][:html] << html_head_adjust(lng)
  end
end
html_head_adjust(lng,type='') click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 632
      def html_head_adjust(lng,type='')
        css_path,authors='',''
        if @env.output_dir_structure.by? == :language
          css_path=(type !~/maintenance/) \
          ? '../../_sisu/css/harvest.css'
          : 'harvest.css'
          authors='authors.html'
        elsif @env.output_dir_structure.by? == :filetype
          css_path=(type !~/maintenance/) \
          ? '../_sisu/css/harvest.css'
          : 'harvest.css'
          authors="authors.#{lng}.html"
        elsif @env.output_dir_structure.by? == :filename
          css_path=(type !~/maintenance/) \
          ? './_sisu/css/harvest.css'
          : 'harvest.css'
          authors="authors.#{lng}.html"
        end
        ln=SiSU_i18n::Languages.new.language.list
        harvest_languages=''
        @the_idx.keys.each do |lg|
          if @env.output_dir_structure.by? == :language
            harvest_pth="../../#{lg}/manifest"
            file=harvest_pth + '/' + 'topics.html'
          elsif @env.output_dir_structure.by? == :filetype
            harvest_pth='.'
            file=harvest_pth + '/' + 'topics.' + lg + '.html'
          elsif @env.output_dir_structure.by? == :filename
            harvest_pth='.'
            file=harvest_pth + '/topics.' + lg + '.html'
          end
          l=ln[lg][:t]
          harvest_languages +=
            %{<a href="#{file}">#{l}</a>&nbsp;&nbsp;&nbsp;}
        end
        sv=SiSU_Env::InfoVersion.instance.get_version
        if @env.output_dir_structure.by? == :language
          home_pth='../..'
          output_structure_by='(output organised by language &amp; filetype)'
        elsif @env.output_dir_structure.by? == :filetype
          home_pth='..'
          output_structure_by='(output organised by filetype)'
        elsif @env.output_dir_structure.by? == :filename
          home_pth='.'
          output_structure_by='(output organised by filename)'
        else
          home_pth='.'
          output_structure_by='(output organised by ?)'
        end
        <<WOK
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SiSU Metadata Harvest - Topics</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="dc.title" content= "SiSU metadata harvest, Topics - SiSU information Structuring Universe, Structured information Serialised Units" />
<meta name="dc.subject" content= "document structuring, ebook, publishing, PDF, LaTeX, XML, ODF, SQL, postgresql, sqlite, electronic book, electronic publishing, electronic document, electronic citation, data structure, citation systems, granular search, digital library" />
<meta name="generator" content="#{sv.project} #{sv.version} of #{sv.date_stamp} (n*x and Ruby!)" />
<link rel="generator" href="http://www.jus.uio.no/sisu/SiSU" />
<link href="#{css_path}" rel="stylesheet">
<link rel="shortcut icon" href="../_sisu/image/rb7.ico" />
</head>
<body lang="en" xml:lang="en">
<a name="top" id="top"></a>
<a name="up" id="up"></a>
<a name="start" id="start"></a>
<h1>SiSU Metadata Harvest - Topics #{output_structure_by}</h1>
<p>[<a href="#{home_pth}/index.html">&nbsp;HOME&nbsp;</a>] also see <a href="#{authors}">SiSU Metadata Harvest - Authors</a></p>
<p>#{@env.widget_static.search_form}</p>
<hr />
<p class="tiny">#{harvest_languages}</p>
<hr />
WOK
      end
html_print() click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 543
    def html_print
      def html_songsheet
        #traverse
        html_file_open
        html_head
        html_alph
        html_body_traverse
        html_tail
        html_file_close
      end
      def html_body_traverse
        @the_idx.each_pair do |x0,y0|
          lng=x0
          if x0.is_a?(String)
            #do_string_name(lng,'lev0',x0)
            #puts spaces*0 + x0
          end
          if y0.is_a?(Hash)
            if y0.has_key?(:md)
              y0[:md].each do |x|
                #do_hash(lng,attrib,x) #lv==0 ?
                #puts spaces*5 + x[:title]
              end
            end
            y0.each_pair do |x1,y1|
              if x1.is_a?(String)
                do_string_name(lng,'lev0',x1)
                #puts spaces*1 + x1
              end
              if y1.is_a?(Hash)
                if y1.has_key?(:md)
                  y1[:md].each do |x|
                    do_hash(lng,0,x)
                    #puts spaces*5 + x[:title]
                  end
                end
                y1.each_pair do |x2,y2|
                  if x2.is_a?(String)
                    do_string(lng,'lev1',x2)
                    #puts spaces*2 + x2
                  end
                  if y2.is_a?(Hash)
                    if y2.has_key?(:md)
                      y2[:md].each do |x|
                        do_hash(lng,1,x)
                        #puts spaces*5 + x[:title]
                      end
                    end
                    y2.each_pair do |x3,y3|
                      if x3.is_a?(String)
                        do_string(lng,'lev2',x3)
                        #puts spaces*3 + x3
                      end
                      if y3.is_a?(Hash)
                        if y3.has_key?(:md)
                          y3[:md].each do |x|
                            do_hash(lng,2,x)
                            #puts spaces*5 + x[:title]
                          end
                        end
                        y3.each_pair do |x4,y4|
                          if x4.is_a?(String)
                            do_string(lng,'lev3',x4)
                            #puts spaces*4 + x4
                          end
                          if y4.is_a?(Hash)
                            if y4.has_key?(:md)
                              y4[:md].each do |x|
                                do_hash(lng,3,x)
                                #puts spaces*5 + x[:title]
                              end
                            end
                            y4.each_pair do |x5,y5|
                              if x5.is_a?(String)
                                do_string(lng,'lev4',x5)
                                #puts spaces*5 + x5
                              end
                            end
                          end
                        end
                      end
                    end
                  end
                end
              end
            end
          end
        end
      end
      def html_head_adjust(lng,type='')
        css_path,authors='',''
        if @env.output_dir_structure.by? == :language
          css_path=(type !~/maintenance/) \
          ? '../../_sisu/css/harvest.css'
          : 'harvest.css'
          authors='authors.html'
        elsif @env.output_dir_structure.by? == :filetype
          css_path=(type !~/maintenance/) \
          ? '../_sisu/css/harvest.css'
          : 'harvest.css'
          authors="authors.#{lng}.html"
        elsif @env.output_dir_structure.by? == :filename
          css_path=(type !~/maintenance/) \
          ? './_sisu/css/harvest.css'
          : 'harvest.css'
          authors="authors.#{lng}.html"
        end
        ln=SiSU_i18n::Languages.new.language.list
        harvest_languages=''
        @the_idx.keys.each do |lg|
          if @env.output_dir_structure.by? == :language
            harvest_pth="../../#{lg}/manifest"
            file=harvest_pth + '/' + 'topics.html'
          elsif @env.output_dir_structure.by? == :filetype
            harvest_pth='.'
            file=harvest_pth + '/' + 'topics.' + lg + '.html'
          elsif @env.output_dir_structure.by? == :filename
            harvest_pth='.'
            file=harvest_pth + '/topics.' + lg + '.html'
          end
          l=ln[lg][:t]
          harvest_languages +=
            %{<a href="#{file}">#{l}</a>&nbsp;&nbsp;&nbsp;}
        end
        sv=SiSU_Env::InfoVersion.instance.get_version
        if @env.output_dir_structure.by? == :language
          home_pth='../..'
          output_structure_by='(output organised by language &amp; filetype)'
        elsif @env.output_dir_structure.by? == :filetype
          home_pth='..'
          output_structure_by='(output organised by filetype)'
        elsif @env.output_dir_structure.by? == :filename
          home_pth='.'
          output_structure_by='(output organised by filename)'
        else
          home_pth='.'
          output_structure_by='(output organised by ?)'
        end
        <<WOK
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SiSU Metadata Harvest - Topics</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="dc.title" content= "SiSU metadata harvest, Topics - SiSU information Structuring Universe, Structured information Serialised Units" />
<meta name="dc.subject" content= "document structuring, ebook, publishing, PDF, LaTeX, XML, ODF, SQL, postgresql, sqlite, electronic book, electronic publishing, electronic document, electronic citation, data structure, citation systems, granular search, digital library" />
<meta name="generator" content="#{sv.project} #{sv.version} of #{sv.date_stamp} (n*x and Ruby!)" />
<link rel="generator" href="http://www.jus.uio.no/sisu/SiSU" />
<link href="#{css_path}" rel="stylesheet">
<link rel="shortcut icon" href="../_sisu/image/rb7.ico" />
</head>
<body lang="en" xml:lang="en">
<a name="top" id="top"></a>
<a name="up" id="up"></a>
<a name="start" id="start"></a>
<h1>SiSU Metadata Harvest - Topics #{output_structure_by}</h1>
<p>[<a href="#{home_pth}/index.html">&nbsp;HOME&nbsp;</a>] also see <a href="#{authors}">SiSU Metadata Harvest - Authors</a></p>
<p>#{@env.widget_static.search_form}</p>
<hr />
<p class="tiny">#{harvest_languages}</p>
<hr />
WOK
      end
      def html_head
        @the_idx.keys.each do |lng|
          @output[lng][:html_mnt] \
          << html_head_adjust(lng,'maintenance') \
            if @opt.act[:maintenance][:set]==:on
          @output[lng][:html] << html_head_adjust(lng)
        end
      end
      def html_alph
        a=[]
        a << '<p>'
        @alph.each do |x|
          a << ((x =~/[0-9]/) \
          ? ''
          : %{<a href="##{x}">#{x}</a>,&nbsp;})
        end
        a=a.join
        @the_idx.keys.each do |lng|
          @output[lng][:html_mnt] << a \
            if @opt.act[:maintenance][:set]==:on
          @output[lng][:html] << a
        end
      end
      def html_tail
        a =<<WOK
<hr />
<a name="bottom" id="bottom"></a>
<a name="down" id="down"></a>
<a name="end" id="end"></a>
<a name="finish" id="finish"></a>
<a name="stop" id="stop"></a>
<a name="credits"></a>
#{SiSU_Proj_HTML::Bits.new.credits_sisu}
</body>
</html>
WOK
        @the_idx.keys.each do |lng|
          @output[lng][:html_mnt] << a \
            if @output[lng][:html_mnt].is_a?(File)
          @output[lng][:html] << a
        end
      end
      def do_html(lng,html)
        @output[lng][:html] << html
      end
      def do_html_maintenance(lng,html)
        @output[lng][:html_mnt] << html \
          if @output[lng][:html_mnt].is_a?(File)
      end
      def do_string(lng,attrib,string)
        html=%{<p class="#{attrib}">#{string}</p>}
        do_html(lng,html)
        do_html_maintenance(lng,html) \
          if @output[lng][:html_mnt].is_a?(File)
      end
      def do_string_default(lng,attrib,string)
        html=%{<p class="#{attrib}">#{string}</p>}
        do_html(lng,html)
      end
      def do_string_maintenance(lng,attrib,string)
        html=%{<p class="#{attrib}">#{string}</p>}
        do_html_maintenance(lng,html) \
          if @output[lng][:html_mnt].is_a?(File)
      end
      def do_string_name(lng,attrib,string)
        f=/^(\S)/.match(string)[1]
        if @lng != lng
          @alph=@alphabet_list.dup
          @letter=@alph.shift
          @lng = lng
        end
        if @letter < f
          while @letter < f
            if @alph.length > 0
              @letter=@alph.shift
              if @output[lng][:html_mnt].is_a?(File)
                @output[lng][:html_mnt] \
                << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>}
              end
              @output[lng][:html] \
              << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>}
            else break
            end
          end
        end
        name=string.strip.gsub(/\s+/,'_')
        html=%{<p class="#{attrib}"><a name="#{name}">#{string}</a></p>}
        do_html(lng,html)
        do_html_maintenance(lng,html) \
          if @output[lng][:html_mnt].is_a?(File)
      end
      def do_array(lng,lv,array)
        lv+=1
        array.each do |b|
          do_case(lng,lv,b)
        end
      end
      def do_hash_md(lng,attrib,hash)
        lang_code_insert=SiSU_Env::FilenameLanguageCodeInsert.new(@opt,lng).language_code_insert
        manifest_at=if @env.output_dir_structure.by? == :language
          hash[:file] + Sfx[:html]
        elsif @env.output_dir_structure.by? == :filetype
          hash[:file] + lang_code_insert +  Sfx[:html]
        elsif @env.output_dir_structure.by? == :filename
          "./#{hash[:file]}/#{hash[:page]}"
        else '' #error
        end
        html=%{<a href="#{manifest_at}">#{hash[:title]}</a> - #{hash[:author]}}
        do_string_default(lng,attrib,html)
      end
      def do_hash_md_maintenance(lng,attrib,hash)
        if @output[lng][:html_mnt].is_a?(File) #should not be run for presentation output
          html=%{[<a href="#{hash[:file]}.sst">src</a>]&nbsp;&nbsp;<a href="file://#{@env.path.output}/#{hash[:file]}/#{hash[:page]}">#{hash[:title]}</a> - #{hash[:author]}}
          do_string_maintenance(lng,attrib,html)
        end
      end
      def do_hash(lng,lv,hash)
        lv+=1
        key=[]
        hash.each_key do |m|
          if m == :md
            do_case(lng,lv,hash[m])
          elsif m != :title \
          and m != :author \
          and m != :filename \
          and m != :file \
          and m != :rough_idx \
          and m != :page
            key << m
          elsif m == :title
            do_hash_md(lng,'work',hash)
            do_hash_md_maintenance(lng,'work',hash)
          end
        end
        if key.length > 0
          key.sort.each do |m|
            attrib="lev#{lv}"
            lv==0 ? do_string_name(lng,attrib,m) : do_string(lng,attrib,m)
            do_case(lng,lv,hash[m])
          end
        end
      end
      def do_case(lng,lv,a)
        case a
        when String
          attrib="lev#{lv}"
          if a=~/S/
            lv==0 ? do_string_name(lng,attrib,a) : do_string(lng,attrib,a)
          end
        when Array
          do_array(lng,lv,a)
        when Hash
          do_hash(lng,lv,a)
        end
      end
      #def html_body
      #  the_idx=@the_idx
      #  the_idx.each_pair do |lng,lng_array|
      #    lng_array.sort.each do |a|
      #      do_case(lng,-1,a)
      #    end
      #  end
      #end
      self
    end
html_songsheet() click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 544
def html_songsheet
  #traverse
  html_file_open
  html_head
  html_alph
  html_body_traverse
  html_tail
  html_file_close
end
html_tail() click to toggle source
# File lib/sisu/html_harvest_topics.rb, line 730
      def html_tail
        a =<<WOK
<hr />
<a name="bottom" id="bottom"></a>
<a name="down" id="down"></a>
<a name="end" id="end"></a>
<a name="finish" id="finish"></a>
<a name="stop" id="stop"></a>
<a name="credits"></a>
#{SiSU_Proj_HTML::Bits.new.credits_sisu}
</body>
</html>
WOK
        @the_idx.keys.each do |lng|
          @output[lng][:html_mnt] << a \
            if @output[lng][:html_mnt].is_a?(File)
          @output[lng][:html] << a
        end
      end