aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v0/harvest_topics.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v0/harvest_topics.rb')
-rw-r--r--lib/sisu/v0/harvest_topics.rb29
1 files changed, 17 insertions, 12 deletions
diff --git a/lib/sisu/v0/harvest_topics.rb b/lib/sisu/v0/harvest_topics.rb
index 918c289f..85067e55 100644
--- a/lib/sisu/v0/harvest_topics.rb
+++ b/lib/sisu/v0/harvest_topics.rb
@@ -9,8 +9,7 @@
* Author: Ralph Amissah
- * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008 Ralph Amissah All Rights Reserved.
+ * Copyright: (C) 1997 - 2009 Ralph Amissah All Rights Reserved.
* License: GPL 3 or later:
@@ -132,16 +131,23 @@ module HARVEST_topics
if @title and @author_format and @idx_list
creator=FORMAT::Author.new(@author_format.strip).author_details
@authors,@authorship=creator[:authors],creator[:authorship]
- file=filename.sub(/\.ss[mt]$/,'')
+ file=if filename=~/~[a-z]{2,3}\.ss[mt]$/
+ lang='.' + /~([a-z]{2,3})\.ss[mt]$/.match(filename)[1]
+ filename.sub(/~[a-z]{2,3}\.ss[mt]$/,'')
+ else
+ lang=''
+ filename.sub(/\.ss[mt]$/,'')
+ end
+ page="sisu_manifest#{lang}.html"
idx_array <<=if @idx_list =~/;/
g=@idx_list.scan(/[^;]+/)
idxl=[]
g.each do |i|
i.strip!
- idxl << { :filename => filename, :file => file, :rough_idx => i, :title => @fulltitle, :author => creator }
+ idxl << { :filename => filename, :file => file, :rough_idx => i, :title => @fulltitle, :author => creator, :page => page}
end
idxl
- else { :filename => filename, :file => file, :rough_idx => @idx_list, :title => @fulltitle, :author => creator }
+ else { :filename => filename, :file => file, :rough_idx => @idx_list, :title => @fulltitle, :author => creator, :page => page }
end
else
p "missing author field: #@filename title: #@title; author: #@author_format; idx: #@idx_list"
@@ -164,7 +170,7 @@ module HARVEST_topics
s=n.sub(/(.+?)(?:,.+|$)/,'\1').gsub(/\s+/,'_')
names += %{<a href="harvest_authors.html##{s}">#{n}</a>, }
end
- hash << { :filename => idx[:filename], :file => idx[:file], :author => names, :title => idx[:title] }
+ hash << { :filename => idx[:filename], :file => idx[:file], :author => names, :title => idx[:title], :page => idx[:page] }
end
def construct_book_topic_index
idx_array=@idx_array
@@ -250,7 +256,6 @@ module HARVEST_topics
@opt,@the_idx=opt,the_idx
@env=SiSU_Env::Info_env.new
@rc=Get_init.instance.yamlrc
- @page='sisu_manifest.html'
@alph=%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]
@letter=@alph.shift
@vz=SiSU_Env::Get_init.instance.skin
@@ -382,12 +387,12 @@ WOK
end
end
def do_hash_md(attrib,hash)
- html=%{<a href="../#{hash[:file]}/#{@page}">#{hash[:title]}</a> - #{hash[:author]}}
+ html=%{<a href="../#{hash[:file]}/#{hash[:page]}">#{hash[:title]}</a> - #{hash[:author]}}
do_string_default(attrib,html)
end
def do_hash_md_maintenance(attrib,hash)
if @output[:html_mnt].class == 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]}/#{@page}">#{hash[:title]}</a> - #{hash[:author]}}
+ 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(attrib,html)
end
end
@@ -397,7 +402,7 @@ WOK
hash.each_key do |m|
if m == :md
do_case(lv,hash[m])
- elsif m != :title and m != :author and m != :filename and m != :file and m != :rough_idx
+ 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('work',hash)
@@ -460,7 +465,7 @@ WOK
hash.each_key do |m|
if m == :md
do_case(lv,hash[m])
- elsif m != :title and m != :author and m != :filename and m != :file and m != :rough_idx
+ 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(lv,hash)
@@ -514,7 +519,7 @@ WOK
if m == :md
do_case(lv,hash[m])
else
- if m != :title and m != :author and m != :filename and m != :file and m != :rough_idx
+ if m != :title and m != :author and m != :filename and m != :file and m != :rough_idx and m != :page
do_string(lv,m)
do_case(lv,hash[m])
elsif m == :title