\E}{
}gs; + if (($target eq 'tex') || ($target eq 'tex_answer')) { + $output =~ s/^([^&]+)\\begin\{document}//; + $output =~ s/\\end\{document}//; +# $output = '\parbox{\minipagewidth}{ '.$output.' }'; #some additional cleanup necessary for LateX (due to limitations of table environment $output =~ s/(\\vskip\s*\d+mm)\s*(\\\\)+/$1/g; } + my $matheditor; + if ($output =~ /\Qjavascript:LC_mathedit_HWVAL_\E/) { + $matheditor = 'dragmath'; + } elsif ($output =~ /LCmathField/) { + $matheditor = 'lcmath'; + } my $parser=HTML::TokeParser->new(\$output); my $token; my $thisdir=$src; my $bodydef=0; my $thisxml=0; my @rlinks=(); + my @css_hrefs=(); if ($output=~/\?xml/) { $isxml=1; $thisxml=1; @@ -323,6 +487,14 @@ sub handler { ($bodydef==0)) { $allscript.="\n\n" .$parser->get_text('/script'); + } elsif (($token->[1] eq 'link') && + ($bodydef==0)) { + if (($token->[2]->{'href'} !~ m{^/adm/}) && + ($token->[2]->{'rel'} eq 'stylesheet')) { + $css_hrefs[$#css_hrefs+1]= + $token->[2]->{'href'}; + + } } } } @@ -331,15 +503,156 @@ sub handler { } $output=~s/\<\/body\>.*//si; if ($output=~/\
]*\>//gsi; $output=~s/\<\/form[^\>]*\>//gsi; + if ($output=~/\]+name\s*=\s*[\'\"]*HWFILE/) { + $nuploads++; + } + if ($output=~/\]+name\s*=\s*[\'\"]*accessbutton/) { + $ntimers++; + $hastimer = 1; + } + unless ($hasnumresp) { + if ($output=~/\]+class\s*=\s*['"]*[^'">]*LC_numresponse_text\W/) { + $hasnumresp = 1; + } + } $output=~ s/\<((?:input|select|button|textarea)[^\>]+)name\s*\=\s*[\'\"]*([^\'\"]+)[\'\"]*([^\>]*)\>/\<$1 name="$prefix$2" $3\>/gsi; + $output=~ + s/\<((?:input|select|button|textarea)[^\>]+)id\s*\=\s*[\'\"]*([^\'\"]+)[\'\"]*([^\>]*)\>/\<$1 id="$idprefix$2" $3\>/gsi; + $output=~ + s/(\Qthis.form.elements['\E)(HW(?:VAL|CHK)_[^']+\'\]\.(?:value=\'|checked))/$1$prefix$2/gsi; + if ($hastimer) { + $output=~ + s/\<(input[^\>]+name=\Q"$prefix\Eaccessbutton"[^\>]+)(?:\Qdocument.markaccess.submit();\E)([^\>]*)\>/\<$1pageTimer(this.form,'$prefix')$2\>/gsi; + $output=~ s/\<(input[^\>]+name=\Q"$prefix\Emarkaccess"[^\>]+value=["'])(?:yes)(['"][^\>]*)\>/\<$1$2\>/gsi; + } + if ($matheditor eq 'dragmath') { + $output=~ + s/(\Qjavascript:LC_mathedit_\E)(HWVAL_)([^'"]+?)(\(['"]*)(\QHWVAL_\E\3['"]\)\;void\(0\)\;)/$1$idprefix$2$3$4$idprefix$5/g; + $output=~ + s/(function\s+LC_mathedit_)(HWVAL_)([^'"]+?)(\s+\(LCtextline\))/$1$idprefix$2$3$4/g; + } elsif ($matheditor eq 'lcmath') { + $output=~ + s/(var\s+LCmathField\s+=\s+document\.getElementById\(['"])([^'"]+?)(['"]\)\;)/$1$idprefix$2$3/g; + } + $output=~ + s/(\Q