diff options
| author | Ralph Amissah <ralph@amissah.com> | 2008-03-01 16:33:41 +0000 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2008-03-01 16:33:41 +0000 | 
| commit | 439a0b77a8bdfba6ad85218c1db8ead9c17c69f9 (patch) | |
| tree | 66e67e1f65a90907170799af86926effd1cb138e | |
| parent | sisu-0.66.0 done (diff) | |
extend semantic shorthand
| -rw-r--r-- | lib/sisu/v0/shared_xml.rb | 110 | 
1 files changed, 65 insertions, 45 deletions
| diff --git a/lib/sisu/v0/shared_xml.rb b/lib/sisu/v0/shared_xml.rb index abc6cc1a..c93eff5b 100644 --- a/lib/sisu/v0/shared_xml.rb +++ b/lib/sisu/v0/shared_xml.rb @@ -161,35 +161,46 @@ module SiSU_XML_munge        @dp=SiSU_Env::Info_env.new.digest.pattern        @url_brace=SiSU_Viz::Skin.new.url_decoration        if @md.sem_tag +        #@ab ||=SiSU_Viz::Skin.new.semantic_tags.default          @ab ||=semantic_tags.default        end      end      def semantic_tags        def default          { -          :pub =>  'publication', -          :ref =>  'reference', -          :desc => 'description', -          :conv => 'convention', -          :vol =>  'volume', -          :pg =>   'page', -          :ct =>   'cite', -          :cty =>  'city', -          :org =>  'organization', -          :d =>    'date', -          :t =>    'title', -          :a =>    'author', -          :n =>    'name', -          :fn =>   'firstname', -          :f =>    'firstname', -          :mn =>   'middlename', -          :m =>    'middlename', -          :ln =>   'lastname', -          :l =>    'lastname', -          :i =>    'initials', -          :q =>    'quote', -          :y =>    'year', -          :ab =>   'abreviation', +          :pub =>     'publication', +          :conv =>    'convention', +          :vol =>     'volume', +          :pg =>      'page', +          :cty =>     'city', +          :org =>     'organization', +          :uni =>     'university', +          :dept =>    'department', +          :fac =>     'faculty', +          :inst =>    'institute', +          :co =>      'company', +          :com =>     'company', +          :conv =>    'convention', +          :dt =>      'date', +          :y =>       'year', +          :m =>       'month', +          :d =>       'day', +          :ti =>      'title', +          :au =>      'author', +          :ed =>      'editor', #editor? +          :v =>       'version', #edition +          :n =>       'name', +          :fn =>      'firstname', +          :mn =>      'middlename', +          :ln =>      'lastname', +          :in =>      'initials', +          :qt =>      'quote', +          :ct =>      'cite', +          :ref =>     'reference', +          :ab =>      'abreviation', +          :def =>     'define', +          :desc =>    'description', +          :trans =>   'translate',          }        end        self @@ -460,7 +471,7 @@ module SiSU_XML_munge        para      end      def xml_sem_block_paired(matched) # colon depth: many, recurs -      matched.gsub!(/\b(a):\{(.+?)\}:\1\b/m,   %{<sem:#{@ab[:a]} depth="many">\\2</sem:#{@ab[:a]}>}) # sem : +      matched.gsub!(/\b(au):\{(.+?)\}:\1\b/m,   %{<sem:#{@ab[:au]} depth="many">\\2</sem:#{@ab[:au]}>}) # sem :        matched.gsub!(/\b(vol):\{(.+?)\}:\1\b/m, %{<sem:#{@ab[:vol]} depth="many">\\2</sem:#{@ab[:vol]}>}) # sem :        matched.gsub!(/\b(pub):\{(.+?)\}:\1\b/m, %{<sem:#{@ab[:pub]} depth="many">\\2</sem:#{@ab[:pub]}>}) # sem :        matched.gsub!(/\b(ref):\{(.+?)\}:\1\b/m, %{<sem:#{@ab[:ref]} depth="many">\\2</sem:#{@ab[:ref]}>}) # sem : @@ -469,7 +480,7 @@ module SiSU_XML_munge        matched.gsub!(/\b(ct):\{(.+?)\}:\1\b/m,  %{<sem:#{@ab[:ct]} depth="many">\\2</sem:#{@ab[:ct]}>}) # sem :        matched.gsub!(/\b(cty):\{(.+?)\}:\1\b/m, %{<sem:#{@ab[:cty]} depth="many">\\2</sem:#{@ab[:cty]}>}) # sem :        matched.gsub!(/\b(org):\{(.+?)\}:\1\b/m, %{<sem:#{@ab[:org]} depth="many">\\2</sem:#{@ab[:org]}>}) # sem : -      matched.gsub!(/\b(d):\{(.+?)\}:\1\b/m,   %{<sem:#{@ab[:d]} depth="many">\\2</sem:#{@ab[:d]}>}) # sem : +      matched.gsub!(/\b(dt):\{(.+?)\}:\1\b/m,   %{<sem:#{@ab[:dt]} depth="many">\\2</sem:#{@ab[:dt]}>}) # sem :        matched.gsub!(/\b(n):\{(.+?)\}:\1\b/m,   %{<sem:#{@ab[:n]} depth="many">\\2</sem:#{@ab[:n]}>}) # sem :        matched.gsub!(/([a-z]+(?:[_:.][a-z]+)*)(?::\{(.+?)\}:\1)/m,'<sem:\1 depth="many">\2</sem:\1>') # sem :      end @@ -479,28 +490,37 @@ module SiSU_XML_munge          para.gsub!(/([a-z]+(?:[_:.][a-z]+)*)(?::\{(.+?)\}:\1)/m) {|c| xml_sem_block_paired(c) } # sem :          para.gsub!(/([a-z]+(?:[_:.][a-z]+)*)(?::\{(.+?)\}:\1)/m) {|c| xml_sem_block_paired(c) } # sem :          #colon one / single / flat / shallow -        para.gsub!(/:\{(.+?)\}:a\b/m,        %{<sem:#{@ab[:a]} depth="one">\\1</sem:#{@ab[:a]}>}) # sem : -        para.gsub!(/:\{(.+?)\}:n\b/m,        %{<sem:#{@ab[:n]} depth="one">\\1</sem:#{@ab[:n]}>}) # sem : -        para.gsub!(/:\{(.+?)\}:t\b/m,        %{<sem:#{@ab[:t]} depth="one">\\1</sem:#{@ab[:t]}>}) # sem : -        para.gsub!(/:\{(.+?)\}:ref\b/m,      %{<sem:#{@ab[:ref]} depth="one">\\1</sem:#{@ab[:ref]}>}) # sem : -        para.gsub!(/:\{(.+?)\}:desc\b/m,     %{<sem:#{@ab[:desc]} depth="one">\\1</sem:#{@ab[:desc]}>}) # sem : -        para.gsub!(/:\{(.+?)\}:cty\b/m,      %{<sem:#{@ab[:cty]} depth="one">\\1</sem:#{@ab[:cty]}>}) # sem : -        para.gsub!(/:\{(.+?)\}:org\b/m,      %{<sem:#{@ab[:org]} depth="one">\\1</sem:#{@ab[:org]}>}) # sem : +        para.gsub!(/:\{(.+?)\}:au\b/m,             %{<sem:#{@ab[:au]} depth="one">\\1</sem:#{@ab[:au]}>}) # sem : +        para.gsub!(/:\{(.+?)\}:n\b/m,              %{<sem:#{@ab[:n]} depth="one">\\1</sem:#{@ab[:n]}>}) # sem : +        para.gsub!(/:\{(.+?)\}:ti\b/m,             %{<sem:#{@ab[:ti]} depth="one">\\1</sem:#{@ab[:ti]}>}) # sem : +        para.gsub!(/:\{(.+?)\}:ref\b/m,            %{<sem:#{@ab[:ref]} depth="one">\\1</sem:#{@ab[:ref]}>}) # sem : +        para.gsub!(/:\{(.+?)\}:desc\b/m,           %{<sem:#{@ab[:desc]} depth="one">\\1</sem:#{@ab[:desc]}>}) # sem : +        para.gsub!(/:\{(.+?)\}:cty\b/m,            %{<sem:#{@ab[:cty]} depth="one">\\1</sem:#{@ab[:cty]}>}) # sem : +        para.gsub!(/:\{(.+?)\}:org\b/m,            %{<sem:#{@ab[:org]} depth="one">\\1</sem:#{@ab[:org]}>}) # sem :          para.gsub!(/:\{(.+?)\}:([a-z]+(?:[_:.][a-z]+)*)/m,'<sem:\2 depth="one">\1</sem:\2>') # sem :          #semicolon zero / none -        para.gsub!(/;\{([^}]+(?![;]))\};t\b/m,   %{<sem:#{@ab[:t]} depth="zero">\\1</sem:#{@ab[:t]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};q\b/m,   %{<sem:#{@ab[:q]} depth="zero">\\1</sem:#{@ab[:q]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};ref\b/m, %{<sem:#{@ab[:ref]} depth="zero">\\1</sem:#{@ab[:ref]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};desc\b/m,%{<sem:#{@ab[:desc]} depth="zero">\\1</sem:#{@ab[:desc]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};y\b/m,   %{<sem:#{@ab[:y]} depth="zero">\\1</sem:#{@ab[:y]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};ab\b/m,  %{<sem:#{@ab[:ab]} depth="zero">\\1</sem:#{@ab[:ab]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};pg\b/m,  %{<sem:#{@ab[:pg]} depth="zero">\\1</sem:#{@ab[:pg]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};fn?\b/m, %{<sem:#{@ab[:fn]} depth="zero">\\1</sem:#{@ab[:fn]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};mn?\b/m, %{<sem:#{@ab[:mn]} depth="zero">\\1</sem:#{@ab[:mn]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};ln?\b/m, %{<sem:#{@ab[:ln]} depth="zero">\\1</sem:#{@ab[:ln]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};i\b/m,   %{<sem:#{@ab[:i]} depth="zero">\\1</sem:#{@ab[:i]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};org\b/m, %{<sem:#{@ab[:org]} depth="zero">\\1</sem:#{@ab[:org]}>}) # sem ; -        para.gsub!(/;\{([^}]+(?![;]))\};cty\b/m, %{<sem:#{@ab[:cty]} depth="zero">\\1</sem:#{@ab[:cty]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};ti\b/m,    %{<sem:#{@ab[:ti]} depth="zero">\\1</sem:#{@ab[:ti]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};qt\b/m,    %{<sem:#{@ab[:qt]} depth="zero">\\1</sem:#{@ab[:qt]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};ref\b/m,   %{<sem:#{@ab[:ref]} depth="zero">\\1</sem:#{@ab[:ref]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};ed\b/m,    %{<sem:#{@ab[:ed]} depth="zero">\\1</sem:#{@ab[:ed]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};v\b/m,     %{<sem:#{@ab[:v]} depth="zero">\\1</sem:#{@ab[:v]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};desc\b/m,  %{<sem:#{@ab[:desc]} depth="zero">\\1</sem:#{@ab[:desc]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};def\b/m,   %{<sem:#{@ab[:def]} depth="zero">\\1</sem:#{@ab[:def]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};trans\b/m, %{<sem:#{@ab[:trans]} depth="zero">\\1</sem:#{@ab[:trans]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};y\b/m,     %{<sem:#{@ab[:y]} depth="zero">\\1</sem:#{@ab[:y]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};ab\b/m,    %{<sem:#{@ab[:ab]} depth="zero">\\1</sem:#{@ab[:ab]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};pg\b/m,    %{<sem:#{@ab[:pg]} depth="zero">\\1</sem:#{@ab[:pg]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};fn?\b/m,   %{<sem:#{@ab[:fn]} depth="zero">\\1</sem:#{@ab[:fn]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};mn?\b/m,   %{<sem:#{@ab[:mn]} depth="zero">\\1</sem:#{@ab[:mn]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};ln?\b/m,   %{<sem:#{@ab[:ln]} depth="zero">\\1</sem:#{@ab[:ln]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};in\b/m,    %{<sem:#{@ab[:in]} depth="zero">\\1</sem:#{@ab[:in]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};uni\b/m,   %{<sem:#{@ab[:uni]} depth="zero">\\1</sem:#{@ab[:uni]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};fac\b/m,   %{<sem:#{@ab[:fac]} depth="zero">\\1</sem:#{@ab[:fac]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};inst\b/m,  %{<sem:#{@ab[:inst]} depth="zero">\\1</sem:#{@ab[:inst]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};dept\b/m,  %{<sem:#{@ab[:dpt]} depth="zero">\\1</sem:#{@ab[:dept]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};org\b/m,   %{<sem:#{@ab[:org]} depth="zero">\\1</sem:#{@ab[:org]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};com?\b/m,  %{<sem:#{@ab[:com]} depth="zero">\\1</sem:#{@ab[:com]}>}) # sem ; +        para.gsub!(/;\{([^}]+(?![;]))\};cty\b/m,   %{<sem:#{@ab[:cty]} depth="zero">\\1</sem:#{@ab[:cty]}>}) # sem ;          para.gsub!(/;\{([^}]+(?![;]))\};([a-z]+(?:[_:.][a-z]+)*)/m,'<sem:\2 depth="zero">\1</sem:\2>') # sem ;        end        para | 
