aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v3dv/html.rb
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2012-03-19 22:19:13 -0400
committerRalph Amissah <ralph@amissah.com>2012-03-19 22:19:13 -0400
commit98192c43c2d8686397a3884cacdc66ac93bafb02 (patch)
tree90903de5b159ac19992c88fe0d7fe7e232f969e4 /lib/sisu/v3dv/html.rb
parentdebian/changelog (3.1.15-2) (diff)
parentCOPYRIGHT, name change using uppercase, format changed (diff)
Merge tag 'sisu_3.2.0' into debian/sid
Diffstat (limited to 'lib/sisu/v3dv/html.rb')
-rw-r--r--lib/sisu/v3dv/html.rb664
1 files changed, 0 insertions, 664 deletions
diff --git a/lib/sisu/v3dv/html.rb b/lib/sisu/v3dv/html.rb
deleted file mode 100644
index fee51f2c..00000000
--- a/lib/sisu/v3dv/html.rb
+++ /dev/null
@@ -1,664 +0,0 @@
-# encoding: utf-8
-=begin
-
- * Name: SiSU
-
- * Description: a framework for document structuring, publishing and search
-
- * Author: Ralph Amissah
-
- * Copyright: (C) 1997 - 2012, Ralph Amissah, All Rights Reserved.
-
- * License: GPL 3 or later:
-
- SiSU, a framework for document structuring, publishing and search
-
- Copyright (C) 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/licenses/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: html generation, processing
-
-=end
-module SiSU_HTML
- require 'pstore'
- require_relative 'particulars' # particulars.rb
- include SiSU_Particulars
- require_relative 'defaults' # defaults.rb
- include SiSU_Viz
- require_relative 'html_table' # html_table.rb
- require_relative 'html_format' # html_format.rb
- include SiSU_HTML_Format
- require_relative 'html_segments' # html_segments.rb
- include SiSU_HTML_Seg
- require_relative 'html_scroll' # html_scroll.rb
- require_relative 'html_promo' # html_promo.rb
- include SiSU_HTML_Promo
- require_relative 'html_tune' # html_tune.rb
- include SiSU_HTML_Tune
- class Source
- def initialize(opt)
- @opt=opt
- @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt)
- end
- def read
- songsheet
- end
- def songsheet
- begin
- @md=@particulars.md
- @fnb=@md.fnb
- @env=@particulars.env
- loc=@env.url.output_tell
- unless @opt.cmd =~/q/
- tool=if @opt.cmd =~/[MVvz]/; "#{@env.program.web_browser} file://#{@md.file.output_path.html_seg.dir}/#{@md.file.base_filename.html_segtoc}"
- else "[#{@opt.f_pth[:lng_is]}] #{@opt.fns}"
- end
- @opt.cmd=~/[MVvz]/ \
- ? SiSU_Screen::Ansi.new(@opt.cmd,'HTML',tool).green_hi_blue
- : SiSU_Screen::Ansi.new(@opt.cmd,'HTML',tool).green_title_hi
- SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"file://#{@md.file.output_path.html_seg.dir}/#{@md.file.base_filename.html_segtoc}").flow if @opt.cmd =~/[MV]/
- end
- SiSU_Env::InfoSkin.new(@md).select
- data=nil
- @tuned_file_array=SiSU_HTML::Source::HTML_Environment.new(@particulars).tuned_file_instructions
- data=@tuned_file_array
- scr_endnotes=SiSU_HTML::Source::Endnotes.new(data,@md).scroll
- toc=SiSU_HTML::Source::Toc.new(@md,data).songsheet
- links_guide=SiSU_HTML::Source::LinksGuide.new(data,@md).toc
- data=@tuned_file_array
- scr_toc=SiSU_HTML::Source::ScrollHeadAndSegToc.new(@md,toc,links_guide).in_common #watch
- SiSU_HTML::Source::Seg.new(@md,data).songsheet
- data=@tuned_file_array
- scr=SiSU_HTML::Source::Scroll.new(@md,data,scr_endnotes).songsheet
- scroll=SiSU_HTML::Source::ScrollOutput.new(scr_toc,scr[:body],scr[:metadata],scr[:owner_details],scr[:tails],@md).publish
- SiSU_HTML::Source::Output.new(scroll,@md).scroll
- rescue; SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error
- ensure
- unless @opt.cmd =~/[MV]/ #check maintenance flag
- texfiles=Dir["#{@env.processing_path.tune}/#{@opt.fns}*"]
- texfiles.each do |f|
- if FileTest.file?(f)
- File.unlink(f)
- end
- end
- end
- SiSU_Env::Clear.new(@opt.cmd,@opt.fns,@md).param_instantiate
- @@flag,@@scr,@@seg,@@seg_endnotes,@@seg_subtoc,@@seg_ad={},{},{},{},{},{}
- @@seg_total,@@tracker,@@loop_count,@@tablehead,@@number_of_cols=0,0,0,0,0
- @@seg_name,@@seg_name_html,@@seg_subtoc_array,@@seg_endnotes_array,@@segtocband,@@tablefoot=Array.new(7){[]}
- @@filename_seg,@@seg_url,@@fn,@@to_lev4,@@get_hash_to,@@get_hash_fn='','','','','','',''
- @@is4=@@is3=@@is2=@@is1=@@heading1=@@heading2=@@heading3=@@heading4=0
- end
- end
- private
- class HTML_Environment
- def initialize(particulars)
- @particulars=particulars
- @md,@env=particulars.md,particulars.env
- @vz=SiSU_Env::GetInit.instance.skin
- @env,@css,@symlnk=particulars.env,SiSU_Style::CSS.new,SiSU_Env::CreateSystemLink.new #home
- end
- def link_images
- @symlnk.images
- end
- def tuned_file_instructions
- @tell=SiSU_Screen::Ansi.new(@md.opt.cmd)
- @md.opt.cmd=@md.opt.cmd.gsub(/H/,'h')
- @md.file_type='html' if @md.opt.cmd =~/[hw]/
- newfilename=%{#{@md.file.output_path.html_scroll.dir}/#{@md.file.base_filename.html_segtoc}} if @md.file_type =~/html/
- dal_array=@particulars.dal_array # dal file drawn here
- @tuned_file_array=SiSU_HTML_Tune::Tune.new(dal_array,@md).songsheet
- @tuned_file_array
- end
- end
- class LinksGuide
- @links_guide_toc=[]
- def initialize(data,md)
- @data,@md=data,md
- @links_guide_=SiSU_Env::CreateSite.new(@md.opt.cmd).html_quick_ref?
- end
- def toc
- @links_guide_toc=[]
- if @links_guide_
- format_head_toc=SiSU_HTML_Format::HeadToc.new(@md)
- guide_type='horzontal' #values: horizontal or vertical
- @links_guide_toc << format_head_toc.links_guide_open(guide_type)
- if defined? @md.lnk \
- and @md.lnk
- @md.lnk.each do |l|
- if defined? l[:say]
- target=if l[:url] !~/^\.(\.)?\//; 'external'
- else '_top'
- end
- s_lnk_url,s_lnk_lnk=l[:url],l[:say]
- txt_obj={ lnk_url: s_lnk_url, lnk_txt: s_lnk_lnk, target: target }
- lev_dob_ocn=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- @links_guide_toc << lev_dob_ocn.links_guide if s_lnk_lnk
- end
- end
- end
- format_head_toc=SiSU_HTML_Format::HeadToc.new(@md)
- @links_guide_toc << format_head_toc.links_guide_close #(guide_type)
- @links_guide_toc
- else ''
- end
- end
- end
- class Endnotes
- include SiSU_HTML_Format
- def initialize(data,md)
- @data,@md=data,md
- end
- def scroll
- @scr_endnotes=[]
- format_head_scroll=SiSU_HTML_Format::HeadScroll.new(@md)
- @data.each do |dob|
- pg=dob.dup
- unless pg.is ==:code
- if pg.obj =~/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]})[\d*+]+ /
- endnote_array=[]
- if pg.obj=~/#{Mx[:en_a_o]}[\d*+].+?#{Mx[:en_a_c]}/m
- endnote_array = pg.obj.scan(/#{Mx[:en_a_o]}[\d*+]+(.+?)#{Mx[:en_a_c]}/m)
- end
- if pg.obj=~/#{Mx[:en_b_o]}[\d*]+\s.+?#{Mx[:en_b_c]}/m
- endnote_array = pg.obj.scan(/#{Mx[:en_b_o]}[\d*]+(.+?)#{Mx[:en_b_c]}/m)
- end
- if pg.obj=~/#{Mx[:en_b_o]}[\d+]+\s.+?#{Mx[:en_b_c]}/m
- endnote_array = pg.obj.scan(/#{Mx[:en_b_o]}[\d+]+(.+?)#{Mx[:en_b_c]}/m)
- end
- endnote_array.flatten.each do |note|
- txt_obj={ txt: note }
- format_scroll=SiSU_HTML_Format::FormatScroll.new(@md,txt_obj)
- @scr_endnotes << format_scroll.endnote_body
- end
- end
- end
- end
- @scr_endnotes
- end
- end
- class Toc <LinksGuide
- @@toc={ seg: [], seg_mini: [], scr: [] }
- @@seg_url=''
- @@firstseg=nil
- def initialize(md=nil,data='')
- @data,@md=data,md
- @vz=SiSU_Env::GetInit.instance.skin
- @tell=SiSU_Screen::Ansi.new(@md.opt.cmd) if @md
- end
- def songsheet #extracts toc for scroll & seg
- SiSU_Screen::Ansi.new(@md.opt.cmd,'Toc').txt_grey if @md.opt.cmd =~/[MVv]/
- toc=nil
- @@firstseg=nil
- @@toc={ seg: [], seg_mini: [], scr: [] }
- @data.each do |dob|
- if dob.is==:heading \
- || dob.is==:heading_insert
- dob_toc=dob.dup
- toc=if dob_toc.is ==:heading \
- || dob.is==:heading_insert
- toc=case dob_toc.ln
- when 1; SiSU_HTML::Source::Toc.new(@md,dob_toc).level_1
- when 2; SiSU_HTML::Source::Toc.new(@md,dob_toc).level_2
- when 3; SiSU_HTML::Source::Toc.new(@md,dob_toc).level_3
- when 4; SiSU_HTML::Source::Toc.new(@md,dob_toc).level_4
- when 5; SiSU_HTML::Source::Toc.new(@md,dob_toc).level_5
- when 6; SiSU_HTML::Source::Toc.new(@md,dob_toc).level_6
- else nil
- end
- end
- toc.each do |k,d|
- d.gsub!(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')
- end if toc
- if @@firstseg.nil? \
- and dob.ln==4 \
- and dob.name =~/\S+/
- @@firstseg=dob.name
- end
- if toc
- begin
- @@toc[:seg] << toc[:seg] if toc[:seg]
- @@toc[:seg_mini] << toc[:seg_mini] if toc[:seg_mini]
- @@toc[:scr] << toc[:scr] if toc[:scr]
- rescue; SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error
- end
- end
- end
- end
- @md.firstseg=@@firstseg
- @@toc
- end
- def minitoc
- minitoc=@@toc[:seg_mini].join("\n")
- '<div class="toc">' + minitoc + '</div>'
- end
- protected
- def rss #sort all wrong, disabled but kept
- @@toc[:seg] <<<<WOK
-<center>
-<table><tr><td>
-<p><font color="#222222" #{@font.face} size="2">
-(relatively static) RSS feeds for DOCUMENTS:<br />
-<a href="../rssfeed/documents.xml"><img border="0" height="14" width="36" src="../_sisu/image/rss.png" alt="RSS feed"></a>&nbsp;http://www.jus.uio.no/lm/rssfeed/documents.xml<br />
-<a href="../rssfeed/tradelaw.xml"><img border="0" height="14" width="36" src="../_sisu/image/rss.png" alt="RSS feed"></a>&nbsp;http://www.jus.uio.no/lm/rssfeed/tradelaw.xml<br />
-<a href="../rssfeed/environmental.xml"><img border="0" height="14" width="36" src="../_sisu/image/rss.png" alt="RSS feed"></a>&nbsp;http://www.jus.uio.no/lm/rssfeed/environmental.xml<br />
-<center><a href="mailto:info@address.com" target="_top">info@address.com</a></center>
-</font></p>
-</td></tr></table>
-WOK
- end
-#not used -->
- def level_endnotes
- if @md.flag_endnotes
- format_head_scroll=SiSU_HTML_Format::HeadScroll.new(@md)
- @@toc[:scr] << format_head_scroll.toc_endnote
- end
- end
- def level_concordance
- format_head_toc=SiSU_HTML_Format::HeadToc.new(@md)
- @@toc[:seg_mini] << format_head_toc.mini_seg_concordance
- end
- def level_metadata
- format_head_toc=SiSU_HTML_Format::HeadToc.new(@md)
- @@toc[:scr] << format_head_toc.metadata
- @@toc[:seg] << format_head_toc.seg_metadata
- @@toc[:seg_mini] << format_head_toc.mini_seg_metadata
- end
- def level_word_index
- format_head_toc=SiSU_HTML_Format::HeadToc.new(@d0c)
- @@toc[:scr] << format_head_toc.concordance
- @@toc[:seg] << format_head_toc.concordance
- @@toc[:seg_mini] << format_head_toc.mini_concordance
- end
-# <-- not used
- def level_1
- dob=@data
- linkname,link=dob.obj.strip,dob.ocn
- if link \
- and link !~/#/ #% keep eye on link
- p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,link)
- end
- title=if dob.obj !~/Metadata/; linkname
- else
- link='metadata'
- %{<b><a href="#{link}#{@md.lang_code_insert}#{Sfx[:html]}">#{linkname}</a></b>}
- end
- toc={}
- txt_obj={ txt: title }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:seg]=if dob.name =~/^meta/ \
- and dob.obj =~/Document Information/
- format_toc.lev0
- else format_toc.lev1
- end
- toc[:seg_mini]=if dob.name =~/^meta/ \
- and dob.obj =~/Document Information/
- x=if @md.concord_make
- format_toc.mini_concord_tail
- else format_toc.mini_tail
- end
- else format_toc.mini_lev1
- end
- title=if dob.ocn ==0
- if dob.name =~/^meta/ \
- and dob.obj =~/Document Information/
- %{<a href="#docinfo">#{linkname}</a>}
- else linkname
- end
- else
- @@toc[:scr] << '<br />'
- link=if dob.ln; dob.ln
- else ''
- end
- %{<b><a href="##{link}">#{linkname}</a></b>}
- end
- txt_obj={ txt: title }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:scr]=if dob.name =~/^meta/ \
- and dob.obj =~/Document Information/
- format_toc.lev0
- else format_toc.lev1
- end
- toc
- end
- def level_2
- dob=@data
- linkname,ocn=dob.obj.strip,dob.ocn
- p_num=if ocn \
- and ocn !~/#/
- SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)
- else nil
- end
- txt_obj={ txt: linkname }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc={}
- toc[:seg]=format_toc.lev2
- toc[:seg_mini]=format_toc.mini_lev2
- if p_num
- title=%{#{p_num.goto}#{linkname}</a>}
- txt_obj={ txt: title }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:scr]=format_toc.lev2
- end
- toc
- end
- def level_3
- dob=@data
- linkname,ocn=dob.obj.strip,dob.ocn
- p_num=if ocn \
- and ocn !~/#/
- SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)
- else nil
- end
- txt_obj={ txt: linkname }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc={}
- toc[:seg]=format_toc.lev3
- toc[:seg_mini]=format_toc.mini_lev3
- if p_num
- title=%{#{p_num.goto}#{linkname}</a>}
- txt_obj={ txt: title }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:scr]=format_toc.lev3
- end
- toc
- end
- def level_4
- dob=@data
- linkname,ocn=dob.obj.strip,dob.ocn
- p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) if ocn
- if dob.ln ==4
- seg_link=%{ <a href="#{dob.name}#{@md.lang_code_insert}#{Sfx[:html]}" target="_top">
- #{dob.obj}
- </a> }
- @@seg_url=dob.name
- elsif dob.obj =~/\d+.\d+.\d+.\d+|\d+.\d+.\d+|\d+.\d+|\d+/
- seg_link=dob.obj.gsub(/^(\d+.\d+.\d+.\d+|\d+.\d+.\d+|\d+.\d+|\d+)(.*)/,
- %{<a href="\\1#{@md.lang_code_insert}#{Sfx[:html]}" } +
- %{target="_top">\\1 \\2</a> })
- end
- p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn) if ocn
- @file=SiSU_Env::FileOp.new(@md) if @md
- txt_obj=if seg_link=~/sisu_manifest\.html/
- man_link=if @file.output_dir_structure.by_language_code? \
- or @file.output_dir_structure.by_filetype?
- seg_link.gsub(/sisu_manifest\.html/,"../../manifest/#{@file.base_filename.manifest}")
- else seg_link
- end
- { txt: man_link }
- else { txt: seg_link }
- end
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc={}
- toc[:seg]=format_toc.lev4
- toc[:seg_mini]=format_toc.mini_lev4
- title=%{#{p_num.goto}#{linkname}</a>} if p_num
- txt_obj=if title=~/sisu_manifest.html/
- man_link=title.gsub(/sisu_manifest.html/,"../manifest/#{@file.base_filename.manifest}")
- { txt: man_link }
- else { txt: title }
- end
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:scr]=format_toc.lev4
- toc
- #end
- end
- def level_5
- dob=@data
- linkname,ocn=dob.obj.strip,dob.ocn
- toc={}
- if ocn \
- and ocn !~/#/
- p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)
- lnk_n_txt=%{ <a href="#{@@seg_url}#{@md.lang_code_insert}#{Sfx[:html]}##{ocn}">
- #{linkname}
- </a>}
- txt_obj={ txt: lnk_n_txt }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:seg]=format_toc.lev5
- toc[:seg_mini]=format_toc.mini_lev5
- title=%{#{p_num.goto}#{linkname}</a>}
- txt_obj={ txt: title }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:scr]=format_toc.lev5
- end
- toc
- end
- def level_6
- dob=@data
- linkname,ocn=dob.obj.strip,dob.ocn
- toc={}
- if ocn \
- and ocn !~/#/
- p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)
- lnk_n_txt=%{ <a href="#{@@seg_url}#{@md.lang_code_insert}#{Sfx[:html]}##{ocn}">
- #{linkname}
-</a>}
- txt_obj={ txt: lnk_n_txt }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:seg]=format_toc.lev6
- toc[:seg_mini]=format_toc.mini_lev6
- title=%{#{p_num.goto}#{linkname}</a>}
- txt_obj={ txt: title }
- format_toc=SiSU_HTML_Format::FormatToc.new(@md,txt_obj)
- toc[:scr]=format_toc.lev6
- end
- toc
- end
- def level_crosslink
- dob=@data
- dob=if dob !~/^4~!/
- dob.gsub(/^4~!\s+(\S+)\s+(.+)/,
- %{<table><tr><td width =\"80\"></td>
- <td><a href="http://\\1" target="_top">
- #{@png.crosslink_ext}
- &nbsp;&nbsp;\\2
- <\/a>
- </td></tr></table>
-})
- else
- dob.gsub(/^4~!\s+(\S+)\s+(.+)/,
- %{<table><tr><td width ="80">
- </td><td>
- <a href="\\1" target="_top">
- #{@png.crosslink}
- &nbsp;&nbsp;\\2
- <\/a>
- </td></tr></table>
-})
- end
- end
- end
- class ScrollHeadAndSegToc < Toc
- def initialize(md='',toc='',links_guide_toc='')
- @md,@toc,@links_guide_toc=md,toc,links_guide_toc
- @vz=SiSU_Env::GetInit.instance.skin
- @make=SiSU_Env::ProcessingSettings.new(@md)
- end
- def in_common
- toc_shared=[]
- @segtoc=[]
- SiSU_Screen::Ansi.new(@md.opt.cmd,'Scroll & Segtoc').txt_grey if @md.opt.cmd =~/[MVv]/
- format_head_toc=SiSU_HTML_Format::HeadToc.new(@md)
- dochead=format_head_toc.head
- dochead=dochead.gsub(/toc\.(html)/,'doc.\1') #kludge
- ads=SiSU_HTML_Promo::Ad.new(@md)
- toc_shared << dochead << ads.div.major
- @segtoc << format_head_toc.head << ads.div.major
- toc_shared << format_head_toc.toc_head_escript if SiSU_HTML_Format::HeadToc.method_defined? :toc_head_escript
- @segtoc << format_head_toc.toc_head_escript if SiSU_HTML_Format::HeadToc.method_defined? :toc_head_escript
- toc_shared << format_head_toc.scroll_head_navigation_band
- if defined? @md.rights.all
- rights=format_head_toc.rights.all
- rights=SiSU_HTML_Tune::CleanHTML.new(rights).clean
- end
- if @md.prefix_b
- prefix_b=format_head_toc.notes.prefix_b
- prefix_b=SiSU_HTML_Tune::CleanHTML.new(prefix_b).clean
- end
- @segtoc << format_head_toc.seg_head_navigation_band
- toc_shared << format_head_toc.scroll_head_title_banner_open
- @segtoc << format_head_toc.seg_head_title_banner_open
- tmp_head=nil
- doc_title_endnote=@md.title.full.gsub(/(\*+)/,'<sup><a href="#endnotes">\1</a></sup>')
- tmp_head=doc_title_endnote + "\n"
- txt_obj={ txt: tmp_head }
- format_txt_obj=SiSU_HTML_Format::FormatTextObject.new(@md,txt_obj)
- toc_shared << format_txt_obj.center_bold
- @segtoc << format_txt_obj.center_bold
- if defined? @md.creator.author
- creator_endnote=@md.creator.author.gsub(/(\*+)/,%{&nbsp;<sup><a href="#notes">\\1</a></sup>})
- tmp_head=creator_endnote + "\n"
- txt_obj={ txt: tmp_head }
- format_txt_obj=SiSU_HTML_Format::FormatTextObject.new(@md,txt_obj)
- toc_shared << format_txt_obj.center_bold
- @segtoc << format_txt_obj.center_bold
- end
- toc_shared << "#{@vz.table_close*1}\n"
- @segtoc << "#{@vz.table_close*1}\n"
- tmp_head=nil
- if @md.prefix_a
- tmp_head ||= %{<p />#{@md.prefix_a}\n}
- toc_shared << tmp_head.dup
- @segtoc << tmp_head.dup
- end
- tmp_head=nil
- toc_shared << @links_guide_toc
- if defined? @md.rights.all #and ? @md.rights.all
- toc_shared << rights
- end
- if defined? @md.prefix_b
- toc_shared << prefix_b
- end
- scr_toc=if @make.build.toc? #Table of Contents added/appended here
- toc_shared << @toc[:scr]
- end
- @segtoc << @links_guide_toc
- @segtoc << @toc[:seg]
- if defined? @md.rights.all \
- and not @md.rights.all.empty?
- @segtoc << rights
- end
- @segtoc << prefix_b if @md.prefix_b
- #Segtoc tail added here
- @segtoc << "</p>\n" #bugfix sort later DEBUGNOW
- @segtoc << @seg_toc_band_bottom
- ads=SiSU_HTML_Promo::Ad.new(@md)
- @segtoc << format_head_toc.seg_navigation_tail << ads.div.close << ads.display << format_head_toc.html_close
- @segtoc=@segtoc.flatten.compact #watch
- SiSU_HTML::Source::Output.new(@segtoc,@md).segtoc
- @segtoc=[]
- @toc[:scr],@toc[:seg]=[],[]
- toc_shared
- end
- end
- class Table < SiSU_HTML_Table::TableHTML
- end
- class Scroll < SiSU_HTML_Scroll::Scroll
- end
- class ScrollOutput
- def initialize(scr_toc,scr_body,scr_metadata,scr_owner_details,scr_tails,md)
- @scr_toc,@scr_body,@scr_metadata,@scr_owner_details,@scr_tails,@md=scr_toc,scr_body,scr_metadata,scr_owner_details,scr_tails,md
- end
- def publish
- scroll=[]
- hr='<center><hr width=90% /></center>'
- scroll << @scr_toc << '<div class="scroll">' << hr << @scr_body << @scr_endnotes << hr << @scr_owner_details << '</div>' << @scr_tails
- scroll=scroll.flatten.compact #watch
- end
- end
- class Seg < SiSU_HTML_Seg::Seg
- end
- class Output
- def initialize(data='',md='')
- @data,@md=data,md
- @file=SiSU_Env::FileOp.new(md)
- @o_str ||=SiSU_Env::ProcessingSettings.new(md).output_dir_structure
- end
- def scroll
- begin
- @filename_html_scroll=@file.write_file.html_scroll
- @data.each do |para|
- para=para.strip.
- gsub(/<:.+?>/,'').
- gsub(Xx[:html_relative2],@file.path_rel_links.html_scroll_2).
- gsub(Xx[:html_relative1],@file.path_rel_links.html_scroll_1).
- #gsub(/#{Xx[:html_relative]}/,@file.path_rel_links.html_scroll).
- gsub(/#{Rx[:mx_fa_clean]}/,'')
- unless para =~/\A\s*\Z/
- @filename_html_scroll.puts para,"\n"
- end
- end
- rescue; SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error
- ensure; @filename_html_scroll.close
- end
- end
- def segtoc
- begin
- @filename_html_segtoc=@file.write_file.html_segtoc
- @data.each do |para|
- para=para.strip.
- gsub(/<!.+?!>/,'').
- gsub(Xx[:html_relative2],@file.path_rel_links.html_seg_2).
- gsub(Xx[:html_relative1],@file.path_rel_links.html_seg_1)
- unless para =~/\A\s*\Z/
- @filename_html_segtoc.puts para,"\n"
- end
- end
- rescue; SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error
- ensure
- @filename_html_segtoc.close
- pwd_set=Dir.pwd
- idx_lnk=if @o_str.dump_or_redirect?
- @file.base_filename.manifest
- else
- @file.base_filename.html_segtoc
- end
- mlnk=@file.base_filename.html_seg_index
- Dir.chdir(@file.output_path.html_seg.dir)
- FileUtils::rm_f(mlnk)
- FileUtils::ln_s(idx_lnk,mlnk)
- Dir.chdir(pwd_set)
- end
- end
- end
- end
-end
-__END__