]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki.pm
refactor
[git.ikiwiki.info.git] / IkiWiki.pm
index 1c05a7aa55215d638400831066b1ee17496b15b9..8136a7c4b67cff3ead2bae127b8020559111e132 100644 (file)
@@ -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
+                               |
+                                       <<(?<start>[a-zA-Z]+)\n(?<heredoc>.*?)\n\k<start> # 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
                                                |
+                                               <<(?<start>[a-zA-Z]+)\n(?<heredoc>.*?)\n\k<start> # 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
+                                               |
+                                               <<(?<start>[a-zA-Z]+)\n(?<heredoc>.*?)\n\k<start> # heredoc'd value.
+                                               |
                                                [^"\s\]]+       # unquoted value
                                        )
                                        \s*                     # whitespace or end