| #!/usr/bin/env perl |
| use strict; |
| use warnings; |
| |
| my $stage = 0; |
| my $example = 0; |
| my @match; |
| my $section = ""; |
| |
| while (<STDIN>) { |
| if (/^\.$/) { |
| if ($stage == 0) { |
| $example++; |
| print "\n<div class=\"example\" id=\"example-$example\" data-section=\"$section\">\n"; |
| print "<div class=\"examplenum\"><a href=\"#example-$example\">Example $example</a> <a class=\"dingus\" title=\"open in interactive dingus\">(interact)</a></div>\n\n"; |
| print "````````````````````````````````````````````````````````` markdown\n"; |
| } elsif ($stage == 1) { |
| print "`````````````````````````````````````````````````````````\n\n"; |
| print "````````````````````````````````````````````````````````` html\n"; |
| } elsif ($stage == 2) { |
| print "`````````````````````````````````````````````````````````\n\n"; |
| print "</div>\n\n"; |
| } else { |
| die "Encountered unknown stage $stage"; |
| } |
| $stage = ($stage + 1) % 3; |
| } else { |
| if ($stage == 0 && (@match = ($_ =~ /^#{1,6} *(.*)/))) { |
| $section = $match[0]; |
| } |
| if ($stage != 0) { |
| $_ =~ s/ /␣/g; |
| } |
| print $_; |
| } |
| } |