Diff for /loncom/xml/londefdef.pm between versions 1.130 and 1.142

version 1.130, 2003/04/18 15:14:18 version 1.142, 2003/06/19 19:15:59
Line 54  use Apache::lonmeta(); Line 54  use Apache::lonmeta();
   
 BEGIN {  BEGIN {
   
     &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr'));      &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr','hideweboutput'));
   
 }  }
   
Line 158  sub start_html { Line 158  sub start_html {
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  @Apache::londefdef::table = ();   @Apache::londefdef::table = ();
  $currentstring .= '\documentclass[letterpaper]{article}   $currentstring .= '\documentclass[letterpaper]{article}
                              \batchmode
                            \newcommand{\keephidden}[1]{}                             \newcommand{\keephidden}[1]{}
                            \renewcommand{\deg}{$^{\circ}$}                             \renewcommand{\deg}{$^{\circ}$}
                            \usepackage{textcomp}                             \usepackage{textcomp}
Line 354  sub start_meta { Line 355  sub start_meta {
  } else {   } else {
     $currentstring = $token->[4];      $currentstring = $token->[4];
  }   }
     }      } elsif ($target eq 'meta') {
     if ($target eq 'meta') {  
  unless (&Apache::lonxml::get_param   unless (&Apache::lonxml::get_param
  ('http-equiv',$parstack,$safeeval,undef,1)) {   ('http-equiv',$parstack,$safeeval,undef,1)) {
     my $name=$token->[2]->{'name'};      my $name=$token->[2]->{'name'};
Line 366  sub start_meta { Line 366  sub start_meta {
  $currentstring='<'.$name.'>'.   $currentstring='<'.$name.'>'.
     &Apache::lonxml::get_param      &Apache::lonxml::get_param
  ('content',$parstack,$safeeval,undef,1).   ('content',$parstack,$safeeval,undef,1).
     '</'.$name.'>';   '</'.$name.'>';
     }      }
  }   }
       } elsif ($target eq 'tex') {
    &Apache::lonxml::startredirection();
     }      }
     return $currentstring;      return $currentstring;
 }  }
Line 382  sub end_meta { Line 384  sub end_meta {
  if ($args ne '') {   if ($args ne '') {
     $currentstring = $token->[4];      $currentstring = $token->[4];
  }   }
     }       } elsif ($target eq 'tex') {
    $currentstring=&Apache::lonxml::endredirection();
    $currentstring='';
       }
     return $currentstring;      return $currentstring;
 }  }
   
Line 1133  sub start_big { Line 1138  sub start_big {
     if ($target eq 'web') {      if ($target eq 'web') {
  $currentstring .= $token->[4];   $currentstring .= $token->[4];
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $currentstring .= '\large{';   $currentstring .= '{\large ';
     } elsif ($target eq 'latexsource') {      } elsif ($target eq 'latexsource') {
  $currentstring .= '{\Large ';   $currentstring .= '{\Large ';
     }        }  
Line 1696  sub end_dd { Line 1701  sub end_dd {
 #-- <table> tag  #-- <table> tag
 sub start_table {  sub start_table {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     my $textwidth;      my $textwidth='';
     if ($#Apache::londefdef::table==0) {      if (not defined @Apache::londefdef::table) {
  $textwidth=&recalc($ENV{'form.textwidth'});   $textwidth=&recalc($ENV{'form.textwidth'});
  $textwidth=~/(\d+)/;   $textwidth=~/(\d+\.?\d*)/;
  $textwidth=$1;   $textwidth=0.95*$1;
     } else {      } else {
  $textwidth=&Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);   $textwidth=&Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
     }      }
Line 1742  sub start_table { Line 1747  sub start_table {
     $Apache::londefdef::table[-1]{'vvinc'} = '';      $Apache::londefdef::table[-1]{'vvinc'} = '';
  }   }
  $Apache::londefdef::table[-1]{'output'} = ' \noindent \begin{tabular} ';   $Apache::londefdef::table[-1]{'output'} = ' \noindent \begin{tabular} ';
  $currentstring = '\keephidden{NEW TABLE ENTRY}';   $currentstring = '\keephidden{NEW TABLE ENTRY '.$textwidth.' }';
     }      }
     return $currentstring;      return $currentstring;
 }  }
