jaja
[lectures/dfb-slides.git] / parse.pl
index e071258..ba97090 100755 (executable)
--- a/parse.pl
+++ b/parse.pl
@@ -4,8 +4,10 @@
 chomp @content;
 
 @slide=();
+@topics=();
 
-@actions=( "slide top",
+@actions=( "",
+                           "slide top",
                                "slide top right",
                                "slide top left",
                                "slide bottom",
@@ -15,15 +17,44 @@ chomp @content;
                                "slide right");
 
 print "<?xml version='1.0' encoding='iso-8859-1'?>\n";
-print "<slides bgcolor=\"#222266\" fgcolor=\"#9999ff\" 
+print "\n<slides bgcolor=\"#000000\" fgcolor=\"#ffffff\" 
         face=\"../ttf/decker.ttf\" size=\"15\"
         bullet=\"../img/bullet.png\"
         screen_width=\"1024\" screen_height=\"768\">\n";
 
+open(IN,"../head2xml header|") or die "no head2xml / header!!\n";
+while(<IN>) {
+       print $_;
+}
+close(IN);
+
+foreach(@content) {
+       if((/^\d/) or (/^ \d/)) {
+               push(@topics,$_);
+       }
+}
+
+print "\n<slide effect=\"slide top left, blend\">\n";
+print "<header size=\"20\" fgcolor=\"#00FF00\">Inhalt</header>\n<text></text>\n";
+foreach(@topics) {
+       if(/^\d/) {
+               print "<text></text>\n";
+               $add="fgcolor=\"#FF0000\"";
+       }
+       else {
+               $add="";
+       }
+       print "<text $add>$_</text>\n";
+}
+print "</slide>\n\n";
+
+$topic=0;
+
 push(@content," 23");
 
 foreach(@content) {
        s/\#.*//;
+       if(not /^\s+$/) {
        s/&/&amp;/g;
        s/</&lt;/;
        s/>/&gt;/;
@@ -38,13 +69,27 @@ foreach(@content) {
        # unterpunkt
        if(/^ \d/) {
                if(@slide) {
-                       print "<slide>\n";
-                       pop(@slide);
-                       print "<header size=\"20\" fgcolor=\"#22FF22\">$topic</header>\n<text></text>\n";
+                       $action=$actions[int(rand($#actions))];
+                       if(length($action)>0) {
+                               if(int(rand(2))==1) {
+                                       $action.=", blend";
+                               }
+                       }
+                       else {
+                               if(int(rand(2))==1) {
+                                       $action.="blend";
+                               }
+                       }
+                       if(length($action)>0) {
+                               $action=" effect=\"$action\"";
+                       }
+                       print "<slide$action>\n";
+                       print STDERR "$topics[$topic] $action\n";
+                       print "<header size=\"20\" fgcolor=\"#00FF00\">$topics[$topic]</header>\n<text></text>\n";
                        foreach(@slide) {
                                if(/^  \+ /) {
                                        s/\+//;
-                                       print "<text></text>\n<listitem fgcolor=\"#ff00cc\" size=\"20\">$_</listitem>\n";
+                                       print "<text></text>\n<listitem fgcolor=\"#0000FF\" size=\"20\">$_</listitem>\n";
                                }
                                elsif(/ \+ /) {
                                        s/\+//;
@@ -55,19 +100,24 @@ foreach(@content) {
                                }
                        }
                        print "</slide>\n\n";
+                       #$topic++;
                }
                @slide=();
-               #push(@slide,$_);
-               $topic=$_;
+               $topic++;
+               $_=$topics[$topic];
+               if(/^\d/) {
+                       $topic++;
+               }
        }
        # ueberpunkt
        elsif (/^\d/) {
-               #$topic=$_;
+               
        }
        # normaler content
        else {
                push(@slide,$_);
        }
 }
+}
 
 print "</slides>\n";
\ No newline at end of file