X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/dc128dd829bfd08dba5d6929956d9064e7d37b81..36518a3a1110eed1d115a798048a9d8bb84b5517:/IkiWiki/Setup/Yaml.pm diff --git a/IkiWiki/Setup/Yaml.pm b/IkiWiki/Setup/Yaml.pm index 0fc273675..6bf20f480 100644 --- a/IkiWiki/Setup/Yaml.pm +++ b/IkiWiki/Setup/Yaml.pm @@ -5,22 +5,20 @@ package IkiWiki::Setup::Yaml; use warnings; use strict; use IkiWiki; +use Encode; sub loaddump ($$) { my $class=shift; my $content=shift; - eval q{use YAML}; + eval q{use YAML::XS}; die $@ if $@; - IkiWiki::Setup::merge(Load($content)); + IkiWiki::Setup::merge(Load(encode_utf8($content))); } sub gendump ($@) { my $class=shift; - eval q{use YAML}; - die $@ if $@; - "# IkiWiki::Setup::Yaml - YAML formatted setup file", "#", (map { "# $_" } @_), @@ -35,8 +33,12 @@ sub dumpline ($$$$) { my $type=shift; my $prefix=shift; - $YAML::UseHeader=0; - my $dump=Dump({$key => $value}); + eval q{use YAML::XS}; + die $@ if $@; + $YAML::XS::QuoteNumericStrings=0; + + my $dump=decode_utf8(Dump({$key => $value})); + $dump=~s/^---\n//; # yaml header, we don't want chomp $dump; if (length $prefix) { $dump=join("\n", map { $prefix.$_ } split(/\n/, $dump));