From f1fe4547034011194e913ffd70820e1c4f39d6ba Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sun, 24 Aug 2008 12:48:32 -0400 Subject: 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 --- lib/sisu/v0/css.rb | 4 +- lib/sisu/v0/defaults.rb | 3 +- lib/sisu/v0/html_format.rb | 4 +- lib/sisu/v0/html_minitoc.rb | 241 +++++++++++++++++++++++++++++++++++++++++++ lib/sisu/v0/html_segments.rb | 10 +- lib/sisu/v0/manifest.rb | 8 +- 6 files changed, 256 insertions(+), 14 deletions(-) create mode 100644 lib/sisu/v0/html_minitoc.rb 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 %{
-

#{widget_sisu} #{widget_way_better} -

} +} 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 - - - + } 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 . + + If you have Internet connection, the latest version of the GPL should be + available at these locations: + + + + + + + + * SiSU uses: + * Standard SiSU markup syntax, + * Standard SiSU meta-markup syntax, and the + * Standard SiSU object citation numbering and system + + * Hompages: + + + + * Download: + + + * Ralph Amissah + + + + ** 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>/ + @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!(/ \d+<\/sup> <\/a>/,'') + txt.gsub!(@pat_strip_heading_name,'\1') + txt.gsub(/(.*?)<\/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' + %{#{linkname}} + 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*(.+?)$/, + %{ + \\2 + }) + 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+)(.*)/, + %{\\1 \\2 \\3 }) + 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=%{ + #{linkname} + } + 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=%{ + #{linkname} + } + 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=%{#{@md.dc_creator}\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 '' 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] << '
' 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] << '
' + @@seg[:tail] << '' #this div closes div class content end #@@seg[:tail] << '
 
' 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
\n} << @@seg[:endnote_all] #<< '
' + filename_seg << @@seg[:header_endnotes] << @@minitoc << @@seg[:headers] << %{\n
\n} << @@seg[:endnote_all] #<< '
' << '' 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='
' + minitoc.to_s + '
' 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} #{banner_table} -#{toc} +
+#{minitoc.to_s} +

#{@md.dc_title}

#{@md.dc_creator}

@@ -613,8 +614,9 @@ WOK @manifest[:html] <<<
-#{vz.credits_splash} +
#{vz.credits_sisu} +
WOK -- cgit v1.2.3