From 879a4e6cbe97721bbc6cd18b324524159b4807ef Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Thu, 9 May 2013 22:21:33 -0400 Subject: v5 dev branch opened (starts as copy of v4 stable branch); v3 branch closed * 5.0.0 dev opened * 4.1.0 stable * 3.* branch gone --- lib/sisu/v5/xml_format.rb | 1424 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1424 insertions(+) create mode 100644 lib/sisu/v5/xml_format.rb (limited to 'lib/sisu/v5/xml_format.rb') diff --git a/lib/sisu/v5/xml_format.rb b/lib/sisu/v5/xml_format.rb new file mode 100644 index 00000000..cccfc59f --- /dev/null +++ b/lib/sisu/v5/xml_format.rb @@ -0,0 +1,1424 @@ +# encoding: utf-8 +=begin + + * Name: SiSU + + * Description: a framework for document structuring, publishing and search + + * Author: Ralph Amissah + + * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 . + + 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: + + + * Git + + + + * Ralph Amissah + + + + ** Description: xml template + ** Notes: tidy -xml index.xml >> index.tidy + +=end +module SiSU_XML_Format + require_relative 'param' # param.rb + include SiSU_Param + include SiSU_Viz + 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+)/, + '' + + '  \1') + else '' + end + p_num_display + end + def name + p_num_name=@paranum.gsub(/(\d+)/,'') + p_num_name + end + def goto + p_num_goto=@paranum.gsub(/(\d+)/,'') + p_num_goto + end + end + class HeadInformation + 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=%{\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=%{\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=%{\n} + end + if defined? @md.notes.description \ + and @md.notes.description=~/\S+/ # DublinCore 4 - description + @rdf_description=%{ dc.description="#{@md.notes.description}"\n} + @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=%{\n} + end + if defined? @md.creator.contributor \ + and @md.creator.contributor=~/\S+/ # DublinCore 6 - contributor + @rdf_contributor=%{ dc.contributor="#{@md.creator.contributor}"\n} + @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=%{\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=%{\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=%{\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=%{\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=%{\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=%{\n} + end + if defined? @md.notes.coverage \ + and @md.notes.coverage=~/\S+/ # DublinCore 14 - coverage + @rdf_coverage=%{ dc.coverage="#{@md.notes.coverage}"\n} + @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=%{\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=%{\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=%{\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=%{\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=%{\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=%{\n} + end + if defined? @md.rights.all \ + and @md.rights.all=~/\S+/ # DublinCore 15 - rights + @rdf_rights=%{ dc.rights="#{@md.rights.all}"\n} + @rights=%{\n} + end + @copyright=%{\n} if @md.rights.copyright.all # possibly redundant see dc.rights + @owner=%{\n} if @md.owner + @keywords=%{\n} if @md.keywords + @vz=SiSU_Viz::Defaults.new #margin,paragraph,table,banner,url,png,txt,color,font,nav_txt,nav_png,credits,js,php + @index='index' + end + def table_close + ' ' + end + def toc_head + < + +#{@md.html_title} + + + +#{@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 +#{@color.body} +#{@font.css_table_file} + + + +#{@js.top} +WOK + end + end + class FormatTextObject + 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=%{} 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 + @vz=SiSU_Viz::Defaults.new + end + def scr_endnote_body + "#{@txt} " + end + end + class FormatScroll < FormatTextObject + def initialize(md,dob) + super(md,dob) + end + def heading_body + %{

