my ($filename) = @_;
my @data = eval {
open my $cache, '<:raw', "data/$filename.json"
- or return do "$filename.inc.pl"; # silent fallback to original code
+ or return do "./$filename.inc.pl"; # silent fallback to original code
require JSON;
local $/; # slurp
return JSON::decode_json(readline $cache);
# default fallbacks
$meta->{stylesheet} ||= [qw( light dark circus mono red )];
$meta->{charset} ||= 'utf-8';
+ $meta->{lang} ||= 'en';
# convert options to arrays
ref $_ eq 'ARRAY' or $_ = [$_]
PLP_START {
# leading output
say '<!DOCTYPE html>';
- say '<html lang="en">';
+ say qq(<html lang="$meta->{lang}">);
say '';
say '<head>';
say sprintf '<meta http-equiv="content-type" content="%s">', $_
sub showlink {
my ($title, $href, $selected) = @_;
- return sprintf(
- !$href ? '%s' :
- $selected ? '<strong>%s</strong>' : '<a href="%2$s">%s</a>',
- EscapeHTML($title), EscapeHTML($href)
- );
+ EscapeHTML($title);
+ return $title if not $href;
+ return "<strong>$title</strong>" if $selected;
+ return sprintf '<a href="%s">%s</a>', EscapeHTML($href), $title;
}