Fix generated HTML: proper !DOCTYPE, head, body, p.
Fix request parsing, so empty requests are properly ignored.
This commit is contained in:
parent
d368e696c0
commit
a09d36121f
2 changed files with 33 additions and 10 deletions
|
@ -6,12 +6,16 @@ use warnings;
|
||||||
my $esc="\\";
|
my $esc="\\";
|
||||||
my @a;
|
my @a;
|
||||||
|
|
||||||
|
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n";
|
||||||
|
print " \"http://www.w3.org/TR/html4/strict.dtd\">\n";
|
||||||
|
print "<html>\n";
|
||||||
|
print "<head>\n";
|
||||||
|
|
||||||
line: while (<>) {
|
line: while (<>) {
|
||||||
chomp; # strip record separator
|
chomp; # strip record separator
|
||||||
s/([^\\](\\\\)*)\\\".*/$1/g; # strip comments
|
s/([^\\](\\\\)*)\\\".*/$1/g; # strip comments
|
||||||
|
|
||||||
@a = req($_);
|
@a = req($_);
|
||||||
|
|
||||||
if (!@a) {
|
if (!@a) {
|
||||||
print htmlify($_), "\n";
|
print htmlify($_), "\n";
|
||||||
next line;
|
next line;
|
||||||
|
@ -22,7 +26,11 @@ line: while (<>) {
|
||||||
if ($a[1] eq "TH") {
|
if ($a[1] eq "TH") {
|
||||||
@a = checkarg(2, @a);
|
@a = checkarg(2, @a);
|
||||||
$a[3] = htmlify($a[3]);
|
$a[3] = htmlify($a[3]);
|
||||||
print "<title>$a[2] : $a[3]</title><h1>$a[2] : $a[3]</h1>\n";
|
print "<title>$a[2] : $a[3]</title>\n";
|
||||||
|
print "</head>\n";
|
||||||
|
print "<body>\n";
|
||||||
|
print "<h1>$a[2] : $a[3]</h1>\n";
|
||||||
|
print "<p>\n";
|
||||||
next line;
|
next line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,6 +51,7 @@ line: while (<>) {
|
||||||
@a = checkarg(1, @a);
|
@a = checkarg(1, @a);
|
||||||
$a[2] = htmlify($a[2]);
|
$a[2] = htmlify($a[2]);
|
||||||
print "<h2>$a[2]</h2>\n";
|
print "<h2>$a[2]</h2>\n";
|
||||||
|
print "<p>\n";
|
||||||
next line;
|
next line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,7 +60,7 @@ line: while (<>) {
|
||||||
|
|
||||||
if ($a[1] =~ /NF|nf/i) { printf (("<p><pre>\n")); next line; }
|
if ($a[1] =~ /NF|nf/i) { printf (("<p><pre>\n")); next line; }
|
||||||
if ($a[1] =~ /FI|fi/i) { printf (("</pre><p>\n")); next line; }
|
if ($a[1] =~ /FI|fi/i) { printf (("</pre><p>\n")); next line; }
|
||||||
if ($a[1] eq "s1") { printf (("<hr> \n")); next line; }
|
if ($a[1] eq "s1") { printf (("<hr><p>\n")); next line; }
|
||||||
if ($a[1] eq "br") { printf "<br>\n"; next line; }
|
if ($a[1] eq "br") { printf "<br>\n"; next line; }
|
||||||
|
|
||||||
if ($a[1] eq "SA") {
|
if ($a[1] eq "SA") {
|
||||||
|
@ -66,12 +75,15 @@ line: while (<>) {
|
||||||
# ignore unknown request
|
# ignore unknown request
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "</body>\n";
|
||||||
|
print "</html>\n";
|
||||||
|
|
||||||
sub req {
|
sub req {
|
||||||
local ($_) = @_;
|
local ($_) = @_;
|
||||||
if (/^([\.\'])[ \t]*([^ ]+) *(.*)/) {
|
if (/^([\.\'])[ \t]*([^ ]*) *(.*)/) {
|
||||||
my @a = ($1, $2);
|
my @a = ($1, $2);
|
||||||
$_ = $3;
|
$_ = $3;
|
||||||
while (/(\"((\\.|[^\\\"])*)(\"|\Z))|(([^ ]|\\.)+) */g) {
|
while (/\G(\"((\\.|[^\\\"])*)(\"|\Z))|\G(([^ ]|\\.)+) */g) {
|
||||||
push(@a, $2 || $5);
|
push(@a, $2 || $5);
|
||||||
}
|
}
|
||||||
return @a;
|
return @a;
|
||||||
|
|
|
@ -7,12 +7,16 @@ my $dome = 0;
|
||||||
my $esc="\\";
|
my $esc="\\";
|
||||||
my @a;
|
my @a;
|
||||||
|
|
||||||
|
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n";
|
||||||
|
print " \"http://www.w3.org/TR/html4/strict.dtd\">\n";
|
||||||
|
print "<html>\n";
|
||||||
|
print "<head>\n";
|
||||||
|
|
||||||
line: while (<>) {
|
line: while (<>) {
|
||||||
chomp; # strip record separator
|
chomp; # strip record separator
|
||||||
s/([^\\](\\\\)*)\\\".*/$1/g; # strip comments
|
s/([^\\](\\\\)*)\\\".*/$1/g; # strip comments
|
||||||
|
|
||||||
@a = req($_);
|
@a = req($_);
|
||||||
|
|
||||||
if (!@a) {
|
if (!@a) {
|
||||||
if ($dome) {
|
if ($dome) {
|
||||||
while ($_ =~ /[A-Za-z0-9\-\.]+/g) {
|
while ($_ =~ /[A-Za-z0-9\-\.]+/g) {
|
||||||
|
@ -30,7 +34,11 @@ line: while (<>) {
|
||||||
if ($a[1] eq "TH") {
|
if ($a[1] eq "TH") {
|
||||||
@a = checkarg(2, @a);
|
@a = checkarg(2, @a);
|
||||||
$a[3] = htmlify($a[3]);
|
$a[3] = htmlify($a[3]);
|
||||||
print "<title>$a[2] : $a[3]</title><h1>$a[2] : $a[3]</h1>\n";
|
print "<title>$a[2] : $a[3]</title>\n";
|
||||||
|
print "</head>\n";
|
||||||
|
print "<body>\n";
|
||||||
|
print "<h1>$a[2] : $a[3]</h1>\n";
|
||||||
|
print "<p>\n";
|
||||||
next line;
|
next line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +66,7 @@ line: while (<>) {
|
||||||
|
|
||||||
if ($a[1] =~ /NF|nf/i) { $dome = 1; printf (("<p><pre>\n")); next line; }
|
if ($a[1] =~ /NF|nf/i) { $dome = 1; printf (("<p><pre>\n")); next line; }
|
||||||
if ($a[1] =~ /FI|fi/i) { $dome = 0; printf (("</pre><p>\n")); next line; }
|
if ($a[1] =~ /FI|fi/i) { $dome = 0; printf (("</pre><p>\n")); next line; }
|
||||||
if ($a[1] eq "s1") { printf (("<hr> \n")); next line; }
|
if ($a[1] eq "s1") { printf (("<hr><p>\n")); next line; }
|
||||||
if ($a[1] eq "br") { printf "<br>\n"; next line; }
|
if ($a[1] eq "br") { printf "<br>\n"; next line; }
|
||||||
|
|
||||||
if ($a[1] eq "SA") {
|
if ($a[1] eq "SA") {
|
||||||
|
@ -73,12 +81,15 @@ line: while (<>) {
|
||||||
# ignore unknown request
|
# ignore unknown request
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "</body>\n";
|
||||||
|
print "</html>\n";
|
||||||
|
|
||||||
sub req {
|
sub req {
|
||||||
local ($_) = @_;
|
local ($_) = @_;
|
||||||
if (/^([\.\'])[ \t]*([^ ]+) *(.*)/) {
|
if (/^([\.\'])[ \t]*([^ ]*) *(.*)/) {
|
||||||
my @a = ($1, $2);
|
my @a = ($1, $2);
|
||||||
$_ = $3;
|
$_ = $3;
|
||||||
while (/(\"((\\.|[^\\\"])*)(\"|\Z))|(([^ ]|\\.)+) */g) {
|
while (/\G(\"((\\.|[^\\\"])*)(\"|\Z))|\G(([^ ]|\\.)+) */g) {
|
||||||
push(@a, $2 || $5);
|
push(@a, $2 || $5);
|
||||||
}
|
}
|
||||||
return @a;
|
return @a;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue