X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/78c750f2d28f23e7cfc56890999bcd313cf711c7..358aeb9ceda825cef03dbd1c09a633096e42349b:/IkiWiki.pm diff --git a/IkiWiki.pm b/IkiWiki.pm index 1c05a7aa5..8136a7c4b 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -485,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, @@ -505,7 +505,6 @@ sub defaultconfig () { foreach my $key (keys %s) { push @ret, $key, $s{$key}->{default}; } - use Data::Dumper; return @ret; } @@ -1393,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) { @@ -1411,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; @@ -1479,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 @@ -1502,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