]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - IkiWiki/Setup/Yaml.pm
slight clarification
[git.ikiwiki.info.git] / IkiWiki / Setup / Yaml.pm
1 #!/usr/bin/perl
3 package IkiWiki::Setup::Yaml;
5 use warnings;
6 use strict;
7 use IkiWiki;
9 sub loaddump ($$) {
10         my $class=shift;
11         my $content=shift;
13         eval q{use YAML::Any};
14         eval q{use YAML} if $@;
15         die $@ if $@;
16         $YAML::Syck::ImplicitUnicode=1;
17         IkiWiki::Setup::merge(Load($content));
18 }
20 sub gendump ($@) {
21         my $class=shift;
22         
23         "# IkiWiki::Setup::Yaml - YAML formatted setup file",
24         "#",
25         (map { "# $_" } @_),
26         "#",
27         IkiWiki::Setup::commented_dump(\&dumpline, "")
28 }
31 sub dumpline ($$$$) {
32         my $key=shift;
33         my $value=shift;
34         my $type=shift;
35         my $prefix=shift;
36         
37         eval q{use YAML::Old};
38         eval q{use YAML} if $@;
39         die $@ if $@;
40         $YAML::UseHeader=0;
42         my $dump=Dump({$key => $value});
43         chomp $dump;
44         if (length $prefix) {
45                 $dump=join("\n", map { $prefix.$_ } split(/\n/, $dump));
46         }
47         return $dump;
48 }
50 1