aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/0.52/shared_xml.rb
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2007-06-02 11:27:06 +0100
committerRalph Amissah <ralph.amissah@gmail.com>2007-06-02 11:27:06 +0100
commit26767cc88c0548ad7978021796d0ccc4c9f7ffed (patch)
treefe225e99e180b5d2925cbf776826f74db27e1888 /lib/sisu/0.52/shared_xml.rb
parentrestrict use to ruby1.8 branch, i.e. < 1.9 (diff)
0.53.0, pre-build, see changelog, library naming changed for scm, placed under v0 (instead of 0.53)upstream/0.53.0sisu_0.53.0
Diffstat (limited to 'lib/sisu/0.52/shared_xml.rb')
-rw-r--r--lib/sisu/0.52/shared_xml.rb580
1 files changed, 0 insertions, 580 deletions
diff --git a/lib/sisu/0.52/shared_xml.rb b/lib/sisu/0.52/shared_xml.rb
deleted file mode 100644
index a3b4b07f..00000000
--- a/lib/sisu/0.52/shared_xml.rb
+++ /dev/null
@@ -1,580 +0,0 @@
-=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: common file for xml generation
-
- * 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
-=end
-module SiSU_text_parts
- class Split_text_object
- require SiSU_lib + '/param'
- require SiSU_lib + '/xml_format'
- include SiSU_Viz
- include SiSU_XML_format
- @@alt_id_count=0
- @@dp=nil
- attr_reader :format,:text,:ocn,:lev_para_ocn
- def initialize(md,para)
- @md,@para=md,para
- @format,@ocn='null','null'
- #@format,@ocn=nil,nil
- @dp=@@dp ||=SiSU_Env::Info_env.new.digest.pattern
- end
- def lev_segname_para_ocn #using shared_txt instead, watch #% watch closely
- if @para =~/^(\d~|<:.+?>).+?<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- if /^([1-6])~(\S+)\s+(\S.+?)<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
- @format,segname,@text,@ocn=$1,$2,$3,$4
- @format="#@format~#{segname}" #
- elsif /^([1-6]~)\s+(\S.+?)<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
- @format,@text,@ocn=$1,$2,$3 #,$4
- elsif /<:(.+?)>\s*(\S.+?)<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
- @format,@text,@ocn=$1,$2,$3
- elsif /^([1-6])~(\S+)\s+(\S.+?)<~(0);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
- @@alt_id_count+=1
- @format,segname,@text,@ocn=$1,$2,$3,"x#{@@alt_id_count}"
- @format="#@format~#{segname}" #
- elsif /^([1-6]~)\s+(\S.+?)<~(0);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
- @@alt_id_count+=1
- @format,@text,@ocn=$1,$2,"x#{@@alt_id_count}"
- end
- else
- if /(.+?)<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/m.match(@para)
- @text,@ocn=$1,$2
- end
- if @para !~/<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$|^$/ #added 2002w06
- @text=/(.+?)/m.match(@para)[1]
- end
- if /^(\d)~\S*\s+(.+)/m.match(@para)
- @format,@text=$1,$2
- end
- end
- @lev_para_ocn=if @para =~/.+<~\d+;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- SiSU_XML_format::Format_scroll.new(@md,@format,@text,@ocn)
- else
- SiSU_XML_format::Format_scroll.new(@md,@format,@text,"<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>")
- end
- self
- end
- def lev_segname_para
- if @para =~/^(\d~|<:.+?>).+/
- if /^([1-6])~(\S+)\s+(\S.+)/m.match(@para)
- @format,segname,@text=$1,$2,$3
- @format="#@format~#{segname}" #
- elsif /^([1-6]~)\s+(\S.+)/m.match(@para)
- @format,@text=$1,$2
- elsif /<:(.+?)>\s*(\S.+?)/m.match(@para)
- @format,@text=$1,$2
- elsif /^([1-6])~(\S+)\s+(\S.+?)/m.match(@para)
- @@alt_id_count+=1
- @format,segname,@text=$1,$2,$3
- @format="#@format~#{segname}" #
- elsif /^([1-6]~)\s+(\S.+?)/m.match(@para)
- @@alt_id_count+=1
- @format,@text=$1,$2
- end
- else
- if /(.+?)/m.match(@para)
- @text=$1
- end
- if @para !~/<~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$|^$/ #added 2002w06
- @text=/(.+?)/m.match(@para)[1]
- end
- if /^(\d)~\S*\s+(.+)/m.match(@para)
- @format,@text=$1,$2
- end
- end
- @lev_para_ocn=if @para =~/.+<~\d+;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/
- SiSU_XML_format::Format_scroll.new(@md,@format,@text,@ocn)
- else
- SiSU_XML_format::Format_scroll.new(@md,@format,@text,"<~0;(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>")
- end
- self
- end
- end
-end
-module SiSU_XML_munge
- class Trans
- def initialize(md)
- @sys=SiSU_Env::System_call.new
- @dir=SiSU_Env::Info_env.new(md.fns)
- @dp=SiSU_Env::Info_env.new.digest.pattern
- end
- def char_enc #character encode
- def utf8(para='')
- if @sys.locale =~/utf-?8/i # instead ucs for utf8 #require 'iconv' ? Iñtërnâtiônàlizætiøn
- #¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûü
- #¢£¥§©ª«®°±²³µ¶¹º»¼½¾×÷
- ##para.gsub!(//, '&#;')
- ##para.gsub!(//, '&;')
- para.gsub!(/¢/, '&#162;') # '&cent;' # &#162;
- para.gsub!(/£/, '&#163;') # '&pound;' # &#163;
- para.gsub!(/¥/, '&#165;') # '&yen;' # &#165;
- para.gsub!(/§/, '&#167;') # '&sect;' # &#167;
- para.gsub!(/©/, '&#169;') # '&copy;' # &#169;
- para.gsub!(/ª/, '&#170;') # '&ordf;' # &#170;
- para.gsub!(/«/, '&#171;') # '&laquo;' # &#171;
- para.gsub!(/®/, '&#174;') # '&reg;' # &#174;
- para.gsub!(/°/, '&#176;') # '&deg;' # &#176;
- para.gsub!(/±/, '&#177;') # '&plusmn;' # &#177;
- para.gsub!(/²/, '&#178;') # '&sup2;' # &#178;
- para.gsub!(/³/, '&#179;') # '&sup3;' # &#179;
- para.gsub!(/µ/, '&#181;') # '&micro;' # &#181;
- para.gsub!(/¶/, '&#182;') # '&para;' # &#182;
- para.gsub!(/¹/, '&#185;') # '&sup1;' # &#185;
- para.gsub!(/º/, '&#186;') # '&ordm;' # &#186;
- para.gsub!(/»/, '&#187;') # '&raquo;' # &#187;
- para.gsub!(/¼/, '&#188;') # '&frac14;' # &#188;
- para.gsub!(/½/, '&#189;') # '&frac12;' # &#189;
- para.gsub!(/¾/, '&#190;') # '&frac34;' # &#190;
- para.gsub!(/×/, '&#215;') # '&times;' # &#215;
- para.gsub!(/÷/, '&#247;') # '&divide;' # &#247;
- para.gsub!(/¿/, '&#191;') # '&iquest;' # &#191;
- para.gsub!(/À/, '&#192;') # '&Agrave;' # &#192;
- para.gsub!(/Á/, '&#193;') # '&Aacute;' # &#193;
- para.gsub!(/Â/, '&#194;') # '&Acirc;' # &#194;
- para.gsub!(/Ã/, '&#195;') # '&Atilde;' # &#195;
- para.gsub!(/Ä/, '&#196;') # '&Auml;' # &#196;
- para.gsub!(/Å/, '&#197;') # '&Aring;' # &#197;
- para.gsub!(/Æ/, '&#198;') # '&AElig;' # &#198;
- para.gsub!(/Ç/, '&#199;') # '&Ccedil;' # &#199;
- para.gsub!(/È/, '&#200;') # '&Egrave;' # &#200;
- para.gsub!(/É/, '&#201;') # '&Eacute;' # &#201;
- para.gsub!(/Ê/, '&#202;') # '&Ecirc;' # &#202;
- para.gsub!(/Ë/, '&#203;') # '&Euml;' # &#203;
- para.gsub!(/Ì/, '&#204;') # '&Igrave;' # &#204;
- para.gsub!(/Í/, '&#205;') # '&Iacute;' # &#205;
- para.gsub!(/Î/, '&#206;') # '&Icirc;' # &#206;
- para.gsub!(/Ï/, '&#207;') # '&Iuml;' # &#207;
- para.gsub!(/Ð/, '&#208;') # '&ETH;' # &#208;
- para.gsub!(/Ñ/, '&#209;') # '&Ntilde;' # &#209;
- para.gsub!(/Ò/, '&#210;') # '&Ograve;' # &#210;
- para.gsub!(/Ó/, '&#211;') # '&Oacute;' # &#211;
- para.gsub!(/Ô/, '&#212;') # '&Ocirc;' # &#212;
- para.gsub!(/Õ/, '&#213;') # '&Otilde;' # &#213;
- para.gsub!(/Ö/, '&#214;') # '&Ouml;' # &#214;
- para.gsub!(/Ø/, '&#216;') # '&Oslash;' # &#216;
- para.gsub!(/Ù/, '&#217;') # '&Ugrave;' # &#217;
- para.gsub!(/Ú/, '&#218;') # '&Uacute;' # &#218;
- para.gsub!(/Û/, '&#219;') # '&Ucirc;' # &#219;
- para.gsub!(/Ü/, '&#220;') # '&Uuml;' # &#220;
- para.gsub!(/Ý/, '&#221;') # '&Yacute;' # &#221;
- para.gsub!(/Þ/, '&#222;') # '&THORN;' # &#222;
- para.gsub!(/ß/, '&#223;') # '&szlig;' # &#223;
- para.gsub!(/à/, '&#224;') # '&agrave;' # &#224;
- para.gsub!(/á/, '&#225;') # '&aacute;' # &#225;
- para.gsub!(/â/, '&#226;') # '&acirc;' # &#226;
- para.gsub!(/ã/, '&#227;') # '&atilde;' # &#227;
- para.gsub!(/ä/, '&#228;') # '&auml;' # &#228;
- para.gsub!(/å/, '&#229;') # '&aring;' # &#229;
- para.gsub!(/æ/, '&#230;') # '&aelig;' # &#230;
- para.gsub!(/ç/, '&#231;') # '&ccedil;' # &#231;
- para.gsub!(/è/, '&#232;') # '&egrave;' # &#232;
- para.gsub!(/é/, '&#233;') # '&acute;' # &#233;
- para.gsub!(/ê/, '&#234;') # '&circ;' # &#234;
- para.gsub!(/ë/, '&#235;') # '&euml;' # &#235;
- para.gsub!(/ì/, '&#236;') # '&igrave;' # &#236;
- para.gsub!(/í/, '&#237;') # '&acute;' # &#237;
- para.gsub!(/î/, '&#238;') # '&icirc;' # &#238;
- para.gsub!(/ï/, '&#239;') # '&iuml;' # &#239;
- para.gsub!(/ð/, '&#240;') # '&eth;' # &#240;
- para.gsub!(/ñ/, '&#241;') # '&ntilde;' # &#241;
- para.gsub!(/ò/, '&#242;') # '&ograve;' # &#242;
- para.gsub!(/ó/, '&#243;') # '&oacute;' # &#243;
- para.gsub!(/ô/, '&#244;') # '&ocirc;' # &#244;
- para.gsub!(/õ/, '&#245;') # '&otilde;' # &#245;
- para.gsub!(/ö/, '&#246;') # '&ouml;' # &#246;
- para.gsub!(/ø/, '&#248;') # '&oslash;' # &#248;
- para.gsub!(/ù/, '&#250;') # '&ugrave;' # &#250;
- para.gsub!(/ú/, '&#251;') # '&uacute;' # &#251;
- para.gsub!(/û/, '&#252;') # '&ucirc;' # &#252;
- para.gsub!(/ü/, '&#253;') # '&uuml;' # &#253;
- para.gsub!(/þ/, '&#254;') # '&thorn;' # &#254;
- para.gsub!(/ÿ/, '&#255;') # '&yuml;' # &#255;
- end
- end
- def html(para='')
- if @sys.locale =~/utf-?8/i # instead ucs for utf8 #require 'iconv' ? Iñtërnâtiônàlizætiøn
- para.gsub!(/¢/, '&cent;') # &#162;
- para.gsub!(/£/, '&pound;') # &#163;
- para.gsub!(/¥/, '&yen;') # &#165;
- para.gsub!(/§/, '&sect;') # &#167;
- para.gsub!(/©/, '&copy;') # &#169;
- para.gsub!(/ª/, '&ordf;') # &#170;
- para.gsub!(/«/, '&laquo;') # &#171;
- para.gsub!(/®/, '&reg;') # &#174;
- para.gsub!(/°/, '&deg;') # &#176;
- para.gsub!(/±/, '&plusmn;') # &#177;
- para.gsub!(/²/, '&sup2;') # &#178;
- para.gsub!(/³/, '&sup3;') # &#179;
- para.gsub!(/µ/, '&micro;') # &#181;
- para.gsub!(/¶/, '&para;') # &#182;
- para.gsub!(/¹/, '&sup1;') # &#185;
- para.gsub!(/º/, '&ordm;') # &#186;
- para.gsub!(/»/, '&raquo;') # &#187;
- para.gsub!(/¼/, '&frac14;') # &#188;
- para.gsub!(/½/, '&frac12;') # &#189;
- para.gsub!(/¾/, '&frac34;') # &#190;
- para.gsub!(/×/, '&times;') # &#215;
- para.gsub!(/÷/, '&divide;') # &#247;
- para.gsub!(/¿/, '&iquest;') # &#191;
- para.gsub!(/À/, '&Agrave;') # &#192;
- para.gsub!(/Á/, '&Aacute;') # &#193;
- para.gsub!(/Â/, '&Acirc;') # &#194;
- para.gsub!(/Ã/, '&Atilde;') # &#195;
- para.gsub!(/Ä/, '&Auml;') # &#196;
- para.gsub!(/Å/, '&Aring;') # &#197;
- para.gsub!(/Æ/, '&AElig;') # &#198;
- para.gsub!(/Ç/, '&Ccedil;') # &#199;
- para.gsub!(/È/, '&Egrave;') # &#200;
- para.gsub!(/É/, '&Eacute;') # &#201;
- para.gsub!(/Ê/, '&Ecirc;') # &#202;
- para.gsub!(/Ë/, '&Euml;') # &#203;
- para.gsub!(/Ì/, '&Igrave;') # &#204;
- para.gsub!(/Í/, '&Iacute;') # &#205;
- para.gsub!(/Î/, '&Icirc;') # &#206;
- para.gsub!(/Ï/, '&Iuml;') # &#207;
- para.gsub!(/Ð/, '&ETH;') # &#208;
- para.gsub!(/Ñ/, '&Ntilde;') # &#209;
- para.gsub!(/Ò/, '&Ograve;') # &#210;
- para.gsub!(/Ó/, '&Oacute;') # &#211;
- para.gsub!(/Ô/, '&Ocirc;') # &#212;
- para.gsub!(/Õ/, '&Otilde;') # &#213;
- para.gsub!(/Ö/, '&Ouml;') # &#214;
- para.gsub!(/Ø/, '&Oslash;') # &#216;
- para.gsub!(/Ù/, '&Ugrave;') # &#217;
- para.gsub!(/Ú/, '&Uacute;') # &#218;
- para.gsub!(/Û/, '&Ucirc;') # &#219;
- para.gsub!(/Ü/, '&Uuml;') # &#220;
- para.gsub!(/Ý/, '&Yacute;') # &#221;
- para.gsub!(/Þ/, '&THORN;') # &#222;
- para.gsub!(/ß/, '&szlig;') # &#223;
- para.gsub!(/à/, '&agrave;') # &#224;
- para.gsub!(/á/, '&aacute;') # &#225;
- para.gsub!(/â/, '&acirc;') # &#226;
- para.gsub!(/ã/, '&atilde;') # &#227;
- para.gsub!(/ä/, '&auml;') # &#228;
- para.gsub!(/å/, '&aring;') # &#229;
- para.gsub!(/æ/, '&aelig;') # &#230;
- para.gsub!(/ç/, '&ccedil;') # &#231;
- para.gsub!(/è/, '&egrave;') # &#232;
- para.gsub!(/é/, '&acute;') # &#233;
- para.gsub!(/ê/, '&circ;') # &#234;
- para.gsub!(/ë/, '&euml;') # &#235;
- para.gsub!(/ì/, '&igrave;') # &#236;
- para.gsub!(/í/, '&acute;') # &#237;
- para.gsub!(/î/, '&icirc;') # &#238;
- para.gsub!(/ï/, '&iuml;') # &#239;
- para.gsub!(/ð/, '&eth;') # &#240;
- para.gsub!(/ñ/, '&ntilde;') # &#241;
- para.gsub!(/ò/, '&ograve;') # &#242;
- para.gsub!(/ó/, '&oacute;') # &#243;
- para.gsub!(/ô/, '&ocirc;') # &#244;
- para.gsub!(/õ/, '&otilde;') # &#245;
- para.gsub!(/ö/, '&ouml;') # &#246;
- para.gsub!(/ø/, '&oslash;') # &#248;
- para.gsub!(/ù/, '&ugrave;') # &#250;
- para.gsub!(/ú/, '&uacute;') # &#251;
- para.gsub!(/û/, '&ucirc;') # &#252;
- para.gsub!(/ü/, '&uuml;') # &#253;
- para.gsub!(/þ/, '&thorn;') # &#254;
- para.gsub!(/ÿ/, '&yuml;') # &#255;
- end
- end
- self
- end
- def tidywords(wordlist)
- wordlist.each do |x|
- x.gsub!(/&/,'&amp;') unless x =~/&\S+;/
- end
- end
- def markup(para='')
- wordlist=para.scan(/\S+|\n/) #\n needed for tables, check though added 2005w17
- para=tidywords(wordlist).join(' ').strip
- para.gsub!(/(^|\s+)<\s+/,'\1&lt; ')
- para.gsub!(/\s+>(\s+|$)/,' &gt;\1')
- para.gsub!(/<:pb>\s*/,'')
- para.gsub!(/<+[-~]#>+/,'')
- para.gsub!(/<0;\w\d+;[um]\d+><#@dp:#@dp>/,'')
- para.gsub!(/^(<:i[12]>\s*)_\*\s+/,'\1 <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="/usr/share/sisu/image/bullet_red.png" width="12" height="12" alt="*" /> ')
- para.gsub!(/^_\*\s+/,'<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="/usr/share/sisu/image/bullet_red.png" width="12" height="12" alt="*" /> ')
- para.gsub!(/(^|\s)\{\s*(\S+?\.(?:jpg|png|gif))\s+(\d+)x(\d+)(\s+[^}]+)?\}(https?:\/\/\S+)/,%{\\1<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@dir.url.images_local}/\\2" width="\\3" height="\\4" />[\\2] \\5})
- para.gsub!(/(^|\s)\{\s*(\S+?\.(?:jpg|png|gif))(\s+[^}]+)?\}(https?:\/\/\S+)/,%{\\1<image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="#{@dir.url.images_local}/\\2"/>\\2})
- para.gsub!(/(^|\s)\{([^}]+)\}(https?:\/\/[^"><]+?)([,.:;"><]?(?:\s|$))/,'\1<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="\3">\2</link>\4')
- para.gsub!(/(^|\s)(https?:\/\/[^"><]+?)([,.:;"><]?(?:\s|$))/,'\1<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="\2">\2</link>\3')
- para.gsub!(/&nbsp;/,' ') #clean
- para
- end
- def markup_light(para='')
- para.gsub!(/\/\{(.+?)\}\//,'<i>\1</i>')
- para.gsub!(/[*!]\{(.+?)\}[*!]/,'<b>\1</b>')
- para.gsub!(/_\{(.+?)\}_/,'<u>\1</u>')
- para.gsub!(/-\{(.+?)\}-/,'<del>\1</del>')
- para.gsub!(/<br(\s*\/)?>/,'<br />')
- para.gsub!(/<:pb>\s*/,'')
- para.gsub!(/<[-~]#>/,'')
- para.gsub!(/(^|\s)&\s+/,'\1&amp; ') #sort
- para.gsub!(/&([^;]{1,5})/,'&amp;\1') #sort, rough estimate, revisit #WATCH found in node not sax
- para.gsub!(/\{(\S+?\.(?:png|jpg|gif)) .+?\}(?:(?:https?|ftp):\/\/\S+|image)/,
- "<image.path>#{@dir.url.images_local}\/\\1</image.path>")
- para.gsub!(/&nbsp;/,' ')
- wordlist=para.scan(/\S+|\n/) #\n needed for tables, check though added 2005w17
- para=tidywords(wordlist).join(' ').strip
- para
- end
- def markup_group(para='')
- para.gsub!(/</,'&lt;')
- para.gsub!(/>/,'&gt;')
- para.gsub!(/&lt;br(?:\s+\/)?&gt;/,'<br />')
- para
- end
- end
-end
-module SiSU_XML_tags #Format
- require SiSU_lib + '/param'
- include SiSU_Param
- include SiSU_Viz
- class RDF
- def initialize(md='',seg_name=[],tracker=0)
- @dc_title=@dc_subtitle=@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=@keywords=''
- #seg_name=%{#{@@seg_name[@@tracker]} - } if @@seg_name[@@tracker]
- @md=md
- @sfx,@pdf=@md.sfx,@md.pdf
- @rdfurl=%{ rdf:about="http://www.jus.uio.no/lm/toc"\n}
- if @md.dc_title # DublinCore 1 - title
- @rdf_title=%{ dc.title="#{seg_name}#{@md.dc_title}"\n}
- @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}
- # @title=%{<meta name="dc.title" } +
- # %{content="#{seg_name}#{@md.title} - #{@md.subtitle}" />\n}
- #else
- # @rdf_title=%{ dc.title="#{seg_name}#{@md.title}"\n}
- # @title=%{<meta name="dc.title" } +
- # %{content="#{seg_name}#{@md.title}" />\n}
- #end
- end
- if @md.dc_creator # DublinCore 2 - creator/author (author)
- @rdf_creator=%{ dc.creator="#{@md.dc_creator}"\n}
- content=meta_content_clean(@md.dc_creator)
- @dc_creator=%{ <meta name="dc.creator" content="#{content}" />\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}
- content=meta_content_clean(@md.dc_subject)
- @dc_subject=%{ <meta name="dc.subject" content="#{content}" />\n}
- end
- if @md.dc_description # DublinCore 4 - description
- @rdf_description=%{ dc.description="#{@md.dc_description}"\n}
- content=meta_content_clean(@md.dc_description)
- @dc_description=%{ <meta name="dc.description" content="#{content}" />\n}
- end
- if @md.dc_publisher # DublinCore 5 - publisher (current copy published by)
- @rdf_publisher=%{ dc.publisher="#{@md.dc_publisher}"\n}
- content=meta_content_clean(@md.dc_publisher)
- @dc_publisher=%{ <meta name="dc.publisher" content="#{content}" />\n}
- end
- if @md.dc_contributor # DublinCore 6 - contributor
- @rdf_contributor=%{ dc.contributor="#{@md.dc_contributor}"\n}
- content=meta_content_clean(@md.dc_contributor)
- @dc_contributor=%{ <meta name="dc.contributor" content="#{content}" />\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}
- content=meta_content_clean(@md.dc_type)
- @dc_type=%{ <meta name="dc.type" content="#{content}" />\n}
- end
- if @md.dc_format # DublinCore 9 - format (use your mime type)
- @rdf_format=%{ dc.format="#{@md.dc_format}"\n}
- content=meta_content_clean(@md.dc_format)
- @dc_format=%{ <meta name="dc.format" content="#{content}" />\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}
- content=meta_content_clean(@md.dc_identifier)
- @dc_identifier=%{ <meta name="dc.identifier" content="#{content}" />\n}
- end
- if @md.dc_source # DublinCore 11 - source (document source)
- @rdf_source=%{ dc.source="#{@md.dc_source}"\n}
- content=meta_content_clean(@md.dc_source)
- @dc_source=%{ <meta name="dc.source" content="#{content}" />\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]
- @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}
- content=meta_content_clean(@md.dc_relation)
- @dc_relation=%{ <meta name="dc.relation" content="#{content}" />\n}
- end
- if @md.dc_coverage # DublinCore 14 - coverage
- @rdf_coverage=%{ dc.coverage="#{@md.dc_coverage}"\n}
- content=meta_content_clean(@md.dc_coverage)
- @dc_coverage=%{ <meta name="dc.coverage" content="#{content}" />\n}
- end
- if @md.dc_rights # DublinCore 15 - rights
- @rdf_rights=%{ dc.rights="#{@md.dc_rights}"\n}
- content=meta_content_clean(@md.dc_rights)
- @dc_rights=%{ <meta name="dc.rights" content="#{content}" />\n}
- end
- content=meta_content_clean(@md.keywords)
- @keywords=%{ <meta name="keywords" content="#{content}" />\n} if @md.keywords
- @vz=SiSU_Env::Get_init.instance.skin
- end
- def meta_content_clean(content='')
- unless content.nil?
- content.tr!('"',"'")
- end
- content
- end
- def rdftoc #tocHead #values strung together, because some empty, and resulting output (line breaks) is much better
- #<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
-#### XML only :-( KEEP
-#<<WOK
-#<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_dateCreated#@rdf_dateIssued#@rdf_dateAvailable#@rdf_dateValid#@rdf_dateModified#@rdf_type#@rdf_format#@rdf_identifier#@rdf_source#@rdf_language#@rdf_relation #@rdf_coverage#@rdf_rights
-# />\n
-#</rdf:RDF>\n
-#WOK
- end
- def rdfseg #segHead
- rdftoc
- end
- def comment_xml(extra='')
- generator="Generated by: #{@md.sisu_version[:project]} #{@md.sisu_version[:version]} of #{@md.sisu_version[:date_stamp]} (#{@md.sisu_version[:date]})" if @md.sisu_version[:version]
- lastdone="Last Generated on: #{Time.now}"
- rubyv="Ruby version: #{@md.ruby_version}"
- sc=if @md.sc_info
- "Source file: #{@md.sc_filename} version: #{@md.sc_number} of: #{@md.sc_date}"
- else ''
- end
- if extra.empty?
-<<WOK
-<!-- Document processing information:
- * #{generator}
- * #{rubyv}
- * #{sc}
- * #{lastdone}
- * SiSU http://www.jus.uio.no/sisu
--->
-WOK
- else
-<<WOK
-<!-- Document processing information:
- * #{extra}
- * #{generator}
- * #{rubyv}
- * #{sc}
- * #{lastdone}
- * SiSU http://www.jus.uio.no/sisu
--->
-WOK
- end
- end
- def comment_xml_sax
- desc='SiSU XML, SAX type representation'
- comment_xml(desc)
- end
- def comment_xml_node
- desc='SiSU XML, Node type representation'
- comment_xml(desc)
- end
- def comment_xml_dom
- desc='SiSU XML, DOM type representation'
- comment_xml(desc)
- end
- def metatag_html #values strung together, because some empty, and resulting output (line breaks) is much better
-#{@vz.js_head}
-<<WOK
-#@dc_title#@dc_subtitle#@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
-#{@vz.txt_generator}
-#{@vz.png_ico}
-WOK
- end
- end
-end
-module SiSU_Tables
- require SiSU_lib + '/xml_tables'
-end
-__END__
-