--- loncom/interface/lonhtmlgateway.pm 2010/04/27 20:29:25 1.3 +++ loncom/interface/lonhtmlgateway.pm 2010/05/24 23:47:22 1.5 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # gateway for html input/output to be properly parsed and handled # -# $Id: lonhtmlgateway.pm,v 1.3 2010/04/27 20:29:25 faziophi Exp $ +# $Id: lonhtmlgateway.pm,v 1.5 2010/05/24 23:47:22 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -548,7 +548,9 @@ sub process_outgoing_html { if ($self->{target} ne 'tex') { $output .= &Apache::lontexconvert::smiley($token->[1]); } else { - $output .= $token->[1]; + my $t = $token->[1]; + $t =~ s/([^\n\r\t &<>!\#%\(-;=?-~])/num_entity($1)/ge; + $output .= $t; } } elsif ($token->[0] eq 'D' || $token->[0] eq 'C') { $output .= $token->[1]; @@ -565,7 +567,6 @@ sub process_outgoing_html { } } } - return $output; } @@ -637,6 +638,10 @@ sub get_block_level_tags { return \@block; } +sub num_entity { + sprintf "&#x%X;", ord($_[0]); +} + ############################################## ############################################## @@ -716,7 +721,8 @@ sub parse_algebra_tag { # decoding it first. we also just get the tex, and # feed it through as if it were an tag. $input = &HTML::Entities::decode($input); - my $algebra = &Apache::lontexconvert::algebra($input, 'tth', 'tex'); + my $algebra = + &Apache::lontexconvert::algebra($input,'tex',undef,undef,undef,'tth'); return &parse_m_tag($self, $algebra); } @@ -735,7 +741,11 @@ sub parse_md_tag { sub parse_m_tag { my $self = shift; my $input = shift; - return &Apache::lontexconvert::to_convert($input, $self->{target}); + if ($self->{target} ne 'tex') { + return &Apache::lontexconvert::to_convert($input, $self->{target}); + } else { + return ''.$input.''; + } } sub parse_chem_tag { @@ -806,7 +816,7 @@ Phil Fazio =head1 VERSION -$Id: lonhtmlgateway.pm,v 1.3 2010/04/27 20:29:25 faziophi Exp $ +$Id: lonhtmlgateway.pm,v 1.5 2010/05/24 23:47:22 raeburn Exp $ =cut