[LON-CAPA-cvs] cvs: modules /gerd/chm translate.pl
www
lon-capa-cvs-allow@mail.lon-capa.org
Wed, 11 Apr 2007 16:13:17 -0000
www Wed Apr 11 12:13:17 2007 EDT
Modified files:
/modules/gerd/chm translate.pl
Log:
Appears to be working.
Index: modules/gerd/chm/translate.pl
diff -u modules/gerd/chm/translate.pl:1.2 modules/gerd/chm/translate.pl:1.3
--- modules/gerd/chm/translate.pl:1.2 Wed Apr 11 10:40:37 2007
+++ modules/gerd/chm/translate.pl Wed Apr 11 12:13:17 2007
@@ -12,13 +12,15 @@
$topic=~s/\_/ /g;
($subtopic)=($line=~/\s+ST\:\s(.+)$/);
$intermediate='';
+ undef(%foilvalue);
next;
}
if ($line=~/^\s+Date\(s\)\:\s+(.+)$/) {
$prevsem=$1;
if ($intable) {
- $intermediate.="</tr>\n</table>\n";
+ $intermediate.="</td></tr>\n</table>\n";
}
+ $intermediate=~s/\<tr\>\s*\<td\>\s*\<\/td\>\s*\<\/tr\>//gs;
$question=$intermediate;
next;
}
@@ -51,6 +53,14 @@
$image=$1;
next;
}
+ if ($line=~/([A-Z])\.\s+\[([^\]]+)\]\s*\([^\)]+\)(.*)$/) {
+ $letter=$1;
+ $correct=$2;
+ $text=$3;
+ if ($correct=~/x/) { $foilvalue{$letter}='true'; } else { $foilvalue{$letter}='false'; }
+ $text=~s/^\s+//;
+ $foiltext{$letter}=$text;
+ }
$intable=0;
foreach $subline (split(/\<RET\>/,$line)) {
unless ($subline=~/\w/) { next; }
@@ -63,8 +73,8 @@
$intable=0;
}
if ($intable) {
- $subline=~s/\t/\<\/td\>\<td\>/gs;
- $subline.="</td></tr>\n<tr>";
+ $subline=~s/\t+/\<\/td\>\<td\>/gs;
+ $subline.="</td></tr>\n<tr><td>";
} else {
$subline.="<br />\n";
}
@@ -92,5 +102,17 @@
if ($reference) { print OUT "<meta name='reference' content='$reference' />\n" };
if ($image) { print OUT "<img src='$image' />\n"; }
print OUT "<startouttext />$question<endouttext />\n";
+ print OUT "<radiobuttonresponse randomize='no'>\n<foilgroup>\n";
+ foreach $letter (A..Z) {
+ if ($foilvalue{$letter}) {
+ if ($foiltext{$letter}=~/\w/) {
+ $text=$foiltext{$letter};
+ } else {
+ $text=$letter;
+ }
+ print OUT "<foil name='foil$letter' value='$foilvalue{$letter}'>\n<startouttext />$text<endouttext />\n</foil>\n";
+ }
+ }
+ print OUT "</foilgroup>\n</radiobuttonresponse>\n";
print OUT "</problem>\n";
}