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