File:  [LON-CAPA] / loncom / xml / londefdef.pm
Revision 1.27: download - view: text, annotated - select for diffs
Tue Mar 27 18:19:29 2001 UTC (23 years, 1 month ago) by albertel
Branches: MAIN
CVS tags: HEAD
- stupid screwups

    1: # The LearningOnline Network with CAPA
    2: # Tags Default Definition Module 
    3: #
    4: # last modified 06/26/00 by Alexander Sakharuk
    5: # 11/6,11/30,02/01/01 Gerd Kortemeyer
    6: 
    7: package Apache::londefdef; 
    8: 
    9: use strict;
   10: use Apache::lonxml;
   11: 
   12: sub BEGIN {
   13: 
   14:     &Apache::lonxml::register('Apache::londefdef',('m','html','head','map','select','option','input','textarea','form','meta','title','body','center','b','strong','table','dt','h1','h2','h3','h4','h5','h6','cite','i','address','dd','dl','dir','ol','ul','menu','dfn','kbd','tt','code','em','q','p','br','big','small','basefont','font','s','sub','strike','sup','hr','a','li','u','output','param','applet','img','embed','tr','td','allow'));
   15: 
   16: }
   17: 
   18: #===================================================================== TAG SUBROUTINES
   19: #-- <output>
   20: sub start_output {
   21:   my ($target) = @_;
   22:   if ($target eq 'meta') { $Apache::lonxml::metamode--; }
   23:   return '';
   24: }
   25: sub end_output {
   26:   my ($target) = @_;
   27:   if ($target eq 'meta') { $Apache::lonxml::metamode++; }
   28:   return '';
   29: }
   30: #-- <m> tag
   31:         sub start_m {
   32: 	    my ($target,$token,$parstack,$parser) = @_;
   33:             my $currentstring = '';
   34:             if ($target eq 'web') {
   35: 		my $inside = &Apache::lonxml::get_all_text("/m",$$parser[$#$parser]); 
   36:                 $inside ='\\documentstyle{article}'.$inside;
   37: #          &Apache::lonxml::debug($inside);
   38:                 $currentstring = &Apache::lontexconvert::converted(\$inside);
   39: #          &Apache::lonxml::debug($currentstring);
   40: 
   41: 	    } elsif ($target eq 'tex') {
   42:               $currentstring = "";
   43:             }
   44: 	   return $currentstring;
   45: 	}
   46:         sub end_m {
   47: 	    my ($target,$token) = @_;
   48:             my $currentstring = '';
   49:             if ($target eq 'web') {
   50:             } elsif ($target eq 'tex') {
   51:               $currentstring = "";
   52: 	    } elsif ($target eq 'meta') {
   53:             }
   54: 	   return $currentstring;
   55: 	}
   56: #-------------------------------------------------------------------------- <html> tag    
   57:       sub start_html {
   58: 	    my ($target,$token) = @_;
   59:             my $currentstring = '';
   60:             if ($target eq 'web') {
   61:               $currentstring = $token->[4];     
   62: 	    } 
   63: 	   return $currentstring;
   64: 	}
   65:         sub end_html {
   66: 	    my ($target,$token) = @_;
   67:             my $currentstring = '';
   68:             if ($target eq 'web') {
   69:               $currentstring = $token->[2];    
   70:             } 
   71: 	   return $currentstring;
   72: 	}
   73: #-------------------------------------------------------------------------- <head> tag
   74:       sub start_head {
   75: 	    my ($target,$token) = @_;
   76:             my $currentstring = '';
   77:             if ($target eq 'web') {
   78:               $currentstring = $token->[4];     
   79: 	    } 
   80: 	   return $currentstring;
   81: 	}
   82:         sub end_head {
   83: 	    my ($target,$token) = @_;
   84:             my $currentstring = '';
   85:             if ($target eq 'web') {
   86:               $currentstring = $token->[2];    
   87:             } 
   88: 	   return $currentstring;
   89: 	}
   90: #--------------------------------------------------------------------------- <map> tag
   91:       sub start_map {
   92: 	    my ($target,$token) = @_;
   93:             my $currentstring = '';
   94:             if ($target eq 'web') {
   95:               $currentstring = $token->[4];     
   96: 	    } 
   97: 	   return $currentstring;
   98: 	}
   99:         sub end_map {
  100: 	    my ($target,$token) = @_;
  101:             my $currentstring = '';
  102:             if ($target eq 'web') {
  103:               $currentstring = $token->[2];    
  104:             } 
  105: 	   return $currentstring;
  106: 	}
  107: 
  108: #------------------------------------------------------------------------ <select> tag
  109:       sub start_select {
  110: 	    my ($target,$token) = @_;
  111:             my $currentstring = '';
  112:             if ($target eq 'web') {
  113:               $currentstring = $token->[4];     
  114: 	    } 
  115: 	   return $currentstring;
  116: 	}
  117:         sub end_select {
  118: 	    my ($target,$token) = @_;
  119:             my $currentstring = '';
  120:             if ($target eq 'web') {
  121:               $currentstring = $token->[2];    
  122:             } 
  123: 	   return $currentstring;
  124: 	}
  125: #------------------------------------------------------------------------ <option> tag
  126:       sub start_option {
  127: 	    my ($target,$token) = @_;
  128:             my $currentstring = '';
  129:             if ($target eq 'web') {
  130:               $currentstring = $token->[4];     
  131: 	    } 
  132: 	   return $currentstring;
  133: 	}
  134:         sub end_option {
  135: 	    my ($target,$token) = @_;
  136:             my $currentstring = '';
  137:             if ($target eq 'web') {
  138:               $currentstring = $token->[2];    
  139:             } 
  140: 	   return $currentstring;
  141: 	}
  142: #------------------------------------------------------------------------- <input> tag
  143:       sub start_input {
  144: 	    my ($target,$token) = @_;
  145:             my $currentstring = '';
  146:             if ($target eq 'web') {
  147:               $currentstring = $token->[4];     
  148: 	    } 
  149: 	   return $currentstring;
  150: 	}
  151:         sub end_input {
  152: 	    my ($target,$token) = @_;
  153:             my $currentstring = '';
  154:             if ($target eq 'web') {
  155:               $currentstring = $token->[2];    
  156:             } 
  157: 	   return $currentstring;
  158: 	}
  159: #---------------------------------------------------------------------- <textarea> tag
  160:       sub start_textarea {
  161: 	    my ($target,$token) = @_;
  162:             my $currentstring = '';
  163:             if ($target eq 'web') {
  164:               $currentstring = $token->[4];     
  165: 	    } 
  166: 	   return $currentstring;
  167: 	}
  168:         sub end_textarea {
  169: 	    my ($target,$token) = @_;
  170:             my $currentstring = '';
  171:             if ($target eq 'web') {
  172:               $currentstring = $token->[2];    
  173:             } 
  174: 	   return $currentstring;
  175: 	}
  176: #-------------------------------------------------------------------------- <form> tag
  177:       sub start_form {
  178: 	    my ($target,$token) = @_;
  179:             my $currentstring = '';
  180:             if ($target eq 'web') {
  181:               $currentstring = $token->[4];     
  182: 	    } 
  183: 	   return $currentstring;
  184: 	}
  185:         sub end_form {
  186: 	    my ($target,$token) = @_;
  187:             my $currentstring = '';
  188:             if ($target eq 'web') {
  189:               $currentstring = $token->[2];    
  190:             } 
  191: 	   return $currentstring;
  192: 	}
  193: #------------------------------------------------------------------------- <title> tag
  194:       sub start_title {
  195: 	    my ($target,$token) = @_;
  196:             my $currentstring = '';
  197:             if ($target eq 'web') {
  198:               $currentstring = $token->[4];     
  199: 	    }
  200:             if ($target eq 'meta') {
  201: 		$currentstring='<title>';
  202:                 &start_output();
  203:             }
  204: 	   return $currentstring;
  205: 	}
  206:         sub end_title {
  207: 	    my ($target,$token) = @_;
  208:             my $currentstring = '';
  209:             if ($target eq 'web') {
  210:               $currentstring = $token->[2];    
  211:             }
  212:             if ($target eq 'meta') {
  213:                &end_output();
  214:                $currentstring='</title>';
  215:             } 
  216: 	   return $currentstring;
  217: 	}
  218: #-------------------------------------------------------------------------- <meta> tag
  219:       sub start_meta {
  220: 	    my ($target,$token,$parstack,$parser) = @_;
  221:             my $currentstring = '';
  222:             if ($target eq 'web') {
  223: 	      my $args='';
  224: 	      if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; }
  225: 	      if ($args eq '') {
  226: 		&Apache::lonxml::get_all_text("/meta",$$parser[$#$parser]);
  227: 	      } else {
  228: 		$currentstring = $token->[4];
  229: 	      }
  230: 	    }
  231:             if ($target eq 'meta') {
  232: 		unless ($token->[2]->{'http-equiv'}) {
  233: 		    my $name=$token->[2]->{'name'};
  234:                     $name=~tr/A-Z/a-z/;
  235:                     $name=~s/\s/\_/g;
  236:                     if ($name) {
  237:                        $currentstring='<'.$name.'>'.
  238:                                          $token->[2]->{'content'}.
  239: 			              '</'.$name.'>';
  240: 		    }
  241:                 }
  242: 	    }
  243: 	   return $currentstring;
  244: 	}
  245:       sub end_meta {
  246: 	my ($target,$token,$parstack,$parser) = @_;
  247: 	my $currentstring = '';
  248: 	if ($target eq 'web') {
  249: 	  my $args='';
  250: 	  if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; }
  251: 	  if ($args ne '') {
  252: 	    $currentstring = $token->[4];
  253: 	  }
  254: 	} 
  255: 	return $currentstring;
  256:       }
  257: #-------------------------------------------------------------------------- <body> tag
  258:         sub start_body {
  259: 	    my ($target,$token) = @_;
  260:             my $currentstring = '';
  261:             if ($target eq 'web') {
  262: 	      $currentstring = $token->[4];     
  263: 	    } elsif ($target eq 'tex') {
  264:               $currentstring = " \\begin{document} ";  
  265: 	    } 
  266: 	   return $currentstring;
  267: 	}
  268:         sub end_body {
  269: 	    my ($target,$token) = @_;
  270:             my $currentstring = '';
  271:             if ($target eq 'web') {
  272:               $currentstring = $token->[2];     
  273: 	    } elsif ($target eq 'tex') {
  274:               $currentstring = " \\end{document}";  
  275: 	    } 
  276: 	   return $currentstring;
  277: 	}
  278: #------------------------------------------------------------------------ <center> tag
  279:         sub start_center {
  280: 	    my ($target,$token) = @_;
  281:             my $currentstring = '';
  282:             if ($target eq 'web') {
  283:               $currentstring = $token->[4];     
  284: 	    } elsif ($target eq 'tex') {
  285:               $currentstring = " \\begin{center} ";  
  286: 	    }  elsif ($target eq 'latexsource') {
  287:               $currentstring = " \\begin{center} ";  
  288: 	    } 
  289: 	   return $currentstring;
  290: 	}
  291:         sub end_center {
  292: 	    my ($target,$token) = @_;
  293:             my $currentstring = '';
  294:             if ($target eq 'web') {
  295:               $currentstring = $token->[2];     
  296: 	    } elsif ($target eq 'tex') {
  297:               $currentstring = " \\end{center}";  
  298: 	    }  elsif ($target eq 'latexsource') {
  299:               $currentstring = " \\end{center}";  
  300: 	    } 
  301: 	   return $currentstring;
  302: 	}
  303: #----------------------------------------------------------------------------- <b> tag
  304:         sub start_b {
  305: 	    my ($target,$token) = @_;
  306:             my $currentstring = '';
  307:             if ($target eq 'web') {
  308:               $currentstring = $token->[4];     
  309: 	    } elsif ($target eq 'tex') {
  310:               $currentstring = " \\textbf{";  
  311: 	    }  elsif ($target eq 'latexsource') {
  312:               $currentstring = " \\textbf{";  
  313: 	    } 
  314: 	   return $currentstring;
  315: 	}
  316:         sub end_b {
  317: 	    my ($target,$token) = @_;
  318:             my $currentstring = '';
  319:             if ($target eq 'web') {
  320:               $currentstring = $token->[2];     
  321: 	    } elsif ($target eq 'tex') {
  322:               $currentstring = "}";  
  323: 	    } elsif ($target eq 'latexsource') {
  324:               $currentstring = "}";  
  325: 	    } 
  326: 	   return $currentstring;
  327: 	}
  328: #------------------------------------------------------------------------ <strong> tag
  329:         sub start_strong {
  330: 	    my ($target,$token) = @_;
  331:             my $currentstring = '';
  332:             if ($target eq 'web') {
  333:               $currentstring = $token->[4];     
  334: 	    } elsif ($target eq 'tex') {
  335:               $currentstring = " \\textbf{";  
  336: 	    } elsif ($target eq 'latexsource') {
  337:               $currentstring = " \\textbf{";  
  338: 	    } 
  339: 	   return $currentstring;
  340: 	}
  341:         sub end_strong {
  342: 	    my ($target,$token) = @_;
  343:             my $currentstring = '';
  344:             if ($target eq 'web') {
  345: 
  346:               $currentstring = $token->[2];     
  347: 	    } elsif ($target eq 'tex') {
  348:               $currentstring = "}";  
  349: 	    }  elsif ($target eq 'latexsource') {
  350:               $currentstring = "}";  
  351: 	    } 
  352: 	   return $currentstring;
  353: 	}
  354: #---------------------------------------------------------------------------- <h1> tag
  355:         sub start_h1 {
  356: 	    my ($target,$token) = @_;
  357:             my $currentstring = '';
  358:             if ($target eq 'web') {
  359: 	       $currentstring .= $token->[4];
  360: 	    } elsif ($target eq 'tex') {
  361: 		$currentstring .= "\\chapter{ ";
  362: 	    } elsif ($target eq 'meta') {
  363: 		$currentstring='<subject>';
  364:                 &start_output();
  365:             }
  366:            return $currentstring;
  367: 	}
  368:         sub end_h1 {
  369: 	    my ($target,$token) = @_;
  370:             my $currentstring = '';
  371:             if ($target eq 'web') {
  372: 	       $currentstring .= $token->[2];
  373: 	    } elsif ($target eq 'tex') {
  374: 		$currentstring .= "}";
  375: 	    } elsif ($target eq 'meta') {
  376:                 &end_output();
  377: 		$currentstring='</subject>';
  378:             } 
  379:            return $currentstring;
  380: 	}
  381: #---------------------------------------------------------------------------- <h2> tag
  382:         sub start_h2 {
  383: 	    my ($target,$token) = @_;
  384:             my $currentstring = '';
  385:             if ($target eq 'web') {
  386: 	       $currentstring .= $token->[4];
  387: 	    } elsif ($target eq 'tex') {
  388: 		$currentstring .= "\\section{ ";
  389: 	    } 
  390:            return $currentstring;
  391: 	}
  392:         sub end_h2 {
  393: 	    my ($target,$token) = @_;
  394:             my $currentstring = '';
  395:             if ($target eq 'web') {
  396: 	       $currentstring .= $token->[2];
  397: 	    } elsif ($target eq 'tex') {
  398: 		$currentstring .= "}";
  399: 	    } 
  400:            return $currentstring;
  401: 	}
  402: #---------------------------------------------------------------------------- <h3> tag
  403:         sub start_h3 {
  404: 	    my ($target,$token) = @_;
  405:             my $currentstring = '';
  406:             if ($target eq 'web') {
  407: 	       $currentstring .= $token->[4];
  408: 	    } elsif ($target eq 'tex') {
  409: 		$currentstring .= "\\subsection{ ";
  410: 	    } 
  411:            return $currentstring;
  412: 	}
  413:         sub end_h3 {
  414: 	    my ($target,$token) = @_;
  415:             my $currentstring = '';
  416:             if ($target eq 'web') {
  417: 	       $currentstring .= $token->[2];
  418: 	    } elsif ($target eq 'tex') {
  419: 		$currentstring .= "}";
  420: 	    } 
  421:            return $currentstring;
  422: 	}
  423: #---------------------------------------------------------------------------- <h4> tag
  424:         sub start_h4 {
  425: 	    my ($target,$token) = @_;
  426:             my $currentstring = '';
  427:             if ($target eq 'web') {
  428: 	       $currentstring .= $token->[4];
  429: 	    } elsif ($target eq 'tex') {
  430: 		$currentstring .= "\\subsubsection{ ";
  431: 	    } 
  432:            return $currentstring;
  433: 	}
  434:         sub end_h4 {
  435: 	    my ($target,$token) = @_;
  436:             my $currentstring = '';
  437:             if ($target eq 'web') {
  438: 	       $currentstring .= $token->[2];
  439: 	    } elsif ($target eq 'tex') {
  440: 		$currentstring .= "}";
  441: 	    } 
  442:            return $currentstring;
  443: 	}
  444: #---------------------------------------------------------------------------- <h5> tag
  445:         sub start_h5 {
  446: 	    my ($target,$token) = @_;
  447:             my $currentstring = '';
  448:             if ($target eq 'web') {
  449: 	       $currentstring .= $token->[4];
  450: 	    } elsif ($target eq 'tex') {
  451: 		$currentstring .= "\\paragraph{ ";
  452: 	    } 
  453:            return $currentstring;
  454: 	}
  455:         sub end_h5 {
  456: 	    my ($target,$token) = @_;
  457:             my $currentstring = '';
  458:             if ($target eq 'web') {
  459: 	       $currentstring .= $token->[2];
  460: 	    } elsif ($target eq 'tex') {
  461: 		$currentstring .= "}";
  462: 	    } 
  463:            return $currentstring;
  464: 	}
  465: #---------------------------------------------------------------------------- <h6> tag
  466:         sub start_h6 {
  467: 	    my ($target,$token) = @_;
  468:             my $currentstring = '';
  469:             if ($target eq 'web') {
  470: 	       $currentstring .= $token->[4];
  471: 	    } elsif ($target eq 'tex') {
  472: 		$currentstring .= "\\subparagraph{ ";
  473: 	    } 
  474:            return $currentstring;
  475: 	}
  476:         sub end_h6 {
  477: 	    my ($target,$token) = @_;
  478:             my $currentstring = '';
  479:             if ($target eq 'web') {
  480: 	       $currentstring .= $token->[2];
  481: 	    } elsif ($target eq 'tex') {
  482: 		$currentstring .= "}";
  483: 	    } 
  484:            return $currentstring;
  485: 	}
  486: #-------------------------------------------------------------------------- <cite> tag
  487:         sub start_cite {
  488: 	    my ($target,$token) = @_;
  489:             my $currentstring = '';
  490:             if ($target eq 'web') {
  491: 	       $currentstring .= $token->[4];
  492: 	    } elsif ($target eq 'tex') {
  493: 		$currentstring .= "\\textit{";
  494: 	    }  elsif ($target eq 'latexsource') {
  495: 		$currentstring .= "\\textit{";
  496: 	    } 
  497:            return $currentstring;
  498: 	}
  499:         sub end_cite {
  500: 	    my ($target,$token) = @_;
  501:             my $currentstring = '';
  502:             if ($target eq 'web') {
  503: 	       $currentstring .= $token->[2];
  504: 	    } elsif ($target eq 'tex') {
  505: 		$currentstring .= "}";
  506: 	    }  elsif ($target eq 'latexsource') {
  507: 		$currentstring .= "}";
  508: 	    } 
  509:            return $currentstring;
  510: 	}
  511: #----------------------------------------------------------------------------- <i> tag
  512:         sub start_i {
  513: 	    my ($target,$token) = @_;
  514:             my $currentstring = '';
  515:             if ($target eq 'web') {
  516: 	       $currentstring .= $token->[4];
  517: 	    } elsif ($target eq 'tex') {
  518: 		$currentstring .= "\\textit{";
  519: 	    }  elsif ($target eq 'latexsource') {
  520: 		$currentstring .= "\\textit{";
  521: 	    } 
  522:            return $currentstring;
  523: 	}
  524:         sub end_i {
  525: 	    my ($target,$token) = @_;
  526:             my $currentstring = '';
  527:             if ($target eq 'web') {
  528: 	       $currentstring .= $token->[2];
  529: 	    } elsif ($target eq 'tex') {
  530: 		$currentstring .= "}";
  531: 	    } elsif ($target eq 'latexsource') {
  532: 		$currentstring .= "}";
  533: 	    } 
  534:            return $currentstring;
  535: 	}
  536: #----------------------------------------------------------------------- <address> tag
  537:         sub start_address {
  538: 	    my ($target,$token) = @_;
  539:             my $currentstring = '';
  540:             if ($target eq 'web') {
  541: 	       $currentstring .= $token->[4];
  542: 	    } elsif ($target eq 'tex') {
  543: 		$currentstring .= "\\textit{";
  544: 	    } elsif ($target eq 'latexsource') {
  545: 		$currentstring .= "\\textit{";
  546: 	    } 
  547:            return $currentstring;
  548: 	}
  549:         sub end_address {
  550: 	    my ($target,$token) = @_;
  551:             my $currentstring = '';
  552:             if ($target eq 'web') {
  553: 	       $currentstring .= $token->[2];
  554: 	    } elsif ($target eq 'tex') {
  555: 		$currentstring .= "}";
  556: 	    } elsif ($target eq 'latexsource') {
  557: 		$currentstring .= "}";
  558: 	    }
  559:            return $currentstring;
  560: 	}
  561: #--------------------------------------------------------------------------- <dfn> tag
  562:         sub start_dfn {
  563: 	    my ($target,$token) = @_;
  564:             my $currentstring = '';
  565:             if ($target eq 'web') {
  566: 	       $currentstring .= $token->[4];
  567: 	    } elsif ($target eq 'tex') {
  568: 		$currentstring .= "\\textit{";
  569: 	    } elsif ($target eq 'latexsource') {
  570: 		$currentstring .= "\\textit{";
  571: 	    } 
  572:            return $currentstring;
  573: 	}
  574:         sub end_dfn {
  575: 	    my ($target,$token) = @_;
  576:             my $currentstring = '';
  577:             if ($target eq 'web') {
  578: 	       $currentstring .= $token->[2];
  579: 	    } elsif ($target eq 'tex') {
  580: 		$currentstring .= "}";
  581: 	    } elsif ($target eq 'latexsource') {
  582: 		$currentstring .= "}";
  583: 	    } 
  584:            return $currentstring;
  585: 	}
  586: #---------------------------------------------------------------------------- <tt> tag
  587:         sub start_tt {
  588: 	    my ($target,$token) = @_;
  589:             my $currentstring = '';
  590:             if ($target eq 'web') {
  591: 	       $currentstring .= $token->[4];
  592: 	    } elsif ($target eq 'tex') {
  593: 		$currentstring .= "\\texttt{";
  594: 	    } elsif ($target eq 'latexsource') {
  595: 		$currentstring .= "\\texttt{";
  596: 	    } 
  597:            return $currentstring;
  598: 	}
  599:         sub end_tt {
  600: 	    my ($target,$token) = @_;
  601:             my $currentstring = '';
  602:             if ($target eq 'web') {
  603: 	       $currentstring .= $token->[2];
  604: 	    } elsif ($target eq 'tex') {
  605: 		$currentstring .= "}";
  606: 	    } elsif ($target eq 'latexsource') {
  607: 		$currentstring .= "}";
  608: 	    }
  609:            return $currentstring;
  610: 	}
  611: #---------------------------------------------------------------------------- <kbd> tag
  612:         sub start_kbd {
  613: 	    my ($target,$token) = @_;
  614:             my $currentstring = '';
  615:             if ($target eq 'web') {
  616: 	       $currentstring .= $token->[4];
  617: 	    } elsif ($target eq 'tex') {
  618: 		$currentstring .= "\\texttt";
  619: 	    } elsif ($target eq 'latexsource') {
  620: 		$currentstring .= "\\texttt{";
  621: 	    } 
  622:            return $currentstring;
  623: 	}
  624:         sub end_kbd {
  625: 	    my ($target,$token) = @_;
  626:             my $currentstring = '';
  627:             if ($target eq 'web') {
  628: 	       $currentstring .= $token->[2];
  629: 	    } elsif ($target eq 'tex') {
  630: 		$currentstring .= "}";
  631: 	    } elsif ($target eq 'latexsource') {
  632: 		$currentstring .= "}";
  633: 	    } 
  634:            return $currentstring;
  635: 	}
  636: #-------------------------------------------------------------------------- <code> tag
  637:         sub start_code {
  638: 	    my ($target,$token) = @_;
  639:             my $currentstring = '';
  640:             if ($target eq 'web') {
  641: 	       $currentstring .= $token->[4];
  642: 	    } elsif ($target eq 'tex') {
  643: 		$currentstring .= "{ \\tt ";
  644: 	    } 
  645:            return $currentstring;
  646: 	}
  647:         sub end_code {
  648: 	    my ($target,$token) = @_;
  649:             my $currentstring = '';
  650:             if ($target eq 'web') {
  651: 	       $currentstring .= $token->[2];
  652: 	    } elsif ($target eq 'tex') {
  653: 		$currentstring .= "}";
  654: 	    } 
  655:            return $currentstring;
  656: 	}
  657: #---------------------------------------------------------------------------- <em> tag
  658:         sub start_em {
  659: 	    my ($target,$token) = @_;
  660:             my $currentstring = '';
  661:             if ($target eq 'web') {
  662: 	       $currentstring .= $token->[4];
  663: 	    } elsif ($target eq 'tex') {
  664: 		$currentstring .= "\\emph{";
  665: 	    } elsif ($target eq 'latexsource') {
  666: 		$currentstring .= "\\emph{";
  667: 	    } 
  668:            return $currentstring;
  669: 	}
  670:         sub end_em {
  671: 	    my ($target,$token) = @_;
  672:             my $currentstring = '';
  673:             if ($target eq 'web') {
  674: 	       $currentstring .= $token->[2];
  675: 	    } elsif ($target eq 'tex') {
  676: 		$currentstring .= "}";
  677: 	    } elsif ($target eq 'latexsource') {
  678: 		$currentstring .= "}";
  679: 	    }  
  680:            return $currentstring;
  681: 	}
  682: #----------------------------------------------------------------------------- <q> tag
  683:         sub start_q {
  684: 	    my ($target,$token) = @_;
  685:             my $currentstring = '';
  686:             if ($target eq 'web') {
  687: 	       $currentstring .= $token->[4];
  688: 	    } elsif ($target eq 'tex') {
  689: 		$currentstring .= "\\emph{";
  690: 	    }  elsif ($target eq 'latexsource') {
  691: 		$currentstring .= "\\emph{";
  692: 	    }
  693:            return $currentstring;
  694: 	}
  695:         sub end_q {
  696: 	    my ($target,$token) = @_;
  697:             my $currentstring = '';
  698:             if ($target eq 'web') {
  699: 	       $currentstring .= $token->[2];
  700: 	    } elsif ($target eq 'tex') {
  701: 		$currentstring .= "}";
  702: 	    } elsif ($target eq 'latexsource') {
  703: 		$currentstring .= "}";
  704: 	    }  
  705:            return $currentstring;
  706: 	}
  707: #----------------------------------------------------------------------------- <p> tag
  708:         sub start_p {
  709: 	    my ($target,$token) = @_;
  710:             my $currentstring = '';
  711:             if ($target eq 'web') {
  712: 	       $currentstring .= $token->[4];
  713: 	    } elsif ($target eq 'tex') {
  714: 		$currentstring .= "{\\par ";
  715: 	    } elsif ($target eq 'latexsource') {
  716: 		$currentstring .= "{\\par ";
  717: 	    } 
  718:            return $currentstring;
  719: 	}
  720:         sub end_p {
  721: 	    my ($target,$token) = @_;
  722:             my $currentstring = '';
  723:             if ($target eq 'web') {
  724: 	       $currentstring .= $token->[2];
  725: 	    } elsif ($target eq 'tex') {
  726: 	        $currentstring .= "}";
  727:             } elsif ($target eq 'latexsource') {
  728: 	        $currentstring .= "}";
  729:             }
  730:            return $currentstring;
  731: 	}
  732: #---------------------------------------------------------------------------- <br> tag
  733:         sub start_br {
  734: 	    my ($target,$token) = @_;
  735:             my $currentstring = '';
  736:             if ($target eq 'web') {
  737: 	       $currentstring .= $token->[4];
  738: 	    } elsif ($target eq 'tex') {
  739: 		$currentstring .= "\\\\";
  740: 	    } elsif ($target eq 'latexsource') {
  741: 		$currentstring .= "\\\\";
  742: 	    } 
  743:            return $currentstring;
  744: 	}
  745:         sub end_br {
  746: 	    my ($target,$token) = @_;
  747:             my $currentstring = '';
  748:             if ($target eq 'web') {
  749: 	       $currentstring .= $token->[2];
  750: 	    }
  751:            return $currentstring;
  752: 	}
  753: #--------------------------------------------------------------------------- <big> tag
  754:         sub start_big {
  755: 	    my ($target,$token) = @_;
  756:             my $currentstring = '';
  757:             if ($target eq 'web') {
  758: 	       $currentstring .= $token->[4];
  759: 	    } elsif ($target eq 'tex') {
  760: 		$currentstring .= "{\\large ";
  761: 	    } elsif ($target eq 'latexsource') {
  762: 		$currentstring .= "{\\large ";
  763: 	    }  
  764:            return $currentstring;
  765: 	}
  766:         sub end_big {
  767: 	    my ($target,$token) = @_;
  768:             my $currentstring = '';
  769:             if ($target eq 'web') {
  770: 	       $currentstring .= $token->[2];
  771: 	    } elsif ($target eq 'tex') {
  772: 	        $currentstring .= " }";
  773:             } elsif ($target eq 'latexsource') {
  774: 	        $currentstring .= " }";
  775:             }
  776:            return $currentstring;
  777: 	}
  778: #------------------------------------------------------------------------- <small> tag
  779:         sub start_small {
  780: 	    my ($target,$token) = @_;
  781:             my $currentstring = '';
  782:             if ($target eq 'web') {
  783: 	       $currentstring .= $token->[4];
  784: 	    } elsif ($target eq 'tex') {
  785: 		$currentstring .= "{\\footnotesize ";
  786: 	    } elsif ($target eq 'latexsource') {
  787: 		$currentstring .= "{\\footnotesize ";
  788: 	    } 
  789:            return $currentstring;
  790: 	}
  791:         sub end_small {
  792: 	    my ($target,$token) = @_;
  793:             my $currentstring = '';
  794:             if ($target eq 'web') {
  795: 	       $currentstring .= $token->[2];
  796: 	    } elsif ($target eq 'tex') {
  797: 	        $currentstring .= " }";
  798:             } elsif ($target eq 'latexsource') {
  799: 	        $currentstring .= " }";
  800:             }
  801:            return $currentstring;
  802: 	}
  803: #---------------------------------------------------------------------- <basefont> tag
  804:       sub start_basefont {
  805: 	my ($target,$token) = @_;
  806: 	my $currentstring = '';
  807: 	if ($target eq 'web') {
  808: 	  $currentstring = $token->[4];     
  809: 	} 
  810: 	return $currentstring;
  811:       }
  812:       sub end_basefont {
  813: 	my ($target,$token) = @_;
  814: 	my $currentstring = '';
  815: 	if ($target eq 'web') {
  816: 	  $currentstring = $token->[4];     
  817: 	} 
  818: 	return $currentstring;
  819:       }
  820: #-------------------------------------------------------------------------- <font> tag
  821:          sub start_font {
  822: 	    my ($target,$token) = @_;
  823:             my $currentstring = '';
  824:             if ($target eq 'web') {
  825:               $currentstring = $token->[4];     
  826: 	    } 
  827: 	   return $currentstring;
  828: 	}
  829:         sub end_font {
  830: 	    my ($target,$token) = @_;
  831:             my $currentstring = '';
  832:             if ($target eq 'web') {
  833:               $currentstring = $token->[2];    
  834:             } 
  835: 	   return $currentstring;
  836: 	} 
  837: #------------------------------------------------------------------------ <strike> tag
  838:         sub start_strike {
  839: 	    my ($target,$token) = @_;
  840:             my $currentstring = '';
  841:             if ($target eq 'web') {
  842: 	       $currentstring .= $token->[4];
  843: 	    } elsif ($target eq 'tex') {
  844: 		$currentstring .= "{\\underline ";
  845: 	    } 
  846:            return $currentstring;
  847: 	}
  848:         sub end_strike {
  849: 	    my ($target,$token) = @_;
  850:             my $currentstring = '';
  851:             if ($target eq 'web') {
  852: 	       $currentstring .= $token->[2];
  853: 	    } elsif ($target eq 'tex') {
  854: 	        $currentstring .= " }";
  855:             }
  856:            return $currentstring;
  857: 	}
  858: #----------------------------------------------------------------------------- <s> tag
  859:         sub start_s {
  860: 	    my ($target,$token) = @_;
  861:             my $currentstring = '';
  862:             if ($target eq 'web') {
  863: 	       $currentstring .= $token->[4];
  864: 	    } elsif ($target eq 'tex') {
  865: 		$currentstring .= "{\\underline ";
  866: 	    } 
  867:            return $currentstring;
  868: 	}
  869:         sub end_s {
  870: 	    my ($target,$token) = @_;
  871:             my $currentstring = '';
  872:             if ($target eq 'web') {
  873: 	       $currentstring .= $token->[2];
  874: 	    } elsif ($target eq 'tex') {
  875: 	        $currentstring .= " }";
  876:             }
  877:            return $currentstring;
  878: 	}
  879: #--------------------------------------------------------------------------- <sub> tag
  880:         sub start_sub {
  881: 	    my ($target,$token) = @_;
  882:             my $currentstring = '';
  883:             if ($target eq 'web') {
  884: 	       $currentstring .= $token->[4];
  885: 	    } elsif ($target eq 'tex') {
  886: 		$currentstring .= "\$_{ ";
  887: 	    } 
  888:            return $currentstring;
  889: 	}
  890:         sub end_sub {
  891: 	    my ($target,$token) = @_;
  892:             my $currentstring = '';
  893:             if ($target eq 'web') {
  894: 	       $currentstring .= $token->[2];
  895: 	    } elsif ($target eq 'tex') {
  896: 	        $currentstring .= " }\$";
  897:             }
  898:            return $currentstring;
  899: 	}
  900: #--------------------------------------------------------------------------- <sup> tag
  901:         sub start_sup {
  902: 	    my ($target,$token) = @_;
  903:             my $currentstring = '';
  904:             if ($target eq 'web') {
  905: 	       $currentstring .= $token->[4];
  906: 	    } elsif ($target eq 'tex') {
  907: 		$currentstring .= "\$^{ ";
  908: 	    } 
  909:            return $currentstring;
  910: 	}
  911:         sub end_sup {
  912: 	    my ($target,$token) = @_;
  913:             my $currentstring = '';
  914:             if ($target eq 'web') {
  915: 	       $currentstring .= $token->[2];
  916: 	    } elsif ($target eq 'tex') {
  917: 	        $currentstring .= " }\$";
  918:             }
  919:            return $currentstring;
  920: 	}
  921: #---------------------------------------------------------------------------- <hr> tag
  922:         sub start_hr {
  923: 	    my ($target,$token) = @_;
  924:             my $currentstring = '';
  925:             if ($target eq 'web') {
  926: 	       $currentstring .= $token->[4];
  927: 	    } elsif ($target eq 'tex') {
  928: 		$currentstring .= "\\hline ";
  929: 	    } 
  930:            return $currentstring;
  931: 	}
  932:         sub end_hr {
  933: 	    my ($target,$token) = @_;
  934:             my $currentstring = '';
  935:             if ($target eq 'web') {
  936: 	       $currentstring .= $token->[2];
  937: 	    } elsif ($target eq 'tex') {
  938: 	    } 
  939:            return $currentstring;
  940: 	}
  941: #----------------------------------------------------------------------------- <a> tag
  942:         sub start_a {
  943: 	    my ($target,$token) = @_;
  944:             my $currentstring = '';
  945:             if ($target eq 'web') {
  946: 	       $currentstring .= $token->[4];
  947: 	    } elsif ($target eq 'tex') {
  948: 	    }
  949:            return $currentstring;
  950: 	}
  951:         sub end_a {
  952: 	    my ($target,$token,$stackref) = @_;
  953:             my $currentstring = '';
  954:             if ($target eq 'web') {
  955: 	       $currentstring .= $token->[2];
  956: 	    } elsif ($target eq 'tex') {
  957:                 my  $tempor_var = $stackref->[$#$stackref];
  958: 		if (index($tempor_var,'name') != -1 ) {
  959: 		    $tempor_var =~ s/name=([^,]*),/$1/g;
  960: #	        $currentstring .= " \\label{$tempor_var}";
  961: 	        } elsif (index($tempor_var,'href') != -1 ) {
  962: 		    $tempor_var =~ s/href=([^,]*),/$1/g;
  963: 	        $currentstring .= " \\ref{$tempor_var}";
  964: 	        }
  965:             }
  966:            return $currentstring;
  967: 	}
  968: #---------------------------------------------------------------------------- <li> tag
  969:         sub start_li {
  970: 	    my ($target,$token,$stackref) = @_;
  971:             my $currentstring = '';
  972:             if ($target eq 'web') {
  973:               $currentstring = $token->[4];     
  974: 	    } elsif ($target eq 'tex') {
  975:                 my  $tempor_var = $stackref->[$#$stackref];
  976:                 if (index($tempor_var,'circle') != -1 ) {
  977: 	          $currentstring .= " \\item[o] ";
  978: 	        } elsif (index($tempor_var,'square') != -1 ) {
  979: 	               $currentstring .= " \\item[$\Box$] ";
  980: 	        } elsif ($tempor_var ne '') { 
  981: 		       $_ = $tempor_var;
  982:                        m/my\s*([^=]*)=/;
  983: 		       $currentstring .= " \\item[$1] ";
  984: 		} else {
  985: 		    $currentstring .= " \\item ";
  986: 	        }  
  987: 	    } 
  988: 	   return $currentstring;
  989: 	}
  990:         sub end_li {
  991: 	    my ($target,$token) = @_;
  992:             my $currentstring = '';
  993:             if ($target eq 'web') {
  994:               $currentstring = $token->[2];     
  995: 	    } 
  996: 	   return $currentstring;
  997: 	}
  998: #----------------------------------------------------------------------------- <u> tag
  999:         sub start_u {
 1000: 	    my ($target,$token) = @_;
 1001:             my $currentstring = '';
 1002:             if ($target eq 'web') {
 1003: 	       $currentstring .= $token->[4];
 1004: 	    } elsif ($target eq 'tex') {
 1005: 		$currentstring .= "{\\underline ";
 1006: 	    } 
 1007:            return $currentstring;
 1008: 	}
 1009:         sub end_u {
 1010: 	    my ($target,$token) = @_;
 1011:             my $currentstring = '';
 1012:             if ($target eq 'web') {
 1013: 	       $currentstring .= $token->[2];
 1014: 	    } elsif ($target eq 'tex') {
 1015: 	        $currentstring .= " }";
 1016:             }
 1017:            return $currentstring;
 1018: 	}
 1019: #---------------------------------------------------------------------------- <ul> tag
 1020:         sub start_ul {
 1021: 	    my ($target,$token) = @_;
 1022:             my $currentstring = '';
 1023:             if ($target eq 'web') {
 1024:               $currentstring = $token->[4];     
 1025: 	    } elsif ($target eq 'tex') {
 1026:               $currentstring = " \\begin{itemize} ";  
 1027: 	    } 
 1028: 	   return $currentstring;
 1029: 	}
 1030:         sub end_ul {
 1031: 	    my ($target,$token) = @_;
 1032:             my $currentstring = '';
 1033:             if ($target eq 'web') {
 1034:               $currentstring = $token->[2];     
 1035: 	    } elsif ($target eq 'tex') {
 1036:               $currentstring = " \\end{itemize}";  
 1037: 	    } 
 1038: 	   return $currentstring;
 1039: 	}
 1040: #-------------------------------------------------------------------------- <menu> tag
 1041:         sub start_menu {
 1042: 	    my ($target,$token) = @_;
 1043:             my $currentstring = '';
 1044:             if ($target eq 'web') {
 1045:               $currentstring = $token->[4];     
 1046: 	    } elsif ($target eq 'tex') {
 1047:               $currentstring = " \\begin{itemize} ";  
 1048: 	    } 
 1049: 	   return $currentstring;
 1050: 	}
 1051:         sub end_menu {
 1052: 	    my ($target,$token) = @_;
 1053:             my $currentstring = '';
 1054:             if ($target eq 'web') {
 1055:               $currentstring = $token->[2];     
 1056: 	    } elsif ($target eq 'tex') {
 1057:               $currentstring = " \\end{itemize}";  
 1058: 	    } 
 1059: 	   return $currentstring;
 1060: 	}
 1061: #--------------------------------------------------------------------------- <dir> tag
 1062:         sub start_dir {
 1063: 	    my ($target,$token) = @_;
 1064:             my $currentstring = '';
 1065:             if ($target eq 'web') {
 1066:               $currentstring = $token->[4];     
 1067: 	    } elsif ($target eq 'tex') {
 1068:               $currentstring = " \\begin{itemize} ";  
 1069: 	    } 
 1070: 	   return $currentstring;
 1071: 	}
 1072:         sub end_dir {
 1073: 	    my ($target,$token) = @_;
 1074:             my $currentstring = '';
 1075:             if ($target eq 'web') {
 1076:               $currentstring = $token->[2];     
 1077: 	    } elsif ($target eq 'tex') {
 1078:               $currentstring = " \\end{itemize}";  
 1079: 	    } 
 1080: 	   return $currentstring;
 1081: 	}
 1082: #---------------------------------------------------------------------------- <ol> tag
 1083:         sub start_ol {
 1084: 	    my ($target,$token) = @_;
 1085:             my $currentstring = '';
 1086:             if ($target eq 'web') {
 1087:               $currentstring = $token->[4];     
 1088: 	    } elsif ($target eq 'tex') {
 1089:               $currentstring = " \\begin{enumerate} ";  
 1090: 	    } 
 1091: 	   return $currentstring;
 1092: 	}
 1093:         sub end_ol {
 1094: 	    my ($target,$token) = @_;
 1095:             my $currentstring = '';
 1096:             if ($target eq 'web') {
 1097:               $currentstring = $token->[2];     
 1098: 	    } elsif ($target eq 'tex') {
 1099:               $currentstring = " \\end{enumerate}";  
 1100: 	    } 
 1101: 	   return $currentstring;
 1102: 	}
 1103: #---------------------------------------------------------------------------- <dl> tag
 1104:         sub start_dl {
 1105: 	    my ($target,$token) = @_;
 1106:             my $currentstring = '';
 1107:             if ($target eq 'web') {
 1108:               $currentstring = $token->[4];     
 1109: 	    } elsif ($target eq 'tex') {
 1110:               $currentstring = " \\begin{description} ";  
 1111: 	    } 
 1112: 	   return $currentstring;
 1113: 	}
 1114:         sub end_dl {
 1115: 	    my ($target,$token) = @_;
 1116:             my $currentstring = '';
 1117:             if ($target eq 'web') {
 1118:               $currentstring = $token->[2];     
 1119: 	    } elsif ($target eq 'tex') {
 1120:               $currentstring = " \\end{description}";  
 1121: 	    } 
 1122: 	   return $currentstring;
 1123: 	}
 1124: #---------------------------------------------------------------------------- <dt> tag
 1125:         sub start_dt {
 1126: 	    my ($target,$token) = @_;
 1127:             my $currentstring = '';
 1128:             if ($target eq 'web') {
 1129:               $currentstring = $token->[4];     
 1130: 	    } elsif ($target eq 'tex') {
 1131:               $currentstring = "\\item[ ";  
 1132: 	    } 
 1133: 	   return $currentstring;
 1134: 	}
 1135:         sub end_dt {
 1136: 	    my ($target,$token) = @_;
 1137:             my $currentstring = '';
 1138:             if ($target eq 'web') {
 1139:               $currentstring = $token->[2];    
 1140:             } elsif ($target eq 'tex') {
 1141:               $currentstring = "]";  
 1142: 	    } 
 1143: 	   return $currentstring;
 1144: 	}
 1145: #---------------------------------------------------------------------------- <dd> tag
 1146:         sub start_dd {
 1147: 	    my ($target,$token) = @_;
 1148:             my $currentstring = '';
 1149:             if ($target eq 'web') {
 1150:               $currentstring = $token->[4];     
 1151: 	    } 
 1152: 	   return $currentstring;
 1153: 	}
 1154:         sub end_dd {
 1155: 	    my ($target,$token) = @_;
 1156:             my $currentstring = '';
 1157:             if ($target eq 'web') {
 1158:               $currentstring = $token->[2];    
 1159:             } 
 1160: 	   return $currentstring;
 1161: 	}
 1162: #------------------------------------------------------------------------- <table> tag
 1163:         sub start_table {
 1164: 	    my ($target,$token) = @_;
 1165:             my $currentstring = '';
 1166:             if ($target eq 'web') {
 1167:               $currentstring = $token->[4];     
 1168: 	    } elsif ($target eq 'tex') {
 1169:               $currentstring = "";  
 1170: 	    } 
 1171: 	   return $currentstring;
 1172: 	}
 1173:         sub end_table {
 1174: 	    my ($target,$token) = @_;
 1175:             my $currentstring = '';
 1176:             if ($target eq 'web') {
 1177:               $currentstring = $token->[2];     
 1178: 	    } elsif ($target eq 'tex') {
 1179:               $currentstring = "";  
 1180: 	    } 
 1181: 	   return $currentstring;
 1182: 	}
 1183: #------------------------------------------------------------------------- <tr> tag
 1184:         sub start_tr {
 1185: 	    my ($target,$token) = @_;
 1186:             my $currentstring = '';
 1187:             if ($target eq 'web') {
 1188:               $currentstring = $token->[4];     
 1189: 	    } elsif ($target eq 'tex') {
 1190: 	      $currentstring = '';
 1191: 	    } 
 1192: 	   return $currentstring;
 1193: 	}
 1194:         sub end_tr {
 1195: 	    my ($target,$token) = @_;
 1196:             my $currentstring = '';
 1197:             if ($target eq 'web') {
 1198:               $currentstring = $token->[2];     
 1199: 	    } elsif ($target eq 'tex') {
 1200:               $currentstring = "";  
 1201: 	    } 
 1202: 	   return $currentstring;
 1203: 	}
 1204: #------------------------------------------------------------------------- <td> tag
 1205:         sub start_td {
 1206: 	    my ($target,$token) = @_;
 1207:             my $currentstring = '';
 1208:             if ($target eq 'web') {
 1209:               $currentstring = $token->[4];     
 1210: 	    } elsif ($target eq 'tex') {
 1211: 	      $currentstring = '';
 1212: 	    } 
 1213: 	   return $currentstring;
 1214: 	}
 1215:         sub end_td {
 1216: 	    my ($target,$token) = @_;
 1217:             my $currentstring = '';
 1218:             if ($target eq 'web') {
 1219:               $currentstring = $token->[2];     
 1220: 	    } elsif ($target eq 'tex') {
 1221:               $currentstring = "";  
 1222: 	    } 
 1223: 	   return $currentstring;
 1224: 	}
 1225: # -------------------------------------------------------------------------- <img> tag
 1226: 
 1227:         sub start_img {
 1228: 	    my ($target,$token) = @_;
 1229:             $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=   
 1230:                                         $token->[2]->{'src'};
 1231:             my $currentstring = '';
 1232:             if ($target eq 'web') {
 1233:               $currentstring = $token->[4];     
 1234: 	    } elsif ($target eq 'tex') {
 1235:               $currentstring = " \\begin{figure} ";  
 1236: 	    } 
 1237: 	   return $currentstring;
 1238: 	}
 1239:         sub end_img {
 1240: 	    my ($target,$token) = @_;
 1241:             my $currentstring = '';
 1242:             if ($target eq 'web') {
 1243:               $currentstring = $token->[2];     
 1244: 	    } elsif ($target eq 'tex') {
 1245:               $currentstring = " \\end{figure}";  
 1246: 	    } 
 1247: 	   return $currentstring;
 1248: 	}
 1249: # ----------------------------------------------------------------------- <applet> tag
 1250: 
 1251:         sub start_applet {
 1252: 	    my ($target,$token) = @_;
 1253:               $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=   
 1254:                                         $token->[2]->{'code'};
 1255:               $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=   
 1256:                                         $token->[2]->{'archive'};
 1257:             my $currentstring = '';
 1258:             if ($target eq 'web') {
 1259:               $currentstring = $token->[4];     
 1260: 	    } elsif ($target eq 'tex') {
 1261:               $currentstring = " \\begin{figure} ";  
 1262: 	    } 
 1263: 	   return $currentstring;
 1264: 	}
 1265:         sub end_applet {
 1266: 	    my ($target,$token) = @_;
 1267:             my $currentstring = '';
 1268:             if ($target eq 'web') {
 1269:               $currentstring = $token->[2];     
 1270: 	    } elsif ($target eq 'tex') {
 1271:               $currentstring = " \\end{figure}";  
 1272: 	    } 
 1273: 	   return $currentstring;
 1274: 	}
 1275: 
 1276: # ------------------------------------------------------------------------ <embed> tag
 1277: 
 1278:         sub start_embed {
 1279: 	    my ($target,$token) = @_;
 1280:             $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=   
 1281:                                         $token->[2]->{'src'};
 1282:            my $currentstring = '';
 1283:             if ($target eq 'web') {
 1284:               $currentstring = $token->[4];     
 1285: 	    } elsif ($target eq 'tex') {
 1286:               $currentstring = " \\begin{figure} ";  
 1287: 	    } 
 1288: 	   return $currentstring;
 1289: 	}
 1290:         sub end_embed {
 1291: 	    my ($target,$token) = @_;
 1292:             my $currentstring = '';
 1293:             if ($target eq 'web') {
 1294:               $currentstring = $token->[2];     
 1295: 	    } elsif ($target eq 'tex') {
 1296:               $currentstring = " \\end{figure}";  
 1297: 	    } 
 1298: 	   return $currentstring;
 1299: 	}
 1300: 
 1301: # ------------------------------------------------------------------------ <param> tag
 1302: 
 1303:         sub start_param {
 1304: 	    my ($target,$token) = @_;
 1305: 	    if ($token->[2]->{'name'} eq 'cabbase') {
 1306:                       $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
 1307: 					     $token->[2]->{'value'};
 1308:             }   
 1309:             $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=   
 1310:                                         $token->[2]->{'src'};
 1311:             my $currentstring = '';
 1312:             if ($target eq 'web') {
 1313:               $currentstring = $token->[4];     
 1314: 	    } elsif ($target eq 'tex') {
 1315:               $currentstring = " \\begin{figure} ";  
 1316: 	    } 
 1317: 	   return $currentstring;
 1318: 	}
 1319:         sub end_param {
 1320: 	    my ($target,$token) = @_;
 1321:             my $currentstring = '';
 1322:             if ($target eq 'web') {
 1323:               $currentstring = $token->[2];     
 1324: 	    } elsif ($target eq 'tex') {
 1325:               $currentstring = " \\end{figure}";  
 1326: 	    } 
 1327: 	   return $currentstring;
 1328: 	}
 1329: 
 1330: # ------------------------------------------------------------------------ <allow> tag
 1331: 
 1332:         sub start_allow {
 1333: 	    my ($target,$token) = @_;
 1334: 
 1335:             $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=   
 1336:                                         $token->[2]->{'src'};
 1337: 
 1338: 	   return '';
 1339: 	}
 1340:         sub end_allow {
 1341: 	   return '';
 1342: 	}
 1343: 
 1344: 
 1345: 1;
 1346: __END__

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