diff options
Diffstat (limited to 'lib/sisu/develop/xml_format.rb')
-rw-r--r-- | lib/sisu/develop/xml_format.rb | 865 |
1 files changed, 0 insertions, 865 deletions
diff --git a/lib/sisu/develop/xml_format.rb b/lib/sisu/develop/xml_format.rb deleted file mode 100644 index 80610911..00000000 --- a/lib/sisu/develop/xml_format.rb +++ /dev/null @@ -1,865 +0,0 @@ -# encoding: utf-8 -=begin - -* Name: SiSU - -** Description: documents, structuring, processing, publishing, search -** xml template - -** Author: Ralph Amissah - <ralph@amissah.com> - <ralph.amissah@gmail.com> - -** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 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.sisudoc.org/sisu/en/manifest/gpl.fsf.html> - -** 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> - -** Git - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/develop/xml_format.rb;hb=HEAD> - -=end -module SiSU_XML_Format - require_relative 'dp' # dp.rb - require_relative 'xml_parts' # xml_parts.rb - include SiSU_Param - class ParagraphNumber - def initialize(md,paranum) - @md=md - @paranum=(paranum ? (/(\d+)/m.match(paranum)[1]) : nil) - end - def display - p_num_display=if @paranum - @paranum.gsub(/(\d+)/, - '<font size="1" color="#777777">' + - ' \1</font>') - else '' - end - p_num_display - end - def name - p_num_name=@paranum.gsub(/(\d+)/,'<a name="\1"></a>') - p_num_name - end - def goto - p_num_goto=@paranum.gsub(/(\d+)/,'<a href="#\1">') - p_num_goto - end - end - class HeadInformation - include SiSU_Parts_XML - def initialize #dc rdf - @full_title=@subtitle=@author=@subject=@description=@publisher=@contributor=@date=@type=@format=@identifier=@source=@language=@relation=@coverage=@rights=@copyright=@owner=@keywords='' - @md=@@md - # DublinCore 1 - title - @rdfurl=%{ rdf:about="http://www.jus.uio.no/lm/toc"\n} - if defined? @md.title.full \ - and @md.title.full # DublinCore 1 - title - @rdf_title=%{ dc.title="#{seg_name}#{@md.title.full}"\n} - @full_title=%{<meta name="dc.title" content="#{seg_name}#{@md.title.full}" />\n} - end - if defined? @md.creator.author \ - and @md.creator.author # DublinCore 2 - creator/author (author) - @rdf_author=%{ dc.author="#{@md.creator.author}"\n} - @author=%{<meta name="dc.author" content="#{@md.creator.author}" />\n} - end - if defined? @md.classify.subject \ - and @md.classify.subject=~/\S+/ # DublinCore 3 - subject (us library of congress, eric or udc, or schema???) - @rdf_subject=%{ dc.subject="#{@md.classify.subject}"\n} - @subject=%{<meta name="dc.subject" content="#{@md.classify.subject}" />\n} - end - if defined? @md.notes.description \ - and @md.notes.description=~/\S+/ # DublinCore 4 - description - @rdf_description=%{ dc.description="#{@md.notes.description}"\n} - @description=%{<meta name="dc.description" content="#{@md.notes.description}" />\n} - end - if defined? @md.publisher \ - and @md.publisher=~/\S+/ # DublinCore 5 - publisher (current copy published by) - @rdf_publisher=%{ dc.publisher="#{@md.publisher}"\n} - @publisher=%{<meta name="dc.publisher" content="#{@md.publisher}" />\n} - end - if defined? @md.creator.contributor \ - and @md.creator.contributor=~/\S+/ # DublinCore 6 - contributor - @rdf_contributor=%{ dc.contributor="#{@md.creator.contributor}"\n} - @contributor=%{<meta name="dc.contributor" content="#{@md.creator.contributor}" />\n} - end - if defined? @md.date.published \ - and @md.date.published # DublinCore 7 - date year-mm-dd - @rdf_date=%{ dc.date="#{@md.date.published}"\n} - @date=%{<meta name="dc.date" content="#{@md.date.published}" #{@md.date_scheme} />\n} - end - if defined? @md.date.created \ - and @md.date.created # DublinCore 7 - date.created year-mm-dd - @rdf_date_created=%{ dc.date.created="#{@md.date.created}"\n} - @date_created=%{<meta name="dc.date.created" content="#{@md.date.created}" #{@md.date_created_scheme} />\n} - end - if defined? @md.date.issued \ - and @md.date.issued # DublinCore 7 - date.issued year-mm-dd - @rdf_date_issued=%{ dc.date.issued="#{@md.date.issued}"\n} - @date_issued=%{<meta name="dc.date.issued" content="#{@md.date.issued}" #{@md.date_issued_scheme} />\n} - end - if defined? @md.date.available \ - and @md.date.available # DublinCore 7 - date.available year-mm-dd - @rdf_date_available=%{ dc.date.available="#{@md.date.available}"\n} - @date_available=%{<meta name="dc.date.available" content="#{@md.date.available}" #{@md.date_available_scheme} />\n} - end - if defined? @md.date.valid \ - and @md.date.valid # DublinCore 7 - date.valid year-mm-dd - @rdf_date_valid=%{ dc.date.valid="#{@md.date.valid}"\n} - @date_valid=%{<meta name="dc.date.valid" content="#{@md.date.valid}" #{@md.date_valid_scheme} />\n} - end - if defined? @md.date.modified \ - and @md.date.modified # DublinCore 7 - date.modified year-mm-dd - @rdf_date_modified=%{ dc.date.modified="#{@md.date.modified}"\n} - @date_modified=%{<meta name="dc.date.modified" content="#{@md.date.modified}" #{@md.date_modified_scheme} />\n} - end - if defined? @md.notes.coverage \ - and @md.notes.coverage=~/\S+/ # DublinCore 14 - coverage - @rdf_coverage=%{ dc.coverage="#{@md.notes.coverage}"\n} - @coverage=%{<meta name="dc.coverage" content="#{@md.notes.coverage}" />\n} - end - if defined? @md.notes.relation \ - and @md.notes.relation=~/\S+/ # DublinCore 13 - relation - @rdf_relation=%{ dc.relation="#{@md.notes.relation}"\n} - @relation=%{<meta name="dc.relation" content="#{@md.notes.relation}" />\n} - end - if defined? @md.notes.type \ - and @md.notes.type # DublinCore 8 - type (genre eg. report, convention etc) - @rdf_type=%{ dc.type="#{@md.notes.type}"\n} - @type=%{<meta name="dc.type" content="#{@md.notes.type}" />\n} - end - if defined? @md.notes.format \ - and @md.notes.format=~/\S+/ # DublinCore 9 - format (use your mime type) - @rdf_format=%{ dc.format="#{@md.notes.format}"\n} - @format=%{<meta name="dc.format" content="#{@md.notes.format}" />\n} - end - #if defined? @md.identifier.sisupod \ - #and @md.identifier.sisupod=~/\S+/ # DublinCore 10 - identifier (your identifier, could use urn which is free) - # @rdf_identifier=%{ dc.identifier="#{@md.identifier.sisupod}"\n} - # @identifier=%{<meta name="dc.identifier" content="#{@md.identifier.sisupod}" />\n} - #end - if defined? @md.original.source \ - and @md.original.source=~/\S+/ # DublinCore 11 - source (document source) - @rdf_source=%{ dc.source="#{@md.original.source}"\n} - @source=%{<meta name="dc.source" content="#{@md.source}" />\n} - end - if defined? @md.original.language \ - and @md.original.language=~/\S+/ # DublinCore 12 - language (English) - @rdf_language=%{ dc.language="#{@md.original.title}"\n} - @language=%{<meta name="dc.language" content="#{@md.language[:name]}" />\n} - end - if defined? @md.rights.all \ - and @md.rights.all=~/\S+/ # DublinCore 15 - rights - rights=meta_content_clean(@md.rights.all) - copyright=meta_content_clean(@md.rights.copyright.all) - @rdf_rights=%{ dc.rights="#{rights}"\n} - @rights=%{<meta name="dc.rights" content="#{rights}" />\n} - end - @copyright=%{<meta name="copyright" content="#{copyright}" />\n} \ - if @md.rights.copyright.all # possibly redundant see dc.rights - @owner=%{<meta name="owner" content="#{@md.owner}" />\n} if @md.owner - @keywords=%{<meta name="keywords" content="#{@md.keywords}" />\n} if @md.keywords - @index='index' - end - def meta_content_clean(content='') - content=if not content.nil? - content=content.tr('"',"'"). - gsub(/&/,'&') - content=SiSU_XML_Munge::Trans.new(@md).char_enc.utf8(content) - else content - end - end - def table_close - '</font> </td></tr></table>' - end - def toc_head - <<WOK -<html> -<head> -<title>#{@md.html_title}</title> -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <rdf:Description -#{@rdfurl} -#{@rdf_title} -#{@rdf_subtitle} -#{@rdf_author} -#{@rdf_subject} -#{@rdf_description} -#{@rdf_publisher} -#{@rdf_contributor} -#{@rdf_date} -#{@rdf_date_created} -#{@rdf_date_issued} -#{@rdf_date_available} -#{@rdf_date_valid} -#{@rdf_date_modified} -#{@rdf_type} -#{@rdf_format} -#{@rdf_identifier} -#{@rdf_source} -#{@rdf_language} -#{@rdf_relation} -#{@rdf_coverage} -#{@rdf_rights} - /> -</rdf:RDF> -#{@full_title} -#{@author} -#{@subject} -#{@description} -#{@publisher} -#{@contributor} -#{@date} -#{@date_created} -#{@date_issued} -#{@date_available} -#{@date_valid} -#{@date_modified} -#{@type} -#{@format} -#{@identifier} -#{@source} -#{@language} -#{@relation} -#{@coverage} -#{@rights} -#{@copyright} -#{@owner} -#{@png.ico} -#{@txt.generator} -#{@js.head} -\n</head> -#{@color.body} -#{@font.css_table_file} -<a name="top"></a> -<a name="up"></a> -<a name="start"></a> -#{@js.top} -WOK - end - end - class FormatTextObject - include SiSU_Parts_XML - attr_accessor :md,:txt,:format,:paranum,:p_num,:para_id,:headname,:font - def initialize(md,dob) - @md,@dob=md,dob - if @dob[:ocn]=~/\d+/ - @paranum=/(\d+)/m.match(@dob[:ocn])[1] - @headname='' - @headname=%{<a name="h#{dob.name}"></a>} if defined? dob.name - @p_num=SiSU_XML_Format::ParagraphNumber.new(@md,dob.ocn) - end - rgx=/^[1-6-]~{1,2}/ #watch - @lnk_url=@lnk_url.gsub(rgx,'') if @lnk_url =~rgx - rgx=/~\{\d+\s+(.+?)\}~/ - @lnk_url=@lnk_url.gsub(rgx,'\1') if @lnk_url =~rgx - end - def scr_endnote_body - "<endnote>#{@txt}</endnote> " - end - end - class FormatScroll < FormatTextObject - def initialize(md,dob) - super(md,dob) - end - def heading_body - %{<p class="norm">#{@p_num.name}#{@headname}#{@dob.obj} </p>} + - %{<p class="paranum"><font size="1" color="#777777"> #{@dob.ocn}</font></p>\n} - end - def heading_body0 - %{<h1 class="norm">#{@p_num.name}#{@headname}#{@dob.obj}</h1>} + - %{<p class="paranum"><font size="1" color="#777777"> #{@dob.ocn}</font></p>\n} - end - def heading_body1 - %{<h2 class="norm">#{@p_num.name}#{@headname}#{@dob.obj}</h2>} + - %{<p class="paranum"><font size="1" color="#777777"> #{@dob.ocn}</font></p>\n} - end - def heading_body2 - %{<h3 class="norm">#{@p_num.name}#{@headname}#{@dob.obj}</h3>} + - %{<p class="paranum"><font size="1" color="#777777"> #{@dob.ocn}</font></p>\n} - end - def heading_body3 - %{<h4 class="norm">#{@p_num.name}#{@headname}#{@dob.obj}</h4>} + - %{<p class="paranum"><font size="1" color="#777777"> #{@dob.ocn}</font></p>\n} - end - def heading_body4 - %{<h5 class="norm">#{@p_num.name}#{@headname}#{@dob.obj}</h5>} + - %{<p class="paranum"><font size="1" color="#777777"> #{@dob.ocn}</font></p>\n} - end - def heading_body5 - %{<h6 class="norm">#{@p_num.name}#{@headname}#{@dob.obj}</h6>} + - %{<p class="paranum"><font size="1" color="#777777"> #{@dob.ocn}</font></p>\n} - end - def heading_body6 - %{<h7 class="norm">#{@p_num.name}#{@headname}#{@dob.obj}</h7>} + - %{<p class="paranum"><font size="1" color="#777777"> #{@dob.ocn}</font></p>\n} - end - end - class ParagraphNumber - def initialize(md,ocn) - @md,@ocn=md,ocn.to_s - @ocn ||='' - end - def ocn_display - @make=SiSU_Env::ProcessingSettings.new(@md) - if @make.build.ocn? - ocn_class='ocn' - if @ocn.to_i==0 - @ocn.gsub(/^(\d+|)$/, - %{<label class="#{ocn_class}"><a name="#{@ocn}"> </a></label>}) - else - @ocn.gsub(/^(\d+|)$/, - %{<label class="#{ocn_class}"><a name="#{@ocn}">\\1</a></label>}) - end - else - ocn_class='ocn_off' - @ocn.gsub(/^(\d+|)$/, - %{<label class="#{ocn_class}"> </label>}) - end - end - def name - %{<a name="#{@ocn}"></a>} - end - def id #w3c? "tidy" complains about numbers as identifiers ! annoying - %{id="o#{@ocn}"} - end - def goto - %{<a href="##{@ocn}">} - end - end - class HeadInformation - include SiSU_Parts_XML - attr_reader :md,:sfx,:pdf,:rdf,:vz - def initialize(md) - @md=md - @rdf=SiSU_XML_Tags::RDF.new(md) - # DublinCore 1 - title - @stylesheet=SiSU_Style::CSS_HeadInfo.new(md).stylesheet - @seg_name_html=(SiSU_HTML::Source::Seg.new.seg_name_html || []) - @seg_name_html_tracker=(SiSU_HTML::Source::Seg.new.seg_name_html_tracker || []) - @index='index' - @metalink='#metadata' - @tocband_scroll,@tocband_segtoc=nil,nil - end - def doc_type - %{<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml">\n} - end - def table_close - %{ </font> -#{the_table_close}} - end - def html_close #moved - %{</body> -</html>} - end - end - class XML - end - class FormatTextObject - include SiSU_Parts_XML - attr_accessor :md,:dob,:txt,:ocn,:format,:table,:link,:linkname,:paranum,:p_num,:headname,:banner,:url - def initialize(md,t_o) - @md,@t_o=md,t_o - if t_o.is_a?(Hash) - @txt =t_o[:txt] || nil - @ocn =t_o[:ocn] || nil - @ocn_display =t_o[:ocn_display] || nil - @headname =t_o[:headname] || nil - @trailer =t_o[:trailer] || nil - @endnote_part_a =t_o[:endnote_part_a] || nil - @endnote_part_b =t_o[:endnote_part_b] || nil - @lnk_url =t_o[:lnk_url] || nil - @lnk_txt =t_o[:lnk_txt] || nil - @format =t_o[:format] || nil - @target =t_o[:target] || nil #occasionally passed but not used - elsif t_o.class.inspect =~/Object/ - @txt=if defined? t_o.obj; t_o.obj - else nil - end - @ocn=if defined? t_o.ocn; t_o.ocn.to_s - else nil - end - @headname=if t_o.is==:heading and defined? t_o.name; t_o.name - else nil - end - else - if @md.opt.act[:maintenance][:set]==:on - p __FILE__ << ':' << __LINE__.to_s - p t_o.class - p caller - end - end - if defined? @t_o.ocn - ocn=((@t_o.ocn.to_s =~/\d+/) ? @t_o.ocn : nil) - @p_num=ParagraphNumber.new(@md,ocn) - end - if @format and not @format.empty? - if @format=~/^\d:(\S+)/ #need more reliable marker #if @format =~ /#{Rx[:lv]}/ - headname=$1 #format[/\d~(\S+)/m,1] - @headname=if headname =~/^[a-zA-Z]/; %{<a name="#{headname}" id="#{headname}"></a>} #consider: h_#{headname} - else %{<a name="h#{headname}" id="h#{headname}"></a>} - end - end - end - @dob=t_o if defined? t_o.is - end - def endnote_body - %{ -<p class="endnote"> - #{@txt} -</p> -} - end - def endnote_body_indent - %{ - <p class="endnote_indent"> - #{@txt} - </p> -} - end - def no_paranum - %{ -<div class="substance"> - <label class="ocn"> </label> - <p class="norm"> - #{@txt} - </p> -</div> -} - end - def para_form_css(tag,attrib) # regular paragraphs shaped here - ul=ulc='' - ul,ulc="<ul>\n ","\n </ul>" if @tag =~/li/ - %{ -<div class="substance"> - #{@p_num.ocn_display} - #{ul}<#{tag} class="#{attrib}" #{@p_num.id}> - #{@txt} - </#{tag}>#{ulc} -</div> -} - end - def para - para_form_css('p','norm') - end - def code - para_form_css('p','code') - end - def center - para_form_css('p','center') - end - def bold - para_form_css('p','bold') - end - def bullet - para_form_css('li','bullet') - end - def format(tag,attrib) - para_form_css(tag,attrib) - end - def heading_normal(tag,attrib) - %{ -<div class="substance"> - #{@p_num.ocn_display} - <#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name} - #{@headname}#{@txt} - </#{tag}> -</div> -} - end - def heading_body - heading_normal('p','norm') - end - def heading_body0 - heading_normal('h1','norm') - end - def heading_body1 - heading_normal('h1','norm') - end - def heading_body2 - heading_normal('h2','norm') - end - def heading_body3 - heading_normal('h3','norm') - end - def heading_body4 - heading_normal('h4','norm') - end - def heading_body5 - heading_normal('h5','norm') - end - def heading_body6 - heading_normal('h6','norm') - end - def heading_body7 - heading_normal('h7','norm') - end - def title_header(tag,attrib) - %{ -<div class="content"> -<#{tag} class="#{attrib}"> - #{@txt} - </#{tag}> -</div> -} - end - def title_header1 - title_header('h1','tiny') - end - def title_header2 - title_header('h2','tiny') - end - def title_header3 - title_header('h3','tiny') - end - def title_header4 - '' - end - def title_header4_old - %{ -<div class="substance"> - <label class="ocn"> </label> - <h4 class="banner"> - #{@txt} - </h4> -</div> -} - end - def dl #check :trailer - "<dl><b>#{@txt}</b> #{@trailer}</dl>" - end - def table_css_end #<!TZ!> - '</table> - </p> - </div>' - end - def gsub_body -#fix - @txt=case @txt - when /^\s*\((i+|iv|v|vi+|ix|x|xi+)\)/ - @txt.gsub(/^\((i+|iv|v|vi+|ix|x|xi+)\)/,'<b>(\1)</b>'). - gsub(/^(#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]})\s*\((i+|iv|v|vi+|ix|x|xi+)\)/,'\1<b>(\2)</b>') - when /^\s*\(?(\d|[a-z])+\)/ - @txt.gsub(/^\((\d+|[a-z])+\)/,'<b>(\1)</b>'). - gsub(/^(#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]})\s*\((\d+|[a-z])+\)/,'\1<b>(\2)</b>') - when /^\s*\d{1,3}\.\s/ - @txt.gsub(/^\s*(\d+\.)/,'<b>\1</b>') - when /^\s*[A-Z]\.\s/ - @txt.gsub(/^\s*([A-Z]\.)/,'<b>\1</b>') - else @txt - end - end - def bold_para - %{#{the_margin.txt_0} - <p class="bold"> - #{@txt} - </p> -#{the_margin.num_css} - -#{the_table_close}} - end - def bold_header - @txt=@txt.gsub(/[1-9]~(\S+)/,'<a name="\1"></a>'). - gsub(/[1-9]~/,'') - %{<p class="bold"> - #{@txt} - </p> -#{the_margin.num_css} - -#{the_table_close}} - end - def toc_head_copy_at - %{<p class="center">#{@txt}</p>\n} - end - def center - %{<p class="center">#{@txt}</p>\n} - end - def bold - %{<p class="bold">#{@txt}</p>\n} - end - def center_bold - %{<p class="centerbold">#{@txt}</p>\n} - end - end - class FormatScroll < FormatTextObject - include SiSU_Parts_XML - def initialize(md,txt) - super(md,txt) - end - end - class FormatSeg < FormatTextObject - def initialize(md,txt) - super(md,txt) - end - def navigation_toc_lev1_advert - %{#{@banner.home_button}\n -<center> -#{@txt} -#{@two} -</a></center><p />} - end - def navigation_toc_lev1 - %{#{@banner.nav_toc}} - end - def navigation_toc_lev2 #change bold use css - %{<p /> -<table summary="navigation segment level 2"> -<tr><td width ="20"> -</td> -<td> - <font size="3" #{the_font.set_face}> - <b>#{@txt}</b> - </font> - </p> -#{the_table_close}} - end - def navigation_toc_lev3 #change bold use css - %{<p /> -<table summary="navigation segment level 3"> -<tr><td width ="20"> -</td> -<td> - <font size="3" #{the_font.set_face}> - <b>#{@txt}</b> - </font> - </p> -#{the_table_close}} - end - def navigation_toc_lev4 - %{<table summary="navigation segment level 4"> -<tr><td width ="80"> -</td> -<td> -<p> - #{@txt} -</p> -#{the_table_close}} - end - def navigation_toc_lev5 - end - def navigation_toc_lev6 - end - def endnote_seg_body(fn='') #FIX #url construction keep within single line... BUG WATCH 200408 - fn='doc' if fn.empty? #you may wish to reconsider, sends to 'doc' where no segment info # Sfx[:html] or Sfx[:xhtml] ? - %{ - <p class="endnote"> - #{@endnote_part_a}#{fn}#{@md.lang_code_insert}#{Sfx[:html]}#{@endnote_part_b} - </p> -} - end - def subtoc_lev(tag,attrib) - txt=if @txt \ - and @txt =~/<\/?i>|<a\s+name="\S+?">/mi - @txt.gsub(/<\/?i>|<a\s+name="\S+?">/mi,'') #removes name markers from subtoc, go directly to substantive text - else @txt - end - note='' - if txt =~/(#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]}\s*)/m - note=$1 - note=note.gsub(/[\n\s]+/m,' ') - txt=txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' '). - gsub(/<a[\n\s]+name="-\d+"[\n\s]+href="#_\d+"> <sup>\d+<\/sup> /m,'') - end - %{<#{tag} class="#{attrib}"> - <a href="##{@ocn}"><i>#{txt}</i></a> #{note} - </#{tag}>} - end - def subtoc_lev5 - subtoc_lev('h5','subtoc') if @txt - end - def subtoc_lev6 - subtoc_lev('h6','subtoc') if @txt - end - def subtoc_lev7 - subtoc_lev('h7','subtoc') if @txt - end - #% para sisu - def header_sub(tag,attrib) - @txt=@txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ') - %{ -<div class="substance"> - #{@p_num.ocn_display} - <#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name} #{@headname} - #{@txt} - </#{tag}> -</div> -} - end - def header4 - %{ -<div class="substance"> - #{@p_num.ocn_display} - <h1 class="norm" #{@p_num.id}>#{@p_num.name} - #{@t_o[:format]} - #{@txt} - </h1> -</div> -} - end - def header5 - header_sub('p','bold') - end - def header6 - header_sub('p','bold') - end - def header7 - header_sub('p','bold') - end - def navigation_header4 - %{<table summary="navigation segment header 4" width=100% bgcolor="#08163f" border="0"> -<tr><td align="center"> -<p class="bold"> - #{@txt} -</p> -#{the_table_close}} - end - def navigation_header5 - %{<p class="bold"> - #{@txt} -</p>} - end - def navigation_header6 - %{<p class="bold"> - #{@txt} -</p>} - end - def navigation_header7 - %{<p class="bold"> - #{@txt} -</p>} - end - def navigation_center - "<center>#{@txt}</center>" - end - end - class FormatToc < FormatTextObject - def initialize(md,txt) - super(md,txt) - end - def links_guide - %{ <li class="doc"> - <a href="#{@lnk_url}" target="_top"> - #{@lnk_txt} - </a> - </li> -} - end - def lev(tag,attrib) - if @txt - %{<#{tag} class="#{attrib}"> - #{@txt} - </#{tag}> -} - else '' - end - end - def lev1 - lev('h1','toc') - end - def lev2 - lev('h2','toc') - end - def lev3 - lev('h3','toc') - end - def lev4 - lev('h4','toc') - end - def lev5 - lev('h5','toc') - end - def lev6 - lev('h6','toc') - end - def lev7 - lev('h7','toc') - #lev('b','toc') - end - def lev0 #docinfo - lev('h0','toc') - end - def mini_lev1 - lev('h1','minitoc') - end - def mini_lev2 - lev('h2','minitoc') - end - def mini_lev3 - lev('h3','minitoc') - end - def mini_lev4 - lev('h4','minitoc') - end - def mini_lev5 - lev('h5','minitoc') - end - def mini_lev6 - lev('h6','minitoc') - end - def mini_lev7 - lev('h7','minitoc') - end - def mini_lev0 #docinfo - lev('h0','minitoc') - end - def mini_tail - %{ - <h4 class="minitoc"> - <a href="sisu_manifest.html">Manifest (alternative outputs)</a> - </h4> -} - end - def mini_concord_tail - %{ - <h4 class="minitoc"> - <a href="concordance.html">Concordance (wordlist)</a> - </h4> - <h4 class="minitoc"> - <a href="sisu_manifest.html">Manifest (alternative outputs)</a> - </h4> -} - end - end - class XML - end -end -__END__ -** Notes: tidy -xml index.xml >> index.tidy |