X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/040038b6559140b4a8c04396098ade2b4d4573b9..e07338bc0657c08d2358952c1dbc7b4c1b10d5d5:/IkiWiki.pm
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 799236f35..8a66dcedb 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -237,8 +237,8 @@ sub getsetup () {
html5 => {
type => "boolean",
default => 0,
- description => "generate HTML5? (experimental)",
- advanced => 1,
+ description => "generate HTML5?",
+ advanced => 0,
safe => 1,
rebuild => 1,
},
@@ -336,6 +336,14 @@ sub getsetup () {
safe => 0, # paranoia
rebuild => 0,
},
+ timezone => {
+ type => "string",
+ default => "",
+ example => "US/Eastern",
+ description => "time zone name",
+ safe => 1,
+ rebuild => 1,
+ },
include => {
type => "string",
default => undef,
@@ -477,7 +485,7 @@ sub getsetup () {
},
setuptype => {
type => "internal",
- default => "Standard",
+ default => "Yaml",
description => "perl class to use to dump setup file",
safe => 0,
rebuild => 0,
@@ -497,7 +505,6 @@ sub defaultconfig () {
foreach my $key (keys %s) {
push @ret, $key, $s{$key}->{default};
}
- use Data::Dumper;
return @ret;
}
@@ -529,6 +536,12 @@ sub checkconfig () {
$ENV{$val}=$config{ENV}{$val};
}
}
+ if (defined $config{timezone} && length $config{timezone}) {
+ $ENV{TZ}=$config{timezone};
+ }
+ else {
+ $config{timezone}=$ENV{TZ};
+ }
if ($config{w3mmode}) {
eval q{use Cwd q{abs_path}};
@@ -810,17 +823,23 @@ sub srcfile ($;$) {
return (srcfile_stat(@_))[0];
}
-sub add_underlay ($) {
+sub add_literal_underlay ($) {
my $dir=shift;
- if ($dir !~ /^\//) {
- $dir="$config{underlaydirbase}/$dir";
- }
-
if (! grep { $_ eq $dir } @{$config{underlaydirs}}) {
unshift @{$config{underlaydirs}}, $dir;
}
+}
+sub add_underlay ($) {
+ my $dir = shift;
+
+ if ($dir !~ /^\//) {
+ $dir="$config{underlaydirbase}/$dir";
+ }
+
+ add_literal_underlay($dir);
+ # why does it return 1? we just don't know
return 1;
}
@@ -1007,7 +1026,7 @@ sub bestlink ($$) {
sub isinlinableimage ($) {
my $file=shift;
- return $file =~ /\.(png|gif|jpg|jpeg)$/i;
+ return $file =~ /\.(png|gif|jpg|jpeg|svg)$/i;
}
sub pagetitle ($;$) {
@@ -1162,7 +1181,7 @@ sub urlto ($;$$) {
}
if (! defined $from) {
- my $u = $local_url;
+ my $u = $local_url || '';
$u =~ s{/$}{};
return $u.beautify_urlpath("/".$to);
}
@@ -1218,7 +1237,7 @@ sub htmllink ($$$;@) {
$cgilink = " "create",
- page => lc($link),
+ page => $link,
from => $lpage
)."\" rel=\"nofollow\">?";
}
@@ -1373,10 +1392,14 @@ sub preprocess ($$$;$$) {
|
"([^"]*?)" # 3: single-quoted value
|
- (\S+) # 4: unquoted value
+ '''(.*?)''' # 4: triple-single-quote
+ |
+ <<(?[a-zA-Z]+)\n(?.*?)\n\k # 5, 6: heredoc'd value.
+ |
+ (\S+) # 7: unquoted value
)
(?:\s+|$) # delimiter to next param
- }sgx) {
+ }msgx) {
my $key=$1;
my $val;
if (defined $2) {
@@ -1391,6 +1414,12 @@ sub preprocess ($$$;$$) {
elsif (defined $4) {
$val=$4;
}
+ elsif (defined $7) {
+ $val=$7;
+ }
+ elsif (defined $+{heredoc}) {
+ $val=$+{heredoc};
+ }
if (defined $key) {
push @params, $key, $val;
@@ -1459,6 +1488,10 @@ sub preprocess ($$$;$$) {
|
"[^"]*?" # single-quoted value
|
+ <<(?[a-zA-Z]+)\n(?.*?)\n\k # heredoc'd value.
+ |
+ '''.*?''' # triple-single-quoted value
+ |
[^"\s\]]+ # unquoted value
)
\s* # whitespace or end
@@ -1482,6 +1515,10 @@ sub preprocess ($$$;$$) {
|
"[^"]*?" # single-quoted value
|
+ '''.*?''' # triple-single-quoted value
+ |
+ <<(?[a-zA-Z]+)\n(?.*?)\n\k # heredoc'd value.
+ |
[^"\s\]]+ # unquoted value
)
\s* # whitespace or end