--- loncom/xml/londefdef.pm 2014/06/17 23:22:17 1.452 +++ loncom/xml/londefdef.pm 2015/03/09 19:05:33 1.456 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.452 2014/06/17 23:22:17 raeburn Exp $ +# $Id: londefdef.pm,v 1.456 2015/03/09 19:05:33 raeburn Exp $ # # # Copyright Michigan State University Board of Trustees @@ -1735,7 +1735,7 @@ sub start_a { } elsif ($env{'request.course.id'}) { my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; - if ($linkurl =~ m{^([^/]|/uploaded/$cdom/$cnum/docs/)}) { + if ($linkurl =~ m{^([^/]|/uploaded/$cdom/$cnum/(docs|supplemental)/)}) { my $cleanhref = &clean_docs_httpref($linkurl,$url,$cdom,$cnum); if ($cleanhref) { &Apache::lonxml::extlink($cleanhref); @@ -2753,7 +2753,9 @@ sub start_img { my $inside = &Apache::lonxml::get_all_text("/img",$parser,$style); return ''; } - &Apache::lonxml::extlink($src); + unless ($src =~ m{^data\:image/gif;base64,}) { + &Apache::lonxml::extlink($src); + } my $currentstring = ''; my $scaling = .3; @@ -2763,8 +2765,10 @@ sub start_img { my $enc = ('yes' eq lc(&Apache::lonxml::get_param('encrypturl',$parstack, $safeeval))); - $currentstring.=&Apache::lonenc::encrypt_ref($token,{'src'=>$src}, - $enc); + unless ($src =~ m{^data\:image/gif;base64,}) { + $currentstring.=&Apache::lonenc::encrypt_ref($token,{'src'=>$src}, + $enc); + } # and render unto TeX that which is LaTeX } elsif ($target eq 'tex') { @@ -2807,7 +2811,7 @@ sub start_img { # &Apache::lonxml::debug("LaTeX rendering = $latex_rendering image file: $src"); - #if original bmp/gif/jpg/png file exist do following: + #if original bmp/gif/jpg/png/svg file exist do following: my $origsrc=$src; my ($path,$file) = &get_eps_image($src); # &Apache::lonnet::logthis("Image source: $src result: $path $file"); @@ -3446,7 +3450,7 @@ sub start_caption { my $currentstring = ''; if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; - } + } return $currentstring; } @@ -3454,7 +3458,7 @@ sub end_caption { my ($target,$token) = @_; my $currentstring = ''; if ($target eq 'web' || $target eq 'webgrade') { - $currentstring = $token->[2]; + $currentstring = $token->[2]; } return $currentstring; } @@ -4321,8 +4325,8 @@ sub get_eps_image { &Apache::lonnet::repcopy($orig_src); # Failure is not completely fatal. } &Apache::lonxml::debug("get_eps_image: Original image: $orig_src"); - my ($spath, $sname, $sext) = &fileparse($src, qr/\.(bmp|gif|png|jpg|jpeg)/i); - $src=~s/\.(bmp|gif|png|jpg|jpeg)$/\.eps/i; + my ($spath, $sname, $sext) = &fileparse($src, qr/\.(bmp|gif|png|jpg|jpeg|svg)/i); + $src=~s/\.(bmp|gif|png|jpg|jpeg|svg)$/\.eps/i; $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); &Apache::lonxml::debug("Filelocation gives: $src"); if (! -e $src) { @@ -4608,7 +4612,7 @@ sub clean_docs_httpref { $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; } my $cleanhref; - if ($docuri =~ m{^(\Q/uploaded/$cdom/$cnum/docs/\E)(.+/)[^/]+$}) { + if ($docuri =~ m{^(\Q/uploaded/$cdom/$cnum/\E(?:docs|supplemental)/)(.+/)[^/]+$}) { my $prefix = $1; my $relpath = $2; my ($hrefpath,$fname); @@ -4761,7 +4765,8 @@ described at http://www.lon-capa.org. Output: returns an absolute URL constructed from the href provided, and the calling context. - (this will be null, if the URL does not begin: /uploaded/$cdom/$cnum/docs/). + (this will be null, if the URL does not begin: /uploaded/$cdom/$cnum/docs/ or + /uploaded/$cdom/$cnum/supplemental/). =back