--- loncom/xml/londefdef.pm 2005/12/01 18:46:17 1.299 +++ loncom/xml/londefdef.pm 2006/03/29 22:54:10 1.302.2.4 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.299 2005/12/01 18:46:17 albertel Exp $ +# $Id: londefdef.pm,v 1.302.2.4 2006/03/29 22:54:10 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -48,7 +48,7 @@ use Apache::lonmenu(); use Apache::lonmeta(); use Apache::Constants qw(:common); use File::Basename; -#use Data::Dumper; +# use Data::Dumper; BEGIN { @@ -71,7 +71,6 @@ BEGIN { # # } #} - sub initialize_londefdef { $Apache::londefdef::TD_redirection=0; @Apache::londefdef::table = (); @@ -147,7 +146,7 @@ sub end_m { sub start_tthoption { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_; my $result; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { my $inside = &Apache::lonxml::get_all_text("/tthoption",$parser, $style); $inside=~s/^\s*//; @@ -232,7 +231,7 @@ sub end_head { sub start_map { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -241,7 +240,7 @@ sub start_map { sub end_map { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -251,7 +250,7 @@ sub end_map { sub start_select { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $Apache::londefdef::select=0; @@ -262,7 +261,7 @@ sub start_select { sub end_select { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -272,7 +271,7 @@ sub end_select { sub start_option { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $Apache::londefdef::select++; @@ -288,7 +287,7 @@ sub start_option { sub end_option { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring='}'; @@ -300,7 +299,7 @@ sub end_option { sub start_input { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -309,7 +308,7 @@ sub start_input { sub end_input { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -319,7 +318,7 @@ sub end_input { sub start_textarea { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -328,7 +327,7 @@ sub start_textarea { sub end_textarea { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -338,7 +337,7 @@ sub end_textarea { sub start_form { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -347,7 +346,7 @@ sub start_form { sub end_form { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -388,7 +387,7 @@ sub end_title { sub start_meta { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { my $args=''; if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } if ($args eq '') { @@ -437,7 +436,7 @@ sub start_meta { sub end_meta { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { my $args=''; if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } if ($args ne '') { @@ -595,25 +594,34 @@ sub end_body { return $currentstring; } +# \begin{center} causes a new paragprah spacing that looks odd inside +# of a table cell +sub center_correction { return '\vspace*{-6 mm}'; } #--
tag (end tag required) sub start_center { - my ($target,$token) = @_; + my ($target,$token,$tagstack) = @_; my $currentstring = &end_p(); # Close off any prior para. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { + if (&is_inside_of($tagstack, "table")) { + $currentstring .= ¢er_correction(); + } $currentstring .= '\begin{center}'; } return $currentstring; } sub end_center { - my ($target,$token) = @_; + my ($target,$token,$tagstack) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring = '\end{center}'; + if (&is_inside_of($tagstack, "table")) { + #$currentstring .= ¢er_correction(); + } } return $currentstring; } @@ -623,7 +631,7 @@ sub end_center { sub start_b { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { &disable_para(); @@ -635,7 +643,7 @@ sub start_b { sub end_b { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { &enable_para(); @@ -649,7 +657,7 @@ sub end_b { sub start_strong { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { &disable_para(); @@ -661,7 +669,7 @@ sub start_strong { sub end_strong { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { &enable_para(); @@ -674,7 +682,7 @@ sub end_strong { sub start_h1 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close off any prior para. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $pre; @@ -699,7 +707,7 @@ sub start_h1 { sub end_h1 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { my $post='\vskip 0 mm '; @@ -723,7 +731,7 @@ sub end_h1 { sub start_h2 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close off any prior para. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $pre; @@ -745,7 +753,7 @@ sub start_h2 { sub end_h2 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { my $post='\vskip 0 mm '; @@ -766,7 +774,7 @@ sub end_h2 { sub start_h3 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close off any prior para. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $pre; @@ -788,7 +796,7 @@ sub start_h3 { sub end_h3 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { my $post='\vskip 0 mm '; @@ -809,7 +817,7 @@ sub end_h3 { sub start_h4 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close off any prior para. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $pre; @@ -831,7 +839,7 @@ sub start_h4 { sub end_h4 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { my $post='\vskip 0 mm '; @@ -852,7 +860,7 @@ sub end_h4 { sub start_h5 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close off any prior paras. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $pre; @@ -874,7 +882,7 @@ sub start_h5 { sub end_h5 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { my $post='\vskip 0 mm '; @@ -895,7 +903,7 @@ sub end_h5 { sub start_h6 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close off any prior paras. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $pre; @@ -917,7 +925,7 @@ sub start_h6 { sub end_h6 { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { my $post='\vskip 0 mm '; @@ -938,7 +946,7 @@ sub end_h6 { sub start_cite { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\textit{'; @@ -949,7 +957,7 @@ sub start_cite { sub end_cite { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -961,7 +969,7 @@ sub end_cite { sub start_i { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\textit{'; @@ -972,7 +980,7 @@ sub start_i { sub end_i { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -984,7 +992,7 @@ sub end_i { sub start_address { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\textit{'; @@ -995,7 +1003,7 @@ sub start_address { sub end_address { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1007,7 +1015,7 @@ sub end_address { sub start_dfn { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\textit{'; @@ -1018,7 +1026,7 @@ sub start_dfn { sub end_dfn { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1030,7 +1038,7 @@ sub end_dfn { sub start_tt { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\texttt{'; @@ -1041,7 +1049,7 @@ sub start_tt { sub end_tt { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1053,7 +1061,7 @@ sub end_tt { sub start_kbd { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\texttt{'; @@ -1064,7 +1072,7 @@ sub start_kbd { sub end_kbd { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1076,7 +1084,7 @@ sub end_kbd { sub start_code { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\texttt{'; @@ -1087,7 +1095,7 @@ sub start_code { sub end_code { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1099,7 +1107,7 @@ sub end_code { sub start_em { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\emph{'; @@ -1110,7 +1118,7 @@ sub start_em { sub end_em { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1122,7 +1130,7 @@ sub end_em { sub start_q { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\emph{'; @@ -1133,7 +1141,7 @@ sub start_q { sub end_q { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1172,7 +1180,7 @@ sub enable_para { sub start_p { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= &end_p(); # close off prior para if in progress. $currentstring .= $token->[4]; if (! ($currentstring =~ /\//)) { @@ -1184,6 +1192,10 @@ sub start_p { if ($align eq 'center') { $currentstring .='\begin{center}\par'; $closing_string = '\end{center}'; + if (&is_inside_of($tagstack, "table")) { + $currentstring = ¢er_correction().$currentstring; + #$closing_string .= ¢er_correction(); + } } elsif ($align eq 'right') { $currentstring.='\makebox['.$env{'form.textwidth'}.']{\hfill\llap{'; $closing_string= '}}'; @@ -1219,7 +1231,7 @@ sub end_p { sub start_br { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my @tempo=@$tagstack; @@ -1247,7 +1259,7 @@ sub start_br { sub end_br { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } return $currentstring; @@ -1257,7 +1269,7 @@ sub end_br { sub start_big { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '{\large '; @@ -1268,7 +1280,7 @@ sub start_big { sub end_big { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1280,7 +1292,7 @@ sub end_big { sub start_small { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '{\footnotesize '; @@ -1291,7 +1303,7 @@ sub start_small { sub end_small { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}'; @@ -1303,7 +1315,7 @@ sub end_small { sub start_basefont { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { my $basesize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); @@ -1317,7 +1329,7 @@ sub start_basefont { sub end_basefont { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { my $basesize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); @@ -1332,7 +1344,7 @@ sub end_basefont { sub start_font { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { my $face=&Apache::lonxml::get_param('face',$parstack,$safeeval); if ($face!~/symbol/i) { if (($env{'browser.fontenhance'} eq 'on') || @@ -1351,7 +1363,7 @@ sub start_font { sub end_font { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { my $fontsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); @@ -1366,7 +1378,7 @@ sub end_font { sub start_strike { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { &Apache::lonxml::startredirection(); @@ -1377,7 +1389,7 @@ sub start_strike { sub end_strike { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring=&Apache::lonxml::endredirection(); @@ -1392,7 +1404,7 @@ sub end_strike { sub start_s { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { &Apache::lonxml::startredirection(); @@ -1403,7 +1415,7 @@ sub start_s { sub end_s { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring=&Apache::lonxml::endredirection(); @@ -1418,7 +1430,7 @@ sub end_s { sub start_sub { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\ensuremath{_{'; @@ -1429,7 +1441,7 @@ sub start_sub { sub end_sub { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}}'; @@ -1441,7 +1453,7 @@ sub end_sub { sub start_sup { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\ensuremath{^{'; @@ -1452,7 +1464,7 @@ sub start_sup { sub end_sup { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '}}'; @@ -1464,7 +1476,7 @@ sub end_sup { sub start_hr { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # End enclosing para. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $LaTeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0); @@ -1494,7 +1506,7 @@ sub start_hr { sub end_hr { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } return $currentstring; @@ -1512,7 +1524,7 @@ sub end_hr { sub start_div { my ($target,$token, $tagstack, $parstack, $parser, $safeeval) = @_; my $currentstring = &end_p(); # Close enclosing para. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } if ($target eq 'tex') { @@ -1525,6 +1537,10 @@ sub start_div { if ($align eq 'center') { $currentstring .= '\begin{center}'; $endstring = '\end{center}'; + if (&is_inside_of($tagstack, "table")) { + $currentstring = ¢er_correction().$currentstring; + #$endstring .= ¢er_correction(); + } } elsif ($align eq 'right') { $currentstring .= '\begin{flushright}'; @@ -1545,7 +1561,7 @@ sub start_div { sub end_div { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } if ($target eq 'tex') { @@ -1560,7 +1576,7 @@ sub end_div { sub start_a { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { my $href=&Apache::lonxml::get_param('href',$parstack,$safeeval, undef,1); $currentstring=&Apache::lonenc::encrypt_ref($token,{'href'=>$href}); @@ -1582,7 +1598,7 @@ sub start_a { sub end_a { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } return $currentstring; @@ -1592,7 +1608,7 @@ sub end_a { sub start_li { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); @@ -1623,7 +1639,7 @@ sub start_li { sub end_li { my ($target,$token) = @_; my $currentstring = &end_p(); # In case there's a

in the

  • - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } return $currentstring; @@ -1633,7 +1649,7 @@ sub end_li { sub start_u { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { &Apache::lonxml::startredirection(); @@ -1644,7 +1660,7 @@ sub start_u { sub end_u { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring=&Apache::lonxml::endredirection(); @@ -1659,7 +1675,7 @@ sub end_u { sub start_ul { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close off enclosing list. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $TeXtype=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); @@ -1688,7 +1704,7 @@ sub start_ul { sub end_ul { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring = '\end{itemize} \renewcommand{\labelitemi}{$\bullet$}'. @@ -1703,7 +1719,7 @@ sub end_ul { sub start_menu { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $currentstring = " \\begin{itemize} "; @@ -1714,7 +1730,7 @@ sub start_menu { sub end_menu { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring = " \\end{itemize}"; @@ -1726,7 +1742,7 @@ sub end_menu { sub start_dir { my ($target,$token) = @_; my $currentstring = &end_p(); # In case there's a

    prior to the list. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= " \\begin{itemize} "; @@ -1737,7 +1753,7 @@ sub start_dir { sub end_dir { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring = " \\end{itemize}"; @@ -1749,7 +1765,7 @@ sub end_dir { sub start_ol { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # In case there's a

    prior to the list. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $Apache::londefdef::list_index=0; @@ -1788,7 +1804,7 @@ sub start_ol { sub end_ol { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring = '\end{enumerate}\renewcommand{\labelenumi}{\arabic{enumi}.}'. @@ -1803,7 +1819,7 @@ sub end_ol { sub start_dl { my ($target,$token) = @_; my $currentstring = &end_p(); # In case there's a

    unclosed prior to the list. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\begin{description}'; @@ -1819,7 +1835,7 @@ sub start_dl { sub end_dl { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } @@ -1841,7 +1857,7 @@ sub end_dl { sub start_dt { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring=''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } @@ -1856,7 +1872,7 @@ sub start_dt { sub end_dt { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { if ($Apache::londefdef::DT[-1]) { @@ -1879,7 +1895,7 @@ sub item_cleanup { sub start_dd { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } @@ -1898,7 +1914,7 @@ sub start_dd { sub end_dd { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $Apache::londefdef::description[-1]->[-1].= @@ -1919,7 +1935,7 @@ sub start_table { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $textwidth = ''; my $currentstring = &end_p(); - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { my $aa = {}; @@ -1945,11 +1961,16 @@ sub start_table { # width either comes forced from the TeXwidth or the width parameters. # in either case it can be a percentage or absolute width. - + # in the width case we ignore absolute width my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0); - if (not defined $TeXwidth) { - $TeXwidth = &Apache::lonxml::get_param('width',$parstack,$safeeval,undef,1); - + if (!defined($TeXwidth)) { + my $htmlwidth = &Apache::lonxml::get_param('width',$parstack, + $safeeval,undef,1); + if ($htmlwidth =~ /%/) { + $TeXwidth = $htmlwidth; + } else { + $TeXwidth = $textwidth; + } } else { $Apache::londefdef::table[-1]{'forcedtablewidth'} = 1; } @@ -1997,7 +2018,7 @@ sub start_table { sub end_table { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { my $inmemory = ''; @@ -2189,15 +2210,13 @@ sub end_table { for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) { for (my $jn=0;$jn<=$#fwidth;$jn++) { if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { - # $output.='\vspace*{-6 mm}\begin{center}'; - $output.='\begin{center}'; + $output.=¢er_correction().'\begin{center}'; } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { $output.=' \hfill \llap{' } $output.=$Apache::londefdef::table[-1]{'content'}[$in][$jn]; if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { - # $output.='\end{center}\vspace*{-6 mm}'; - $output.='\end{center}'; + $output.='\end{center}';#.¢er_correction(); } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { $output.='} '; } @@ -2218,9 +2237,9 @@ sub end_table { my $min_nested_width = 0; my $max_nested_width = 0; for (my $col = 0; $col <= $Apache::londefdef::table[-1]{'counter_columns'}; $col++) { - $min_nested_width += $min_len[$col]; $max_nested_width += $max_len[$col]; + } # Fudge in an extra 5 mm for borders etc: @@ -2251,7 +2270,7 @@ sub end_table { sub start_tr { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $Apache::londefdef::table[-1]{'row_number'}++; @@ -2262,6 +2281,10 @@ sub start_tr { push @ {$Apache::londefdef::table[-1]{'rows'} }, 'l'; } push ( @{ $Apache::londefdef::table[-1]{'rowdata'} }, $Apache::londefdef::table[-1]{'hinc'}); + # + # Need to save the number of table columns to preserve the max # columns. + # + $Apache::londefdef::table[-1]{'prior_columns'} = $Apache::londefdef::table[-1]{'counter_columns'}; $Apache::londefdef::table[-1]{'counter_columns'} = -1; push @ {$Apache::londefdef::table[-1]{'TeXlen'}}, []; push @ {$Apache::londefdef::table[-1]{'objectlen'}}, []; @@ -2275,12 +2298,17 @@ sub start_tr { sub end_tr { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close any pending

    in the row. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { if ($Apache::londefdef::TD_redirection) { &end_td_tex($parstack,$parser,$safeeval); } + # Counter columns must be the maximum number of columns seen + # in the table so far so: + if ($Apache::londefdef::table[-1]{'prior_columns'} > $Apache::londefdef::table[-1]{'counter_columns'}) { + $Apache::londefdef::table[-1]{'counter_columns'} = $Apache::londefdef::table[-1]{'prior_columns'}; + } @@ -2292,7 +2320,7 @@ sub end_tr { sub start_td { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $Apache::londefdef::TD_redirection = 1; @@ -2416,22 +2444,26 @@ sub end_td_tex { push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$min_length; } } - for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) { - my $nested = $Apache::londefdef::table[-1]{'include'}[$in]; - &Apache::lonnet::logthis("Nested: $nested"); - $nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/; - &Apache::lonnet::logthis("After sub: $nested"); - # $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/; - $data =~ s/\\keephidden\{NEW TABLE ENTRY\}/$nested/; - } + # Substitute all of the tables nested in this cell in their appropriate places. + + + my $nested_count = $#{$Apache::londefdef::table[-1]{'include'}}; # This one is constant... + for (my $in=0; $in<=$nested_count; $in++) { + my $nested = shift @{$Apache::londefdef::table[-1]{'include'}}; + $nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/; + # $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/; + $data =~ s/\\keephidden\{NEW TABLE ENTRY\}/$nested/; + + } + # Should be be killing off the 'include' elements as they're used up? push @ {$Apache::londefdef::table[-1]{'content'}[-1] },$data; - return''; + return ''; } sub end_td { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $Apache::londefdef::TD_redirection =0; @@ -2444,7 +2476,7 @@ sub end_td { sub start_th { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $Apache::londefdef::TD_redirection = 1; @@ -2560,7 +2592,7 @@ sub end_th_tex { sub end_th { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # Close any open

    in the row. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $Apache::londefdef::TD_redirection =0; @@ -2584,7 +2616,9 @@ sub start_img { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_; my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval, undef,1); - if (not $src and ($target eq 'web' or $target eq 'tex')) { + if (! $src && + ($target eq 'web' || $target eq 'webgrade' || $target eq 'tex') + ) { my $inside = &Apache::lonxml::get_all_text("/img",$parser,$style); return ''; } @@ -2594,7 +2628,7 @@ sub start_img { # Render unto browsers that which are the browser's... - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { if ($env{'browser.imagesuppress'} ne 'on') { $currentstring.=&Apache::lonenc::encrypt_ref($token,{'src'=>$src}); } else { @@ -2621,8 +2655,9 @@ sub start_img { $safeeval, undef,1)); if(!$align) { + # disabled for now see BUG#4535 if (&is_inside_of($tagstack, "table")) { - $align = "right"; # Force wraptext use. + $align = "top"; # Force top of image to top of table cell } else { $align = "bottom"; # This is html's default so it's ours too. } @@ -2785,7 +2820,7 @@ sub start_img { sub end_img { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring = ''; @@ -2803,7 +2838,7 @@ sub start_applet { undef,1); &Apache::lonxml::extlink($archive); my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { if ($env{'browser.appletsuppress'} ne 'on') { $currentstring = &Apache::lonenc::encrypt_ref($token, {'code'=>$code, @@ -2836,7 +2871,7 @@ sub start_applet { sub end_applet { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { } @@ -2849,7 +2884,7 @@ sub start_embed { my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1); &Apache::lonxml::extlink($src); my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { if ($env{'browser.embedsuppress'} ne 'on') { $currentstring=&Apache::lonenc::encrypt_ref($token,{'src'=>$src}); } else { @@ -2868,7 +2903,7 @@ sub start_embed { sub end_embed { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { } @@ -2888,7 +2923,7 @@ sub start_param { my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1); &Apache::lonxml::extlink($src); my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { my %toconvert; my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1); if ($src) { $toconvert{'src'}= $src; } @@ -2907,7 +2942,7 @@ sub start_param { sub end_param { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { } @@ -2945,7 +2980,7 @@ sub end_allow { sub start_frameset { my ($target,$token) = @_; my $currentstring = ''; # Close any pending para. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { if (!$Apache::lonxml::registered && $env{'request.state'} eq 'published') { $currentstring.=''. @@ -2981,7 +3016,7 @@ sub start_frameset { sub end_frameset { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -2991,7 +3026,7 @@ sub end_frameset { sub start_xmp { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\begin{verbatim}'; @@ -3002,7 +3037,7 @@ sub start_xmp { sub end_xmp { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '\end{verbatim}'; @@ -3014,7 +3049,7 @@ sub end_xmp { sub start_pre { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = &end_p(); # close off pending

    - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\begin{verbatim}'; @@ -3025,7 +3060,7 @@ sub start_pre { sub end_pre { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '\end{verbatim}'; @@ -3037,7 +3072,7 @@ sub end_pre { sub start_insert { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval,undef,1); $currentstring .= ''.$display.'';; } @@ -3047,7 +3082,7 @@ sub start_insert { sub end_insert { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= ''; } return $currentstring; @@ -3057,7 +3092,7 @@ sub end_insert { sub start_externallink { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval,undef,1); $currentstring .= ''.$display.'';; } @@ -3067,7 +3102,7 @@ sub start_externallink { sub end_externallink { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= ''; } return $currentstring; @@ -3097,7 +3132,7 @@ sub end_blankspace { sub start_abbr { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3106,7 +3141,7 @@ sub start_abbr { sub end_abbr { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3116,7 +3151,7 @@ sub end_abbr { sub start_acronym { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3125,7 +3160,7 @@ sub start_acronym { sub end_acronym { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3135,7 +3170,7 @@ sub end_acronym { sub start_area { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3144,7 +3179,7 @@ sub start_area { sub end_area { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3154,7 +3189,7 @@ sub end_area { sub start_base { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3163,7 +3198,7 @@ sub start_base { sub end_base { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3173,7 +3208,7 @@ sub end_base { sub start_bdo { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3182,7 +3217,7 @@ sub start_bdo { sub end_bdo { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3192,7 +3227,7 @@ sub end_bdo { sub start_bgsound { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3201,7 +3236,7 @@ sub start_bgsound { sub end_bgsound { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3211,7 +3246,7 @@ sub end_bgsound { sub start_blink { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3220,7 +3255,7 @@ sub start_blink { sub end_blink { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3230,7 +3265,7 @@ sub end_blink { sub start_blockquote { my ($target,$token) = @_; my $currentstring = &end_p(); # Close any unclosed

    - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } return $currentstring; @@ -3239,7 +3274,7 @@ sub start_blockquote { sub end_blockquote { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3249,7 +3284,7 @@ sub end_blockquote { sub start_button { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3258,7 +3293,7 @@ sub start_button { sub end_button { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3268,7 +3303,7 @@ sub end_button { sub start_caption { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3277,7 +3312,7 @@ sub start_caption { sub end_caption { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3287,7 +3322,7 @@ sub end_caption { sub start_col { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3296,7 +3331,7 @@ sub start_col { sub end_col { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3306,7 +3341,7 @@ sub end_col { sub start_colgroup { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3315,7 +3350,7 @@ sub start_colgroup { sub end_colgroup { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3325,7 +3360,7 @@ sub end_colgroup { sub start_del { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3334,7 +3369,7 @@ sub start_del { sub end_del { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3344,7 +3379,7 @@ sub end_del { sub start_fieldset { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3353,7 +3388,7 @@ sub start_fieldset { sub end_fieldset { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3363,7 +3398,7 @@ sub end_fieldset { sub start_frame { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3372,7 +3407,7 @@ sub start_frame { sub end_frame { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3382,7 +3417,7 @@ sub end_frame { sub start_iframe { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3391,7 +3426,7 @@ sub start_iframe { sub end_iframe { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3401,7 +3436,7 @@ sub end_iframe { sub start_ins { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3410,7 +3445,7 @@ sub start_ins { sub end_ins { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3420,7 +3455,7 @@ sub end_ins { sub start_isindex { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3429,7 +3464,7 @@ sub start_isindex { sub end_isindex { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3439,7 +3474,7 @@ sub end_isindex { sub start_keygen { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3448,7 +3483,7 @@ sub start_keygen { sub end_keygen { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3458,7 +3493,7 @@ sub end_keygen { sub start_label { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3467,7 +3502,7 @@ sub start_label { sub end_label { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3477,7 +3512,7 @@ sub end_label { sub start_layer { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3486,7 +3521,7 @@ sub start_layer { sub end_layer { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3496,7 +3531,7 @@ sub end_layer { sub start_legend { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3505,7 +3540,7 @@ sub start_legend { sub end_legend { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3527,7 +3562,7 @@ sub start_link { sub end_link { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3537,7 +3572,7 @@ sub end_link { sub start_marquee { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3546,7 +3581,7 @@ sub start_marquee { sub end_marquee { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3556,7 +3591,7 @@ sub end_marquee { sub start_multicol { my ($target,$token) = @_; my $currentstring = &end_p(); # Close any pending

    - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } return $currentstring; @@ -3565,7 +3600,7 @@ sub start_multicol { sub end_multicol { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3575,7 +3610,7 @@ sub end_multicol { sub start_nobr { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $currentstring='\mbox{'; @@ -3586,7 +3621,7 @@ sub start_nobr { sub end_nobr { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring='}'; @@ -3598,7 +3633,7 @@ sub end_nobr { sub start_noembed { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3607,7 +3642,7 @@ sub start_noembed { sub end_noembed { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3617,7 +3652,7 @@ sub end_noembed { sub start_noframes { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3626,7 +3661,7 @@ sub start_noframes { sub end_noframes { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3636,7 +3671,7 @@ sub end_noframes { sub start_nolayer { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3645,7 +3680,7 @@ sub start_nolayer { sub end_nolayer { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3655,7 +3690,7 @@ sub end_nolayer { sub start_noscript { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3664,7 +3699,7 @@ sub start_noscript { sub end_noscript { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3674,7 +3709,7 @@ sub end_noscript { sub start_object { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3683,7 +3718,7 @@ sub start_object { sub end_object { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3693,7 +3728,7 @@ sub end_object { sub start_optgroup { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3702,7 +3737,7 @@ sub start_optgroup { sub end_optgroup { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3712,7 +3747,7 @@ sub end_optgroup { sub start_samp { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $currentstring='\texttt{'; @@ -3723,7 +3758,7 @@ sub start_samp { sub end_samp { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring='}'; @@ -3735,7 +3770,7 @@ sub end_samp { sub start_server { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3744,7 +3779,7 @@ sub start_server { sub end_server { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3754,7 +3789,7 @@ sub end_server { sub start_spacer { my ($target,$token) = @_; my $currentstring = &end_p(); # Close off any open

    tag. - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring .= $token->[4]; } return $currentstring; @@ -3763,7 +3798,7 @@ sub start_spacer { sub end_spacer { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3773,7 +3808,7 @@ sub end_spacer { sub start_span { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3782,7 +3817,7 @@ sub start_span { sub end_span { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3792,7 +3827,7 @@ sub end_span { sub start_tbody { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3801,7 +3836,7 @@ sub start_tbody { sub end_tbody { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3811,7 +3846,7 @@ sub end_tbody { sub start_tfoot { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3820,7 +3855,7 @@ sub start_tfoot { sub end_tfoot { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3830,7 +3865,7 @@ sub end_tfoot { sub start_thead { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3839,7 +3874,7 @@ sub start_thead { sub end_thead { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3849,7 +3884,7 @@ sub end_thead { sub start_var { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $currentstring = '\textit{'; @@ -3860,7 +3895,7 @@ sub start_var { sub end_var { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { $currentstring = '}'; @@ -3872,7 +3907,7 @@ sub end_var { sub start_wbr { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[4]; } return $currentstring; @@ -3881,7 +3916,7 @@ sub start_wbr { sub end_wbr { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = $token->[2]; } return $currentstring; @@ -3890,7 +3925,7 @@ sub end_wbr { #-- tag sub start_hideweboutput { my ($target,$token) = @_; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { &Apache::lonxml::startredirection(); } return ''; @@ -3899,7 +3934,7 @@ sub start_hideweboutput { sub end_hideweboutput { my ($target,$token) = @_; my $currentstring = ''; - if ($target eq 'web') { + if ($target eq 'web' || $target eq 'webgrade') { $currentstring = &Apache::lonxml::endredirection(); } return '';