Html({
title => "$source source code",
- version => '1.3',
+ version => '1.4',
description => !$source ? 'Index of source files for this site.' : [
"Source code of the $source file at this site,",
"with syntax highlighted and references linked."
keywords => [qw'
sheet cheat source code perl plp html agpl
'],
- stylesheet => [qw'light dark mono red'],
data => [$source =~ m{\A($incname)\z}],
});
exit;
}
-e or mkdir for $cachefile =~ s{[^/]+\z}{}r; # dirname
- open my $cache, '>', $cachefile
- or Alert("Could not save cache", "Opening $cachefile failed: $!");;
if (my $hl = eval {
$size < 32_768 or die 'large files take too long to parse';
Todo => 'em',
PreProc => 'strong',
);
+ open my $cache, '>', $cachefile
+ or Alert("Could not save cache", "Opening $cachefile failed: $!");;
say '<pre>';
foreach (@{$hl}) {
$line =~ s{ ^(['"]?) \K ($incname) (?=\1$) }{ showlink($2, "/source/$2") }xe
if !$type || $type eq 'Constant';
# link relative page locations in html output
- $line =~ s{ ^(")\K (/\w+) (?= (?:/\w+)* \1$) }{ showlink($2, "/source$2.plp") }xe
+ $line =~ s{ ^(")\K (/\w{2,}) (?= (?:/\w+)* \1$) }{ showlink($2, "/source$2.plp") }xe
if $type && $type eq 'Constant';
# link perl module names (Xx::Xx...)
$line =~ s{ ^\s* \K ([A-Z]\w+(?:::\w+)+) (?![^;\s]) }{ showlink($1, "/source/$1") }xe
say '</pre>';
}
else {
+ warn $@ if $@;
say '<pre>';
print EscapeHTML(decode_utf8(ReadFile($path)));
say '</pre>';