diff options
Diffstat (limited to 'lib/sisu/v0/xml_format.rb')
-rw-r--r-- | lib/sisu/v0/xml_format.rb | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/lib/sisu/v0/xml_format.rb b/lib/sisu/v0/xml_format.rb new file mode 100644 index 00000000..2db28b25 --- /dev/null +++ b/lib/sisu/v0/xml_format.rb @@ -0,0 +1,339 @@ +=begin + * Name: SiSU information Structuring Universe - Structured information, Serialized Units + * Author: Ralph Amissah + * http://www.jus.uio.no/sisu + * http://www.jus.uio.no/sisu/SiSU/download.html + + * Description: xml template + + * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Ralph Amissah + + * License: GPL 2 or later + + Summary of GPL 2 + + 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 2 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + If you have Internet connection, the latest version of the GPL should be + available at these locations: + http://www.fsf.org/licenses/gpl.html + http://www.gnu.org/copyleft/gpl.html + http://www.jus.uio.no/sisu/gpl2.fsf + + SiSU was first released to the public on January 4th 2005 + + SiSU uses: + + * Standard SiSU markup syntax, + * Standard SiSU meta-markup syntax, and the + * Standard SiSU object citation numbering and system + + © Ralph Amissah 1997, current 2007. + All Rights Reserved. + + * Ralph Amissah: ralph@amissah.com + ralph.amissah@gmail.com + + * Notes: tidy -xml index.xml >> index.tidy +=end +module SiSU_XML_format + require "#{SiSU_lib}/param" + include SiSU_Param + include SiSU_Viz + class Paragraph_number + def initialize(md,paranum) + @md=md + @paranum=/(\d+)/m.match(paranum)[1] + end + def display + p_num_display=@paranum.gsub(/(\d+)/, + '<font size="1" color="#777777">' + + ' \1</font>') + 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 Head_information + def initialize #dc rdf + @dc_title=@dc_subtitle=@dc_creator=@dc_subject=@dc_description=@dc_publisher=@dc_contributor=@dc_date=@dc_type=@dc_format=@dc_identifier=@dc_source=@dc_language=@dc_relation=@dc_coverage=@dc_rights=@copyright=@owner=@keywords='' + @sfx,@pdf,@md=@@md.sfx,@@md.pdf,@@md + # DublinCore 1 - title + @rdfurl=%{ rdf:about="http://www.jus.uio.no/lm/toc"\n} + if @md.dc_title + @dc_title=%{<meta name="dc.title" content="#{seg_name}#{@md.dc_title}" />\n} + #if @md.subtitle + # #@rdf_title=%{ dc.title="#{seg_name}#{@md.title} - #{@md.subtitle}"\n} + # @dc_title=%{<meta name="dc.title" content="#{seg_name}#{@md.title} - #{@md.subtitle}" />\n} + #else + # #@rdf_title=%{ dc.title="#{seg_name}#{@md.title}"\n} + # @dc_title=%{<meta name="dc.title" content="#{seg_name}#{@md.dc_title}" />\n} + #end + end + if @md.dc_creator # DublinCore 2 - creator/author (author) + @rdf_creator=%{ dc.creator="#{@md.dc_creator}"\n} + @dc_creator=%{<meta name="dc.creator" content="#{@md.dc_creator}" />\n} + end + if @md.dc_subject # DublinCore 3 - subject (us library of congress, eric or udc, or schema???) + @rdf_subject=%{ dc.subject="#{@md.dc_subject}"\n} + @dc_subject=%{<meta name="dc.subject" content="#{@md.dc_subject}" />\n} + end + if @md.dc_description # DublinCore 4 - description + @rdf_description=%{ dc.description="#{@md.description}"\n} + @dc_description=%{<meta name="dc.dc_description" content="#{@md.description}" />\n} + end + if @md.dc_publisher # DublinCore 5 - publisher (current copy published by) + @rdf_publisher=%{ dc.publisher="#{@md.dc_publisher}"\n} + @dc_publisher=%{<meta name="dc.publisher" content="#{@md.dc_publisher}" />\n} + end + if @md.dc_contributor # DublinCore 6 - contributor + @rdf_contributor=%{ dc.contributor="#{@md.dc_contributor}"\n} + @dc_contributor=%{<meta name="dc.contributor" content="#{@md.dc_contributor}" />\n} + end + if @md.dc_date # DublinCore 7 - date year-mm-dd + @rdf_date=%{ dc.date="#{@md.dc_date}"\n} + @dc_date=%{<meta name="dc.date" content="#{@md.dc_date}" #{@md.date_scheme} />\n} + end + if @md.dc_date_created # DublinCore 7 - date.created year-mm-dd + @rdf_date_created=%{ dc.date.created="#{@md.dc_date_created}"\n} + @dc_date_created=%{<meta name="dc.date.created" content="#{@md.dc_date_created}" #{@md.date_created_scheme} />\n} + end + if @md.dc_date_issued # DublinCore 7 - date.issued year-mm-dd + @rdf_date_issued=%{ dc.date.issued="#{@md.dc_date_issued}"\n} + @dc_date_issued=%{<meta name="dc.date.issued" content="#{@md.dc_date_issued}" #{@md.date_issued_scheme} />\n} + end + if @md.dc_date_available # DublinCore 7 - date.available year-mm-dd + @rdf_date_available=%{ dc.date.available="#{@md.dc_date_available}"\n} + @dc_date_available=%{<meta name="dc.date.available" content="#{@md.dc_date_available}" #{@md.date_available_scheme} />\n} + end + if @md.dc_date_valid # DublinCore 7 - date.valid year-mm-dd + @rdf_date_valid=%{ dc.date.valid="#{@md.dc_date_valid}"\n} + @dc_date_valid=%{<meta name="dc.date.valid" content="#{@md.dc_date_valid}" #{@md.date_valid_scheme} />\n} + end + if @md.dc_date_modified # DublinCore 7 - date.modified year-mm-dd + @rdf_date_modified=%{ dc.date.modified="#{@md.dc_date_modified}"\n} + @dc_date_modified=%{<meta name="dc.date.modified" content="#{@md.dc_date_modified}" #{@md.date_modified_scheme} />\n} + end + if @md.dc_type # DublinCore 8 - type (genre eg. report, convention etc) + @rdf_type=%{ dc.type="#{@md.dc_type}"\n} + @dc_type=%{<meta name="dc.type" content="#{@md.dc_type}" />\n} + end + if @md.dc_format # DublinCore 9 - format (use your mime type) + @rdf_format=%{ dc.format="#{@md.dc_format}"\n} + @dc_format=%{<meta name="dc.format" content="#{@md.dc_format}" />\n} + end + if @md.dc_identifier # DublinCore 10 - identifier (your identifier, could use urn which is free) + @rdf_identifier=%{ dc.identifier="#{@md.dc_identifier}"\n} + @dc_identifier=%{<meta name="dc.identifier" content="#{@md.dc_identifier}" />\n} + end + if @md.dc_source # DublinCore 11 - source (document source) + @rdf_source=%{ dc.source="#{@md.dc_source}"\n} + @dc_source=%{<meta name="dc.source" content="#{@md.dc_source}" />\n} + end + if @md.dc_language[:name] # DublinCore 12 - language (English) + @rdf_language=%{ dc.language="#{@md.dc_language[:name]}"\n} + @dc_language=%{<meta name="dc.language" content="#{@md.dc_language[:name]}" />\n} + end + if @md.language_original[:name] # DublinCore 12 - language (English) + @rdf_language_original=%{ dc.language="#{@md.language_original[:name]}"\n} + @language_original=%{<meta name="dc.language" content="#{@md.language_original[:name]}" />\n} + end + if @md.dc_relation # DublinCore 13 - relation + @rdf_relation=%{ dc.relation="#{@md.dc_relation}"\n} + @dc_relation=%{<meta name="dc.relation" content="#{@md.dc_relation}" />\n} + end + if @md.dc_coverage # DublinCore 14 - coverage + @rdf_coverage=%{ dc.coverage="#{@md.dc_coverage}"\n} + @dc_coverage=%{<meta name="dc.coverage" content="#{@md.dc_coverage}" />\n} + end + if @md.dc_rights # DublinCore 15 - rights + @rdf_rights=%{ dc.rights="#{@md.dc_rights}"\n} + @dc_rights=%{<meta name="dc.rights" content="#{@md.dc_rights}" />\n} + end + @copyright=%{<meta name="copyright" content="#{@md.dc_rights}" />\n} if @md.rights # 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 + @vz=SiSU_Env::Get_init.instance.skin #margin,paragraph,table,banner,url,png,txt,color,font,nav_txt,nav_png,credits,js,php + @index=case @md.file_type + when /php/; 'index' # @index="index.php" + else 'index' + end + end + def toc_head_escript #embedded script in this case PHP + # %{<p>PHP or other embedded script for object persistence may go HERE</p>} + end + #def seg_head_escript #embedded script in this case PHP + # # %{<p>PHP or other embedded script for object persistence may go HERE</p>} + #end + def table_close + '</font> </td></tr></table>' + end + def buttons_home + %{\n#{@banner.home_and_index_buttons}\n} + end + def copyat + %{copy @ <a href="#{@url.home}" #{@js.home}>#{@txt.home}</a>} + end + def toc_head + #<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 rdf:about="http://www.jus.uio.no/lm/doc" + # dc:creator="Author" + # dc:title="Title" + # dc:description="Description if any" + # dc:date="Publication Date" + # /> + #</rdf:RDF> + #Dublin Core + <<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_creator +#@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> +#@dc_title +#@dc_creator +#@dc_subject +#@dc_description +#@dc_publisher +#@dc_contributor +#@dc_date +#@dc_date_created +#@dc_date_issued +#@dc_date_available +#@dc_date_valid +#@dc_date_modified +#@dc_type +#@dc_format +#@dc_identifier +#@dc_source +#@dc_language +#@dc_relation +#@dc_coverage +#@dc_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 Format_text_object + @@dp=nil + attr_accessor :md,:one,:two,:three,:parablock,:table,:link,:linkname,:format,:paranum,:p_num,:para_id,:headname,:margin,:paragraph,:table,:banner,:url,:icon,:font,:one_stripped + def initialize(md,*txt) + @md=md + txt[0].gsub!(/\.(html|pdf|php)/,'') if one =~/\.\.\/\S+/ + @one,@two,@three=txt[0],txt[1],txt[2] + @format,@parablock=txt[0],txt[1] + if txt[2]=~/\d+/ + @paranum=/(\d+)/m.match(txt[2])[1] + @headname='' + #if txt[2]=~/\d+/ + m=/\d~(\S+)/m.match(format) + headname=m[1] if m + @headname=%{<a name="h#{headname}"></a>} unless headname.nil? + @p_num=SiSU_XML_format::Paragraph_number.new(@md,@paranum) + end + #{ + rgx=/^[1-6-]~{1,2}/ #watch + link=txt[0].gsub(rgx,'') if @one =~rgx + @dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern + rgx=/~\{\d+\s+(.+?)<#@dp>\}~/ + link=txt[0].gsub(rgx,'\1') if txt[0] =~rgx + @link,@linkname=link,txt[1] + @vz=SiSU_Env::Get_init.instance.skin + end + def scr_endnote_body + "<endnote>#@one</endnote> " + end + end + class Format_scroll < Format_text_object + def initialize(*txt) + super(*txt) + end + def heading_body + %{<p class="norm">#{@p_num.name}#@headname#@parablock </p>} + + %{<p class="paranum">#{@p_num.display} </p>\n} + end + def heading_body1 + %{<h1 class="norm">#{@p_num.name}#@headname#@parablock </h1>} + + %{<p class="paranum">#{@p_num.display} </p>\n} + end + def heading_body2 + %{<h2 class="norm">#{@p_num.name}#@headname#@parablock </h2>} + + %{<p class="paranum">#{@p_num.display} </p>\n} + end + def heading_body3 + %{<h3 class="norm">#{@p_num.name}#@headname#@parablock </h3>} + + %{<p class="paranum">#{@p_num.display} </p>\n} + end + def heading_body4 + %{<h4 class="norm">#{@p_num.name}#@headname#@parablock</h4>} + + %{<p class="paranum">#{@p_num.display} </p>\n} + end + def heading_body5 + %{<h5 class="norm">#{@p_num.name}#@headname#@parablock </h5>} + + %{<p class="paranum">#{@p_num.display} </p>\n} + end + def heading_body6 + %{<h6 class="norm">#{@p_num.name}#@headname#@parablock </h6>} + + %{<p class="paranum">#{@p_num.display} </p>\n} + end + end + class XML + end +end +__END__ + |