aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2008-08-24 12:48:32 -0400
committerRalph Amissah <ralph@amissah.com>2008-08-24 12:49:31 -0400
commitf1fe4547034011194e913ffd70820e1c4f39d6ba (patch)
treef84d2e3c33975b17e0c698b68e7fd46cfec225bd
parentminitoc added to concordance and manifest; dal, precision in endnote matching (diff)
minitoc added, used by manifest and concordance; html css div sorting
a earlier commit relies on minitoc prior to its addition, this fixes that issue html css divs, need to be watched across different html output
-rw-r--r--lib/sisu/v0/css.rb4
-rw-r--r--lib/sisu/v0/defaults.rb3
-rw-r--r--lib/sisu/v0/html_format.rb4
-rw-r--r--lib/sisu/v0/html_minitoc.rb241
-rw-r--r--lib/sisu/v0/html_segments.rb10
-rw-r--r--lib/sisu/v0/manifest.rb8
6 files changed, 256 insertions, 14 deletions
diff --git a/lib/sisu/v0/css.rb b/lib/sisu/v0/css.rb
index 449f51d8..b5b08698 100644
--- a/lib/sisu/v0/css.rb
+++ b/lib/sisu/v0/css.rb
@@ -743,7 +743,7 @@ WOK
margin-bottom: 0px;
}
- div.substance, div.main_column {
+ div.substance {
width: 100%;
background-color: #ffffff;
}
@@ -775,7 +775,7 @@ WOK
padding-left: 1em;
background-color: #eeeeee;
}
- div.content {
+ div.content, div.main_column {
margin: 0;
padding: 0;
border-left: 13em solid #ffffff;
diff --git a/lib/sisu/v0/defaults.rb b/lib/sisu/v0/defaults.rb
index 821893fc..491be5ff 100644
--- a/lib/sisu/v0/defaults.rb
+++ b/lib/sisu/v0/defaults.rb
@@ -1628,12 +1628,11 @@ WOK
end
def credits_sisu
%{<div class="substance">
-<p class="content">
<table summary="SiSU summary" bgcolor="#ffffff" cellpadding="4" border="0">
<tr><td>
#{widget_sisu}
#{widget_way_better}
-</table></p></div>}
+</table></div>}
end
def credits_splash
end
diff --git a/lib/sisu/v0/html_format.rb b/lib/sisu/v0/html_format.rb
index 1d82ddfe..a73f3533 100644
--- a/lib/sisu/v0/html_format.rb
+++ b/lib/sisu/v0/html_format.rb
@@ -837,9 +837,7 @@ WOK
<a name="finish" id="finish"></a>
<a name="stop" id="stop"></a>
<a name="credits" id="credits"></a>
-</div>
-</div>
-</div>
+</div></div>
}
end
def navigation_band(segtocband,seg_table_top_control) #change name to navigaion_band_banner
diff --git a/lib/sisu/v0/html_minitoc.rb b/lib/sisu/v0/html_minitoc.rb
new file mode 100644
index 00000000..44ed57d2
--- /dev/null
+++ b/lib/sisu/v0/html_minitoc.rb
@@ -0,0 +1,241 @@
+# coding: utf-8
+=begin
+
+ * Name: SiSU
+
+ * Description: a framework for document structuring, publishing and search
+ minitoc
+
+ * Author: Ralph Amissah
+
+ * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+ 2007, 2008 Ralph Amissah All Rights Reserved.
+
+ * License: GPL 3 or later:
+
+ SiSU, a framework for document structuring, publishing and search
+
+ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+ 2007 Ralph Amissah
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation, either version 3 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program. If not, see <http://www.gnu.org/licenses/>.
+
+ If you have Internet connection, the latest version of the GPL should be
+ available at these locations:
+ <http://www.fsf.org/licensing/licenses/gpl.html>
+ <http://www.gnu.org/copyleft/gpl.html>
+
+ <http://www.jus.uio.no/sisu/gpl.fsf/toc.html>
+ <http://www.jus.uio.no/sisu/gpl.fsf/doc.html>
+ <http://www.jus.uio.no/sisu/gpl.fsf/plain.txt>
+
+ * SiSU uses:
+ * Standard SiSU markup syntax,
+ * Standard SiSU meta-markup syntax, and the
+ * Standard SiSU object citation numbering and system
+
+ * Hompages:
+ <http://www.jus.uio.no/sisu>
+ <http://www.sisudoc.org>
+
+ * Download:
+ <http://www.jus.uio.no/sisu/SiSU/download.html>
+
+ * Ralph Amissah
+ <ralph@amissah.com>
+ <ralph.amissah@gmail.com>
+
+ ** Description: system environment, resource control and configuration details
+
+=end
+ module SiSU_HTML_minitoc
+ require "#{SiSU_lib}/html_tune"
+ include SiSU_Tune
+ class Toc_mini
+ @@seg_mini=nil
+ @@seg_url=''
+ @@dp,@@firstseg=nil,nil
+ def initialize(md,data)
+ @md,@data=md,data
+ @dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern
+ @pat_heading=/^#{Mx[:lv_o]}[1-6]:\S*?#{Mx[:lv_c]}\s*(.*)#{Mx[:id_o]}~(\d+);(?:[hm]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
+ @pat_strip_heading_name=/<a name="h?\d.*?">(.+?)<\/a>/
+ @tell=SiSU_Screen::Ansi.new(@md.cmd) if @md
+ end
+ def songsheet
+ SiSU_Screen::Ansi.new(@md.cmd,'Toc').txt_grey unless @md.cmd =~/q/
+ toc=nil
+ @toc=[]
+ @data.each do |txt|
+ if txt =~/^(?:#{Mx[:lv_o]}[1-6]:|4~!)/
+ txt.gsub!(/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]}).+?(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})/m,'') #remove endnotes from toc
+ txt.gsub!(/<a name="-\d+" href="#_\d+">&nbsp;<sup>\d+<\/sup>&nbsp;<\/a>/,'')
+ txt.gsub!(@pat_strip_heading_name,'\1')
+ txt.gsub(/(.*?)<a name="(\d+)"><\/a>(.*)/,'\1') #2002w42 altered gsub! - problematic? - suspect
+ toc=case txt
+ when /^\s*#{Mx[:lv_o]}1:\S*/; Toc_mini.new(@md,txt).level_1
+ when /^\s*#{Mx[:lv_o]}2:\S*/; Toc_mini.new(@md,txt).level_2
+ when /^\s*#{Mx[:lv_o]}3:\S*/; Toc_mini.new(@md,txt).level_3
+ when /^\s*#{Mx[:lv_o]}4:\S+/; Toc_mini.new(@md,txt).level_4
+ when /^\s*#{Mx[:lv_o]}5:\S*/; Toc_mini.new(@md,txt).level_5
+ when /^\s*#{Mx[:lv_o]}6:\S*/; Toc_mini.new(@md,txt).level_6
+ when /^\s*4~!/; Toc.new(txt).level_crosslink
+ else
+ end
+ @toc << toc
+ end
+ end
+ @toc
+ end
+ protected
+ def level_concordance
+ format_head_toc=SiSU_HTML_Format::Head_toc.new(@md)
+ @@seg_mini << format_head_toc.mini_seg_concordance
+ end
+ def level_metadata
+ format_head_toc=SiSU_HTML_Format::Head_toc.new(@md)
+ @@seg_mini << format_head_toc.mini_seg_metadata
+ end
+ def level_word_index
+ format_head_toc=SiSU_HTML_Format::Head_toc.new(@d0c)
+ @@seg_mini << format_head_toc.mini_concordance
+ end
+ def level_1
+ txt=@data
+ unless txt =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
+ txt.gsub!(@pat_strip_heading_name,'\1')
+ end
+ txt[@pat_heading]
+ linkname,ocn=$1.strip,$2 if $&
+ title=unless txt =~/Document Information/; linkname
+ else
+ link='metadata'
+ %{<b><a href="#{@md.fnl[:pre]}#{link}#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}">#{linkname}</a></b>}
+ end
+ toc={}
+ txt_obj={:txt =>title}
+ format_toc=SiSU_HTML_Format::Format_toc.new(@md,txt_obj)
+ toc_mini=if txt =~/^#{Mx[:lv_o]}\d:meta#{Mx[:lv_c]}\s*Document Information/
+ format_toc.mini_tail
+ else format_toc.mini_lev1
+ end
+ toc_mini
+ end
+ def level_2
+ txt=@data
+ unless txt =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
+ txt.gsub!(@pat_strip_heading_name,'\1')
+ end
+ txt[@pat_heading]
+ linkname,ocn=$1.strip,$2 if $&
+ txt_obj={:txt =>linkname}
+ format_toc=SiSU_HTML_Format::Format_toc.new(@md,txt_obj)
+ toc_mini=format_toc.mini_lev2
+ toc_mini
+ end
+ def level_3
+ txt=@data
+ txt[@pat_heading]
+ linkname,ocn=$1.strip,$2 if $&
+ txt_obj={:txt =>linkname}
+ format_toc=SiSU_HTML_Format::Format_toc.new(@md,txt_obj)
+ toc_mini=format_toc.mini_lev3
+ toc_mini
+ end
+ def level_4
+ txt=@data
+ unless txt =~/~metadata/
+ unless txt =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
+ txt.gsub!(@pat_strip_heading_name,'\1')
+ txt[@pat_heading]
+ linkname,ocn=$1.strip,$2 if $&
+ end
+ txt.gsub!(/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/,'')
+ if txt =~/^#{Mx[:lv_o]}4:/
+ seg_link=txt.gsub(/^\s*#{Mx[:lv_o]}4:(\S+?)#{Mx[:lv_c]}\s*(.+?)$/,
+ %{ <a href="#{@md.fnl[:pre]}\\1#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}" target="_top">
+ \\2
+ </a> })
+ if seg_link =~/(#{Mx[:id_o]}\~\d+;(?:\w|[0-6]:\d+);\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]})$/m
+ m=/#{$1}/m
+ seg_link.gsub!(m,'')
+ end
+ @@seg_url=txt[/^#{Mx[:lv_o]}4:(\S+?)#{Mx[:lv_c]}.+?$/,1]
+ elsif txt =~/\d+.\d+.\d+.\d+|\d+.\d+.\d+|\d+.\d+|\d+/
+ seg_link=txt.gsub(/^\s*(#{@md.lv4}\s+)\s*(\d+.\d+.\d+.\d+|\d+.\d+.\d+|\d+.\d+|\d+)(.*)/,
+ %{<a href="#{@md.fnl[:pre]}\\2#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}" } +
+ %{target="_top">\\1 \\2 \\3</a> })
+ end
+ txt_obj={:txt =>seg_link}
+ format_toc=SiSU_HTML_Format::Format_toc.new(@md,txt_obj)
+ toc_mini=format_toc.mini_lev4
+ toc_mini
+ end
+ end
+ def level_5
+ txt=@data
+ if txt !~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
+ txt.gsub!(@pat_strip_heading_name,'\1')
+ end
+ txt[@pat_heading]
+ linkname,ocn=$1.strip,$2 if $&
+ if ocn \
+ and ocn !~/#/
+ p_num=SiSU_HTML_Format::Paragraph_number.new(@md,ocn)
+ end
+ toc={}
+ if txt =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
+ m=/#{$1}/
+ txt.gsub!(m,'')
+ title=linkname
+ else
+ lnk_n_txt=%{ <a href="#{@md.fnl[:pre]}#{@@seg_url}#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}##{ocn}">
+ #{linkname}
+ </a>}
+ txt_obj={:txt =>lnk_n_txt}
+ format_toc=SiSU_HTML_Format::Format_toc.new(@md,txt_obj)
+ toc_mini=format_toc.mini_lev5
+ end
+ toc_mini
+ end
+ def level_6
+ txt=@data
+ if txt !~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
+ txt.gsub!(@pat_strip_heading_name,'\1')
+ end
+ txt[@pat_heading]
+ linkname,ocn=$1.strip,$2 if $&
+ if ocn \
+ and ocn !~/#/
+ p_num=SiSU_HTML_Format::Paragraph_number.new(@md,ocn)
+ end
+ toc={}
+ if txt =~/#{Mx[:id_o]}~0;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/
+ m=/#{$1}/
+ txt.gsub!(m,'')
+ title=linkname
+ else
+ lnk_n_txt=%{ <a href="#{@md.fnl[:pre]}#{@@seg_url}#{@md.fnl[:mid]}#{@md.sfx}#{@md.fnl[:post]}##{ocn}">
+ #{linkname}
+ </a>}
+ txt_obj={:txt =>lnk_n_txt}
+ format_toc=SiSU_HTML_Format::Format_toc.new(@md,txt_obj)
+ toc_mini=format_toc.mini_lev6
+ end
+ toc_mini
+ end
+ end
+ end
+__END__
+
diff --git a/lib/sisu/v0/html_segments.rb b/lib/sisu/v0/html_segments.rb
index b457fe5c..11c95755 100644
--- a/lib/sisu/v0/html_segments.rb
+++ b/lib/sisu/v0/html_segments.rb
@@ -221,11 +221,11 @@ module SiSU_HTML_seg
if @@is1 == 1
@dc_creator=%{<b>#{@md.dc_creator}</b>\n} if @md.dc_creator.to_s =~/\S/
@@seg[:tocband_banner] << format_head_seg.navigation_band(@@segtocband,@@seg[:dot_nav])
- conditional_div_close=unless @@get_hash_fn =~/metadata/ #watch
+ conditional_div_close=if @@get_hash_fn =~/metadata/ #watch
'</div>'
else ''
end
- @@seg[:tocband_bannerless] << format_head_seg.navigation_band_bottom(@@segtocband,@@seg[:dot_nav])
+ @@seg[:tocband_bannerless] << conditional_div_close << format_head_seg.navigation_band_bottom(@@segtocband,@@seg[:dot_nav])
@@seg[:headers] << format_head_seg.seg_head_escript if SiSU_HTML_Format::Head_seg.method_defined? :seg_head_escript #debug PHP move up in text #bug
@@seg[:headers] << format_head_seg.title_banner(@md.title,@md.subtitle,@dc_creator).gsub(clean,'')
ocn=if @@header1[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#@dp:#@dp#{Mx[:id_c]}$/]; $1
@@ -380,11 +380,13 @@ module SiSU_HTML_seg
def tail
format_head_seg=SiSU_HTML_Format::Head_seg.new(@md)
if @md.flag_auto_endnotes and @@seg_endnotes[@@get_hash_fn]
- @@seg[:tail] << format_head_seg.endnote_section_open
+ @@seg[:tail] << '<div class="endnote">'
if @@seg_endnotes[@@get_hash_fn].flatten.length > 0
@@seg[:tail] << format_head_seg.endnote_mark
@@seg[:tail] << @@seg_endnotes[@@get_hash_fn].flatten #endnotes deposited at end of individual segments ||@|EXTRACTION OF ENDNOTES|
end
+ @@seg[:tail] << '</div>'
+ @@seg[:tail] << '</div>' #this div closes div class content
end
#@@seg[:tail] << '</div><table summary="whitespace"><tr><td>&nbsp;</td></tr></table>'
ads=SiSU_HTML_promo::Ad.new(@md)
@@ -397,7 +399,7 @@ module SiSU_HTML_seg
if type !~/endnote/
filename_seg << @@minitoc << @@seg[:headers] << @@seg[:main]
else
- filename_seg << @@seg[:header_endnotes] << @@minitoc << @@seg[:headers] << %{\n<div class="content">\n} << @@seg[:endnote_all] #<< '</div>'
+ filename_seg << @@seg[:header_endnotes] << @@minitoc << @@seg[:headers] << %{\n<div class="content">\n} << @@seg[:endnote_all] #<< '</div>' << '</div>'
end
filename_seg << @@seg[:tail] << @@seg[:tocband_bannerless] << @@seg[:credits]
filename_seg.flatten!.compact!
diff --git a/lib/sisu/v0/manifest.rb b/lib/sisu/v0/manifest.rb
index 104d3fc9..ffd99695 100644
--- a/lib/sisu/v0/manifest.rb
+++ b/lib/sisu/v0/manifest.rb
@@ -532,7 +532,6 @@ module SiSU_Manifest
def check_output
begin
minitoc=SiSU_HTML_minitoc::Toc_mini.new(@md,@data).songsheet
- toc='<div class="toc">' + minitoc.to_s + '</div>'
id,file='',''
vz=SiSU_Env::Get_init.instance.skin
banner_table=if vz.banner_home_button_only !~ /http:\/\/www\.jus\.uio\.no\/sisu/ \
@@ -565,7 +564,9 @@ SiSU manifest: #{@md.title}
</head>
<body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en">
#{banner_table}
-#{toc}
+<div class="toc">
+#{minitoc.to_s}
+</div>
<div class="content">
<h1 class="small">#{@md.dc_title}</h1>
<p class="bold">#{@md.dc_creator}</p>
@@ -613,8 +614,9 @@ WOK
@manifest[:html] <<<<WOK
</table>
</div>
-#{vz.credits_splash}
+<div class="main_column">
#{vz.credits_sisu}
+</div>
</body>
</html>
WOK