fixed a bug (last item not displayed)
[lectures/dfb-slides.git] / parse.pl
1 #!/usr/bin/perl
2
3 @content=<STDIN>;
4 chomp @content;
5
6 @slide=();
7
8 @actions=( "",
9                             "slide top",
10                                 "slide top right",
11                                 "slide top left",
12                                 "slide bottom",
13                                 "slide bottom left",
14                                 "slide bottom right",
15                                 "slide left",
16                                 "slide right");
17
18 print "<?xml version='1.0' encoding='iso-8859-1'?>\n";
19 print "<slides bgcolor=\"#222266\" fgcolor=\"#9999ff\" 
20         face=\"../ttf/decker.ttf\" size=\"15\"
21         bullet=\"../img/bullet.png\"
22         screen_width=\"1024\" screen_height=\"768\">\n";
23
24 @topics=();
25
26 foreach(@content) {
27         if((/^\d/) or (/^ \d/)) {
28                 push(@topics,$_);
29                 #print STDERR "$_\n";
30         }
31 }
32
33 $topic=0;
34
35 push(@content," 23");
36
37 foreach(@content) {
38         s/\#.*//;
39         s/&/&amp;/g;
40         s/</&lt;/;
41         s/>/&gt;/;
42         
43         #s/ue/ü/g;
44         #s/ae/ä/g;
45         #s/oe/ö/g;
46         
47         s/Ue/Ü/g;
48         s/Ae/Ä/g;
49         s/Oe/Ö/g;
50         # unterpunkt
51         if(/^ \d/) {
52                 if(@slide) {
53                         print "<slide>\n";
54                         print STDERR "$topics[$topic]\n";
55                         print "<header size=\"20\" fgcolor=\"#22FF22\">$topics[$topic]</header>\n<text></text>\n";
56                         foreach(@slide) {
57                                 if(/^  \+ /) {
58                                         s/\+//;
59                                         print "<text></text>\n<listitem fgcolor=\"#ff00cc\" size=\"20\">$_</listitem>\n";
60                                 }
61                                 elsif(/ \+ /) {
62                                         s/\+//;
63                                         print "<text></text>\n<listitem size=\"20\">$_</listitem>\n";
64                                 }
65                                 else {
66                                         print "<text>$_</text>\n";
67                                 }
68                         }
69                         print "</slide>\n\n";
70                         #$topic++;
71                 }
72                 @slide=();
73                 $topic++;
74                 $_=$topics[$topic];
75                 if(/^\d/) {
76                         $topic++;
77                 }
78         }
79         # ueberpunkt
80         elsif (/^\d/) {
81                 
82         }
83         # normaler content
84         else {
85                 push(@slide,$_);
86         }
87 }
88
89 print "</slides>\n";