Line 1894  sub end_td { Line 1899  sub end_td {
  } else {   } else {
     if ($data=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/) {      if ($data=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/) {
  my $current_length=&recalc($1);   my $current_length=&recalc($1);
  $current_length=~/(\d+)/;   $current_length=~/(\d+\.?\d*)/;
  $Apache::londefdef::table[-1]{'TeXlength'} .= $1.',';   $Apache::londefdef::table[-1]{'TeXlength'} .= $1.',';
  $Apache::londefdef::table[-1]{'length'} .= '0,';   $Apache::londefdef::table[-1]{'length'} .= '0,';
     } else {           } else {     
Line 2194  sub start_allow { Line 2199  sub start_allow {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);      my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
     $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);      $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
     $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;      $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
    &Apache::lonnet::clutter($src);
     &image_replication($src);      &image_replication($src);
     my $result;      my $result;
     if ($target eq 'edit') {      if ($target eq 'edit') {
Line 2224  sub start_frameset { Line 2230  sub start_frameset {
     $currentstring.='<head>'.      $currentstring.='<head>'.
  &Apache::lonmenu::registerurl(undef,$target).'</head>';   &Apache::lonmenu::registerurl(undef,$target).'</head>';
  }   }
  $currentstring .= $token->[4];   my $onLoad='';
    foreach my $key (keys(%{$token->[2]})) {
       if ($key =~ /^onload$/i) {
    $onLoad.=$token->[2]->{$key}.';';
    delete($token->[2]->{$key});
       }
    }
    $token->[2]->{'onload'}=&Apache::lonmenu::loadevents().';'.$onLoad;
    my $onUnload='';
    foreach my $key (keys(%{$token->[2]})) {
       if ($key =~ /^onunload$/i) {
    $onUnload.=$token->[2]->{$key}.';';
    delete($token->[2]->{$key});
       }
    }
    $token->[2]->{'onunload'}=&Apache::lonmenu::unloadevents().
       ';'.$onUnload;
   
    $currentstring .= '<'.$token->[1];
    foreach (keys %{$token->[2]}) {
       $currentstring.=' '.$_.'="'.$token->[2]->{$_}.'"';
    }
    $currentstring.='>';
     }      }
     return $currentstring;      return $currentstring;
 }  }
Line 2245  sub start_pre { Line 2273  sub start_pre {
     if ($target eq 'web') {      if ($target eq 'web') {
  $currentstring .= $token->[4];   $currentstring .= $token->[4];
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  my $width = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);   $currentstring .= '\begin{verbatim}';
  if (not defined $width) {$width ='\textwidth';}  
  $currentstring .= '\parbox['.$width.']{\begin{verbatim}';  
     }       } 
     return $currentstring;      return $currentstring;
 }  }
Line 2258  sub end_pre { Line 2284  sub end_pre {
     if ($target eq 'web') {      if ($target eq 'web') {
  $currentstring .= $token->[2];   $currentstring .= $token->[2];
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $currentstring .= '\end{verbatim}}';   $currentstring .= '\end{verbatim}';
     }      }
     return $currentstring;      return $currentstring;
 }  }
Line 3102  sub end_wbr { Line 3128  sub end_wbr {
     return $currentstring;      return $currentstring;
 }  }
   
   
   #-- <hideweboutput> tag
   sub start_hideweboutput {
       my ($target,$token) = @_;
       if ($target eq 'web') {
    &Apache::lonxml::startredirection();     
       } 
       return '';
   }
   
   sub end_hideweboutput {
       my ($target,$token) = @_;
       my $currentstring = '';
       if ($target eq 'web') {
    $currentstring = &Apache::lonxml::endredirection();    
       } 
       return '';
   }
   
   
 sub image_replication {  sub image_replication {
     my $src = shift;      my $src = shift;
     if (not -e $src) {      if (not -e $src) {
Line 3123  sub image_replication { Line 3169  sub image_replication {
 sub recalc {  sub recalc {
     my $argument = shift;      my $argument = shift;
     if (not $argument=~/(mm|cm|in|pc|pt)/) {return $argument.' mm';}      if (not $argument=~/(mm|cm|in|pc|pt)/) {return $argument.' mm';}
     $argument=~/\s*(\d+)\s*(mm|cm|in|pc|pt)/;      $argument=~/\s*(\d+\.?\d*)\s*(mm|cm|in|pc|pt)/;
     my $value=$1;      my $value=$1;
     my $units=$2;      my $units=$2;
     if ($units eq 'cm') {      if ($units eq 'cm') {

Removed from v.1.130  
changed lines
  Added in v.1.142


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