version 1.75, 2001/05/13 21:40:32
|
version 1.76, 2001/05/15 20:50:03
|
Line 10
|
Line 10
|
|
|
package Apache::lonxml; |
package Apache::lonxml; |
use vars |
use vars |
qw(@pwd @outputstack $redirection $import @extlinks $metamode $evaluate %insertlist); |
qw(@pwd @outputstack $redirection $import @extlinks $metamode $evaluate %insertlist @namespace); |
use strict; |
use strict; |
use HTML::TokeParser; |
use HTML::TokeParser; |
use Safe; |
use Safe; |
Line 60 $evaluate = 1;
|
Line 60 $evaluate = 1;
|
# data structure for eidt mode, determines what tags can go into what other tags |
# data structure for eidt mode, determines what tags can go into what other tags |
%insertlist=(); |
%insertlist=(); |
|
|
|
#stores the list of active tag namespaces |
|
@namespace=(); |
|
|
sub xmlbegin { |
sub xmlbegin { |
my $output=''; |
my $output=''; |
if ($ENV{'browser.mathml'}) { |
if ($ENV{'browser.mathml'}) { |
Line 376 sub callsub {
|
Line 379 sub callsub {
|
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
if ($token->[0] eq 'S') { |
if ($token->[0] eq 'S') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
|
$currentstring.=&Apache::edit::handle_insert(); |
} else { |
} else { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
Line 642 sub warning {
|
Line 646 sub warning {
|
} |
} |
} |
} |
|
|
#Should allow multiple definitions of the same tag name |
|
sub register_insert2 { |
|
my @data = split /\n/, &Apache::lonnet::getfile('/home/httpd/lonTabs/insertlist.tab'); |
|
my $i; |
|
my @order; |
|
for ($i=0;$i < $#data; $i++) { |
|
my $line = $data[$i]; |
|
if ( $line =~ /^\#/ || $line =~ /^\s*\n/) { next; } |
|
if ( $line =~ /TABLE/ ) { last; } |
|
my ($tag,$descrip,$function,$show) = split(/,/, $line); |
|
if ($show eq 'no') { next; } |
|
$insertlist{"$i.tag"} = $tag; |
|
$insertlist{"$i.description"} = $descrip; |
|
$insertlist{"$i.function"} = $function; |
|
} |
|
for (;$i < $#data;$i++) { |
|
my $line = $data[$i]; |
|
my ($tag,@which) = split(/ +/,$line); |
|
for (my $j=0;$j <$#which;$j++) { |
|
if ( $which[$j] eq 'Y' ) { |
|
push(@{ $insertlist{"$tag.which"} },$j); |
|
} |
|
} |
|
} |
|
} |
|
|
|
sub register_insert { |
sub register_insert { |
my @data = split /\n/, &Apache::lonnet::getfile('/home/httpd/lonTabs/insertlist.tab'); |
my @data = split /\n/, &Apache::lonnet::getfile('/home/httpd/lonTabs/insertlist.tab'); |
my $i; |
my $i; |
|
my $tagnum=0; |
my @order; |
my @order; |
for ($i=0;$i < $#data; $i++) { |
for ($i=0;$i < $#data; $i++) { |
my $line = $data[$i]; |
my $line = $data[$i]; |
if ( $line =~ /^\#/ || $line =~ /^\s*\n/) { next; } |
if ( $line =~ /^\#/ || $line =~ /^\s*\n/) { next; } |
if ( $line =~ /TABLE/ ) { last; } |
if ( $line =~ /TABLE/ ) { last; } |
my ($tag,$descrip,$function,$show) = split(/,/, $line); |
my ($tag,$descrip,$function,$show) = split(/,/, $line); |
if ($show eq 'no') { next; } |
$insertlist{"$tagnum.tag"} = $tag; |
$insertlist{"$tag.description"} = $descrip; |
$insertlist{"$tagnum.description"} = $descrip; |
$insertlist{"$tag.function"} = $function; |
$insertlist{"$tagnum.function"} = $function; |
push (@order,$tag); |
$insertlist{"$tagnum.show"}= $show; |
|
$tagnum++; |
} |
} |
|
$i++; #skipping TABLE line |
|
$tagnum = 0; |
for (;$i < $#data;$i++) { |
for (;$i < $#data;$i++) { |
my $line = $data[$i]; |
my $line = $data[$i]; |
my ($tag,@which) = split(/ +/,$line); |
my ($mnemonic,@which) = split(/ +/,$line); |
|
my $tag = $insertlist{"$tagnum.tag"}; |
for (my $j=0;$j <$#which;$j++) { |
for (my $j=0;$j <$#which;$j++) { |
if ( $which[$j] eq 'Y' ) { |
if ( $which[$j] eq 'Y' ) { |
push(@{ $insertlist{"$tag.which"} },$order[$j]); |
if ($insertlist{"$j.show"} ne 'no') { |
|
push(@{ $insertlist{"$tag.which"} },$j); |
|
} |
} |
} |
} |
} |
|
$tagnum++; |
} |
} |
} |
} |
1; |
1; |