App-zen
view release on metacpan or search on metacpan
"--exec SECTION" => [\$opt_exec, 'execute section'],
"--toc" => [\$opt_toc, 'generate toc'],
"--html" => [\$opt_html, 'Set output format for documentation'],
"--latex" => [\$opt_latex, 'Set output format for documentation'],
"--source-map FILENAME" => [\$opt_source_map, 'Generate source map'],
"--top-heading LEVEL" => [\$opt_top_heading, 'Set top level section type: <part|chapter|section>'],
"--document-class CLASS" => [\$opt_document_class, 'Set latex document class'],
"--verbose" => [\$opt_verbose, 'More logging'],
"--output FILENAME" => [\$opt_output_file, 'Set output file'],
"--port PORT:i" => [\$opt_port, 'Start HTTP Server at port'],
"--daemon" => [\$opt_daemon, "Run server in background"],
"--json-dump" => [\$opt_json_dump, 'Dump the document'],
"-x SECTION" => [\$opt_exec, 'short for --exec'],
"-o OUTPUTFILE" => [\$opt_output_file, 'short for --output'],
"-t SECTION" => [\$opt_target, 'short for --target'],
"-s SECTION" => [\$opt_target, 'short for --section'],
"-h" => [\$opt_help, 'Shows help information'],
);
my %optionsSpec = map {
my $k = $_;
$ln++;
}
print $output $_->{text},"\n";
}
}
use Data::Dumper;
sub docgen_html {
my $zf = shift;
my $old = select(shift);
print "<!DOCTYPE HTML>\n\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release\@10.7.3/build/style...
print "<script>";
print "window.zen = ";
print JSON::encode_json({
last_modified => $zf->{last_modified},
size => $zf->{size},
});
print "</script>";
print '<div class="container">';
print '<aside class="col foldable narrow">';
print "\r\n";
print JSON::encode_json(\@contents);
return;
} else {
write_error(400, "Bad parameter: unsupported fmt");
return;
}
}
print "HTTP/1.0 200 OK\r\n\r\n";
print "<!doctype html>\n<html>\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <title>Index</title>\n <style>\n :root {\n --navbar-height: 1.6rem;\n }\...
print "<div class=\"xxpad\"><h1>Index</h1>\n";
print "<table>\n";
print "<thead><tr class=\"sticky-top\"><th>Name</th><th>Size</th><th>Last Modified</th></tr></thead>\n";
for (@contents) {
my $timestr = strftime('%FT%TZ%z', localtime($_->{mtime}));
print "<tr>";
print "<td><a href=\"$_->{name}\">$_->{name}</a></td>";
print "<td class=\"align-right\">$_->{size}</td>";
print "<td>$timestr</td>";
print "</tr>\n";
open FH, "perl ./zen2.pl --html $name|";
while (<FH>) {
print $_;
}
close FH
}
}
my $server = App::zen::WebServer->new($opt_port);
if ($opt_daemon) {
$server->background();
} else {
$server->run();
}
exit;
}
if (scalar @ARGV != 1) {
usage();
}
( run in 1.271 second using v1.01-cache-2.11-cpan-f56aa216473 )