Diff for /loncom/xml/lontexconvert.pm between versions 1.109 and 1.111

version 1.109, 2011/12/06 16:10:53 version 1.111, 2012/03/04 14:58:23
Line 50  use LONCAPA; Line 50  use LONCAPA;
 use URI::Escape;  use URI::Escape;
 use IO::Socket::INET;  use IO::Socket::INET;
   
   
   #
   # Table of substitutions to unicode characters.
   #
   my %unicode_translations = (
       '\rightleftharpoons'  => 0x21cc,
   
   # Brackets - unicode is commented out with pure 8-bit ascii ugliness while we need it.
   
   #    ''             => 0x23a1,
   #    ''             => 0x23a2,
   #    ''             => 0x23a3,   # when unicode catches up with browsers
   #    ''             => 0x23a4,   # use these instead of the cheesey brackets below
   #    ''             => 0x23a5,
   #    ''             => 0x23a6   
       ''              => 0x5b,
       ''              => 0x5b,    # '['
       ''              => 0x5b,
       ''              => 0x5d,    # ']'
       ''              => 0x5d,
       ''              => 0x5d,
   
   #  Parens..again the unicode is commented out with the 8-bit ascii ugliness
   #  turned on until browsers catch up with the unicode world.
   
   #    ''              => 0x239b,
   #    ''              => 0x239c,
   #    ''              => 0x239d,
   #    ''              => 0x239e,
   #    ''              => 0x239f,
   #    ''              => 0x23a0
   
       ''              => 0x28,
       ''              => 0x28,      # '('
       ''              => 0x28,
   
       ''              => 0x29,
       ''              => 0x29,      # '('
       ''              => 0x29
   
   
   );
   
   ##
   # Utility to convert elements of a string to unicode:
   #
   # @param input - Input string
   # @param pattern - Pattern to convert
   # @param unicode - Unicode to substitute for pattern.
   #
   # @return string - resulting string.
   # 
   sub unicode_subst {
       my ($input, $pattern, $unicode) = @_;
       
       my $char = pack('U', $unicode);
   
       $input =~ s/$pattern/$char/g;
   
       return $input;
   }
   
 # ====================================================================== Header  # ====================================================================== Header
   
 sub init_tth {  sub init_tth {
Line 93  sub convert_real { Line 155  sub convert_real {
     };      };
     &Apache::lonxml::start_alarm();      &Apache::lonxml::start_alarm();
     if ($env{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
    &Apache::lonnet::logthis("mathml");
  $xmlstring=&tth::ttm($$texstring);   $xmlstring=&tth::ttm($$texstring);
  $xmlstring=~s/\<math\>/\<math xmlns=\"\&mathns\;\"\>/g;   $xmlstring=~s/\<math\>/\<math xmlns=\"\&mathns\;\"\>/g;
  $xmlstring=~s/\<br\>/\<br\/\>/g;   $xmlstring=~s/\<br\>/\<br\/\>/g;
  $xmlstring=~s/\<p\>/\<p\>\<\/p\>/g;   $xmlstring=~s/\<p\>/\<p\>\<\/p\>/g;
  $errorstring.=&tth::ttmerror();   $errorstring.=&tth::ttmerror();
     } else {      } else {
    &Apache::lonnet::logthis("tth");
  $xmlstring=&tth::tth($$texstring);   $xmlstring=&tth::tth($$texstring);
  $errorstring.=&tth::ttherror();   $errorstring.=&tth::ttherror();
  $xmlstring=~s-</font(\s*)>-</font>-g;   $xmlstring=~s-</font(\s*)>-</font>-g;
Line 106  sub convert_real { Line 170  sub convert_real {
     $xmlstring=~s/^\s*\<br clear\=\"all\"/\<br/s;      $xmlstring=~s/^\s*\<br clear\=\"all\"/\<br/s;
     $xmlstring=~s/^\s*//;      $xmlstring=~s/^\s*//;
     $xmlstring=~s/\s*$//;      $xmlstring=~s/\s*$//;
       &Apache::lonxml::end_alarm();
   
     #      #
     # \rightleftharpoons is not converted by tth but maps      #  Several strings produced by tth require
     # reasonably well to &#8660;.  If we get many more of these,      # transliteration -> unicode equivalents to render reliably
     # we're going to need to have a translation sub.      # in browsers. %unicode_translations is a table of
     #      # string->substitution which we now apply:
     my $lrharpoon = pack("U", 0x21cc);  
     $xmlstring=~s/\\rightleftharpoons/$lrharpoon/g;      foreach my $pattern (keys(%unicode_translations)) {
    my $unicode = $unicode_translations{$pattern};
    $xmlstring = &unicode_subst($xmlstring, $pattern, $unicode);
       }
   
   
     &Apache::lonxml::end_alarm();  
     return ($xmlstring,$errorstring);      return ($xmlstring,$errorstring);
 }  }
   

Removed from v.1.109  
changed lines
  Added in v.1.111


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>