#{@p_num.name}#{@headname}#{@dob.obj}

} + + %{

  #{@dob.ocn}

\n} + end + def heading_body1 + %{

#{@p_num.name}#{@headname}#{@dob.obj}

} + + %{

  #{@dob.ocn}

\n} + end + def heading_body2 + %{

#{@p_num.name}#{@headname}#{@dob.obj}

} + + %{

  #{@dob.ocn}

\n} + end + def heading_body3 + %{

#{@p_num.name}#{@headname}#{@dob.obj}

} + + %{

  #{@dob.ocn}

\n} + end + def heading_body4 + %{

#{@p_num.name}#{@headname}#{@dob.obj}

} + + %{

  #{@dob.ocn}

\n} + end + def heading_body5 + %{
#{@p_num.name}#{@headname}#{@dob.obj}
} + + %{

  #{@dob.ocn}

\n} + end + def heading_body6 + %{
#{@p_num.name}#{@headname}#{@dob.obj}
} + + %{

  #{@dob.ocn}

\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+|)$/, + %{}) + else + @ocn.gsub(/^(\d+|)$/, + %{}) + end + else + ocn_class='ocn_off' + @ocn.gsub(/^(\d+|)$/, + %{}) + end + end + def name + %{} + end + def id #w3c? "tidy" complains about numbers as identifiers ! annoying + %{id="o#{@ocn}"} + end + def goto + %{} + end + end + class HeadInformation + include SiSU_Viz + attr_reader :md,:sfx,:pdf,:rdf,:vz + def initialize(md) + @md=md + @rdf=SiSU_XML_Tags::RDF.new(md) + # DublinCore 1 - title + @vz=SiSU_Viz::Defaults.new + @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 + %{ +\n} + end + def table_close + %{ +#{@vz.table_close}} + end + def html_close #moved + %{ +} + end + end + class XML + end + class HeadToc < HeadInformation + def initialize(md) + super(md) + @md=md + @tocband_scroll,@tocband_segtoc=make_scroll,make_seg + end + def scroll_head_navigation_band + pdf=if @md.programs[:pdf] + < + #{make_seg_scroll_pdf} + +WOK + else '' + end + %{ +#{pdf} +
+ #{@vz.banner_band} + +   +#{@vz.table_close} +

} + end + def concordance_navigation_band(type='') + if type=~/pdf/ + @tocband_concordance=make_concordance + end + %{ + + +
+ #{@vz.banner_band} + + #{@tocband_concordance} + +   + #{@vz.png_nav_toc} +   +#{@vz.table_close} +

} + end + def seg_head_navigation_band(type='') + if type=~/pdf/ + @tocband_segtoc=make_scroll_seg_pdf + end + firstseg=%{ + #{@vz.png_nav_nxt} + } if @md.firstseg =~/\S+/ + %{ + + + +} + %{
+ #{@vz.banner_band} + + #{@tocband_segtoc} + +  #{firstseg}  +#{@vz.table_close} +

} + end + def seg_head_navigation_band_bottom(type='') + if type=~/pdf/ + @tocband_segtoc=make_scroll_seg_pdf + end + firstseg=%{ + #{@vz.png_nav_nxt} + } if @md.firstseg =~/\S+/ + %{ + + + +} + %{
+   + + #{@tocband_segtoc} + +  #{firstseg}  +#{@vz.table_close} +

} + end + def make_seg_scroll_pdf + wgt=Widget.new(@md) + scroll=%{

+ #{@vz.nav_txt_doc_link} +
+ + #{scroll} + #{wgt.seg(@vz.nav_txt_toc_link)}#{wgt.pdf}#{wgt.odf} + #{wgt.concordance(@vz.nav_txt_concordance)} + #{wgt.manifest} + #{wgt.search} + #{wgt.home} +
} + end + def make_scroll_seg_pdf + manifest=scroll=seg='' + wgt=Widget.new(@md) + seg=%{

+ #{@vz.nav_txt_toc_link} +
+ + #{seg} + #{wgt.scroll(@vz.nav_txt_doc_link)}#{wgt.pdf}#{wgt.odf} +
+ #{wgt.concordance(@vz.nav_txt_concordance)} + #{wgt.manifest} + #{wgt.search} + #{wgt.home} +
} + end + def make_concordance + manifest=scroll=seg='' + wgt=Widget.new(@md) + %{ + + #{wgt.seg(@vz.nav_txt_toc_link)}#{wgt.scroll(@vz.nav_txt_doc_link)}#{wgt.pdf}#{wgt.odf} +
+ #{wgt.concordance(@vz.nav_txt_concordance)} + #{wgt.manifest} + #{wgt.search} + #{wgt.home} +
} + end + def head + %{#{doc_type} + + + #{@md.html_title} + + +#{@rdf.rdftoc} +#{@rdf.metatag_html} +#{@stylesheet.css_head} + +#{@vz.color_body} + + +} + end + def links_guide_open(type='horizontal') + if type=='vertical'; links_guide_vertical_open + else links_guide_horizontal_open + end + end + def links_guide_close #(type='horizontal') + insert='' + insert=if @md.sfx_src =~/s?/ + link='http://sisudoc.org' #get from defaults + url='sisudoc.org' + insert= %{ +

  • + + #{url} + +
  • + + +} + end + %{ #{insert} +} + end + def prefix_a + end + def rights + rights=@md.rights.copyright.all.gsub(/^\s*Copyright\s+\(C\)/,'Copyright © ') + %{

    Rights: #{rights}

    +

    } + end + def prefix_b + %{

    Prefix: #{@md.prefix_b}

    } + end + def scroll_head_title_banner_open + %{

    +#{@md.icon} +
    +#{@vz.banner_instrument_cover_band_scr}} + end + def seg_head_title_banner_open + %{
    + #{@md.icon} +
    +#{@vz.banner_instrument_cover_band_seg}} + end + def make_scroll + concord=concordance_link(@vz.nav_txt_concordance) + %{ + +
    + #{@vz.nav_txt_doc_link} + + #{concord} +#{@vz.table_close}} + end + def make_seg + concord=concordance_link(@vz.nav_txt_concordance) + %{ + +
    + #{@vz.nav_txt_toc_link} + + + #{concord} +#{@vz.table_close}} + end + def manifest #check structure + manifest=manifest_link(@vz.nav_txt_manifest) + %{#{@vz.margin_txt_3} + #{@vz.paragraph_font_small} + #{manifest} + +#{@vz.table_close}} + end + def concordance #check structure + concord=concordance_link(@vz.nav_txt_concordance) + %{#{@vz.margin_txt_3} + #{@vz.paragraph_font_small} + #{concord} + +#{@vz.table_close}} + end + def metadata + %{#{@vz.margin_css} +

    + + MetaData + +

    +#{@vz.table_close}} + end + def seg_tail + %{ +
    +

     

    + + + +
    + #{@vz.banner_band} + +
    + #{@tocband_segtoc} +
    +
    +

     

    +#{@vz.credits_splash} +#{@vz.credits_sisu} + + + + + + +
    + + +} + end + def scroll_tail #debug + nav=scroll_head_navigation_band + %{ +
    +#{nav} +#{@vz.credits_splash} +#{@vz.credits_sisu} + + + + + + +
    + + +} + end + def seg_navigation_tail #this is a bug area, look up and "tidy" + #nav=scroll_head_navigation_band + %{ +
    +

     

    +#{@vz.credits_splash} +#{@vz.credits_sisu} + + + + + + +
    + + +} + end + end + class HeadSeg < HeadInformation + def initialize(md) #(md='') + super(md) + end + def head + %{#{doc_type} + + + #{@seg_name_html[@seg_name_html_tracker]} - + #{@md.html_title} + + +#{@rdf.rdfseg} +#{@rdf.metatag_html} +#{@vz.font_css_table_file} + +#{@vz.color_body} + + +} + end + def title_banner(title,subtitle,creator) + end + def dot_control_pre_next + %{ + + +} + pre=%{} if f_pre==true + nxt=%{} if f_nxt==true + %{
    + + #{@vz.png_nav_dot_pre} + + + + #{@vz.png_nav_dot_toc} + + + + #{@vz.png_nav_dot_nxt} + +#{@vz.table_close}} + end + def toc_nav(f_pre=false,f_nxt=false,use=1) + pre=nxt='' + toc=%{ + + #{@vz.png_nav_toc} + + + + #{@vz.png_nav_pre} + + + + #{@vz.png_nav_nxt} + +
    + +#{pre} +#{toc} +#{nxt} +
    +#{@vz.table_close}} + end + def toc_next2 + pre,nxt=false,true + toc_nav(false,true).dup + end + def toc_pre_next2 + toc_nav(true,true).dup + end + def toc_pre2 + toc_nav(true,false,2).dup + end + def doc_types #used in seg_nav_band ### + scroll=seg='' + wgt=Widget.new(@md) + #dir=SiSU_Env::InfoEnv.new(@md.fns) + x=if @md.concord_make + %{ + + + #{wgt.seg(@vz.nav_txt_toc_link)} + #{wgt.scroll(@vz.nav_txt_doc_link)} + #{wgt.pdf}#{wgt.odf} +
    + #{wgt.concordance(@vz.nav_txt_concordance)} + #{wgt.manifest} + #{wgt.search} + #{wgt.home} +
    } + else + %{ + + + #{wgt.seg(@vz.nav_txt_toc_link)} + #{wgt.scroll(@vz.nav_txt_doc_link)} + #{wgt.pdf}#{wgt.odf} +
    + #{wgt.manifest} + #{wgt.search} + #{wgt.home} +
    } + end + end + def navigation_table + %{ +
    + + + } + end + def navigation_table1 + %{ +
    + } + end + def navigation_table2 + %{ +
    + } + end + def header_advert_local_1 + dir=SiSU_Env::InfoEnv.new(@fns) + %{
    + +
    + + #{@md.ad_alt} + +

    +#{@vz.table_close} +} + end + def header_advert_local_2 + dir=SiSU_Env::InfoEnv.new(@fns) + %{

    + +
    + + #{@md.ad_alt} + +

    +#{@vz.table_close} +} + end + def header_advert_external + dir=SiSU_Env::InfoEnv.new(@fns) + %{

    + +
    + + #{@md.ad_alt} + +

    +#{@vz.table_close} +} + end + def credit + %{ +

    +#{@vz.credits_splash} +#{@vz.credits_sisu} + + + + + + +
    +} + end + def navigation_band(segtocband,seg_table_top_control) #change name to navigaion_band_banner + %{ + + + +
    +#{@vz.banner_band} + + #{doc_types} + + #{segtocband} +
    +#{seg_table_top_control}} + end + def navigation_band_bottom(segtocband,seg_table_top_control) #change name to navigaion_band_bannerless + %{ +
    + + + +
    + #{doc_types} + + #{segtocband} +
    + #{seg_table_top_control} +
    +} + end + def endnote_mark +%{ +

    +


    +

    } + end + def endnote_section_open +%{ +
    +} + end + def endnote_section_close +%{ +
    +} #revisit + end + def head + %{#{doc_type} + + + #{@seg_name_html[@seg_name_html_tracker]} - + #{@md.html_title} + + +#{@rdf.rdfseg} +#{@rdf.metatag_html} +#{@stylesheet.css_head} + +#{@vz.color_body} + + +} + end + def title_banner(title,subtitle,creator) + %{ +
    +

    + #{title} +

    +

    + #{subtitle} +

    +

    + #{creator} +

    +

    + copy @ + + #{@vz.txt_home} + +

    +
    +} + end + end + class HeadScroll < HeadToc + def initialize(md) #(md='') + super(md) + end + def toc_owner_details + %{#{@vz.margin_txt_3} +#{@vz.paragraph_font_small} + + Owner Details + +     + + + +#{@vz.table_close}} + end + def table + %{ + +
    + +#{@vz.paragraph_txt}} + end + def table1 + %{ +
    +#{@vz.paragraph_txt}} + end + def table2 + %{ +
    +#{@vz.paragraph_txt}} + end + end + class FormatTextObject + @vz=SiSU_Viz::Defaults.new + 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.cmd =~/M/ + 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]/; %{} #consider: h_#{headname} + else %{} + end + end + end + @dob=t_o if defined? t_o.is + @vz=SiSU_Viz::Defaults.new + end + def endnote_body + %{ +

    + #{@txt} +

    +} + end + def endnote_body_indent + %{ +

    + #{@txt} +

    +} + end + def no_paranum + %{ +
    + +

    + #{@txt} +

    +
    +} + end + def para_form_css(tag,attrib) # regular paragraphs shaped here + ul=ulc='' + ul,ulc="
      \n ","\n
    " if @tag =~/li/ + %{ +
    + #{@p_num.ocn_display} + #{ul}<#{tag} class="#{attrib}" #{@p_num.id}> + #{@txt} + #{ulc} +
    +} + 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) + %{ +
    + #{@p_num.ocn_display} + <#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name} + #{@headname}#{@txt} + +
    +} + end + def heading_body + heading_normal('p','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 title_header(tag,attrib) + %{ +
    +<#{tag} class="#{attrib}"> + #{@txt} + +
    +} + 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 + %{ +
    + + +
    +} + end + def dl #check :trailer + "
    #{@txt} #{@trailer}
    " + end + def table_css_end # + '
    +

    + ' + 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+)\)/,'(\1)'). + gsub(/^(#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]})\s*\((i+|iv|v|vi+|ix|x|xi+)\)/,'\1(\2)') + when /^\s*\(?(\d|[a-z])+\)/ + @txt.gsub(/^\((\d+|[a-z])+\)/,'(\1)'). + gsub(/^(#{Mx[:pa_o]}i[1-9]#{Mx[:pa_c]})\s*\((\d+|[a-z])+\)/,'\1(\2)') + when /^\s*\d{1,3}\.\s/ + @txt.gsub(/^\s*(\d+\.)/,'\1') + when /^\s*[A-Z]\.\s/ + @txt.gsub(/^\s*([A-Z]\.)/,'\1') + else @txt + end + end + def bold_para + %{#{@vz.margin_txt_0} +

    + #{@txt} +

    +#{@vz.margin_num_css} +     +#{@vz.table_close}} + end + def bold_header + @txt=@txt.gsub(/[1-9]~(\S+)/,''). + gsub(/[1-9]~/,'') + %{

    + #{@txt} +

    +#{@vz.margin_num_css} +     +#{@vz.table_close}} + end + def toc_head_copy_at + %{

    #{@txt}

    \n} + end + def center + %{

    #{@txt}

    \n} + end + def bold + %{

    #{@txt}

    \n} + end + def center_bold + %{

    #{@txt}

    \n} + end + end + class FormatScroll < FormatTextObject + def initialize(md,txt) + super(md,txt) + @vz=SiSU_Viz::Defaults.new + end + end + class FormatSeg < FormatTextObject + def initialize(md,txt) + super(md,txt) + end + def navigation_toc_lev1_advert + %{#{@banner.home_button}\n +
    +#{@txt} +#{@two} +

    } + end + def navigation_toc_lev1 + %{#{@banner.nav_toc}} + end + def navigation_toc_lev2 #change bold use css + %{

    + + +
    + + + #{@txt} + +

    +#{@vz.table_close}} + end + def navigation_toc_lev3 #change bold use css + %{

    + + +
    + + + #{@txt} + +

    +#{@vz.table_close}} + end + def navigation_toc_lev4 + %{ + +
    + +

    + #{@txt} +

    +#{@vz.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] ? + %{ +

    + #{@endnote_part_a}#{fn}#{@md.lang_code_insert}#{Sfx[:html]}#{@endnote_part_b} +

    +} + end + def subtoc_lev(tag,attrib) + txt=if @txt \ + and @txt =~/<\/?i>|/mi + @txt.gsub(/<\/?i>|/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(/ \d+<\/sup> /m,'') + end + %{<#{tag} class="#{attrib}"> + #{txt} #{note} + } + end + def subtoc_lev5 + subtoc_lev('h5','subtoc') if @txt + end + def subtoc_lev6 + subtoc_lev('h6','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,' ') + %{ +
    + #{@p_num.ocn_display} + <#{tag} class="#{attrib}" #{@p_num.id}>#{@p_num.name} #{@headname} + #{@txt} + +
    +} + end + def header5 + header_sub('p','bold') + end + def header6 + header_sub('p','bold') + end + def header4 + %{ +
    + #{@p_num.ocn_display} +

    #{@p_num.name} + #{@t_o[:format]} + #{@txt} +

    +
    +} + end + def navigation_header4 + %{ +
    +

    + #{@txt} +

    +#{@vz.table_close}} + end + def navigation_header5 + %{

    + #{@txt} +

    } + end + def navigation_header6 + %{

    + #{@txt} +

    } + end + def navigation_center + "
    #{@txt}
    " + end + end + class FormatToc < FormatTextObject + def initialize(md,txt) + super(md,txt) + end + def links_guide + %{
  • + + #{@lnk_txt} + +
  • +} + end + def lev(tag,attrib) + if @txt + %{<#{tag} class="#{attrib}"> + #{@txt} + +} + 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 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_lev0 #docinfo + lev('h0','minitoc') + end + def mini_tail + %{ +

    + Manifest (alternative outputs) +

    +} + end + def mini_concord_tail + %{ +

    + Concordance (wordlist) +

    +

    + Manifest (alternative outputs) +

    +} + end + end + class XML + end +end +__END__ -- cgit v1.2.3