  

#!/usr/bin/perl

$/="\n%%slide"; # Brug %%slide som record separator
# Lav oversættelse af < og > til HTML
%than=("<" => "&lt;", ">" => "&gt;" );

while(<>) {	# For hver %%slide gør:
    my @HTML; # Ny HTML-side
    for (split(/\n+/,$_)) { # Split record til linier
	# for hver linie gør:
	s/(<|>)/$than{$1}/g; # Udskift < og > med HTML
	/^%%/ && next; # Spring over linier, der starter med %%
	/^\s*$/ && next; # Spring over tomme linier
	# Linier startende med '*' skal have <H2>
	/^\*/ && do { push(@HTML,"<H2>",$_,"</H2>"); next; };
	# Linier startende med '  -' skal have <UL><H3>
	/^  \-/ && do { push(@HTML,"<UL><H3>",$_,"</H3></UL>"); next; };
	# Linier startende med '    +' skal have <UL><UL><H4>
	/^    \+/ && 
	    do { push(@HTML,"<UL><UL><H4>",$_,"</H4></UL></UL>"); next; };
	# Linier startende med non-space (slide overskrift) skal centreres
	/^\S/ && do { push(@HTML,"<H1><CENTER>",$_,"</CENTER></H1>"); next; };

	# Alle andre linier (Perl-kode) PRE-formatteres
	{ push(@HTML,"<PRE>",$_,"\n</PRE>"); next; };
    }
    $slide++; # Tæl slidenr op
    open(FH,">slide.${slide}.html") || die; # Åbn en html-fil
    print FH "<HTML>",@HTML,"</HTML>"; # Skriv @HTML til filen
    close FH;
}
