X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/021952969933388021001b259462406cbc94c2a6..1d3b2674c87c9cac395228dac9b60c751d4e06a1:/IkiWiki/Setup/Yaml.pm?ds=sidebyside

diff --git a/IkiWiki/Setup/Yaml.pm b/IkiWiki/Setup/Yaml.pm
index 904784728..6bf20f480 100644
--- a/IkiWiki/Setup/Yaml.pm
+++ b/IkiWiki/Setup/Yaml.pm
@@ -5,16 +5,15 @@ package IkiWiki::Setup::Yaml;
 use warnings;
 use strict;
 use IkiWiki;
+use Encode;
 
 sub loaddump ($$) {
 	my $class=shift;
 	my $content=shift;
 
-	eval q{use YAML::Any};
-	eval q{use YAML} if $@;
+	eval q{use YAML::XS};
 	die $@ if $@;
-	$YAML::Syck::ImplicitUnicode=1;
-	IkiWiki::Setup::merge(Load($content));
+	IkiWiki::Setup::merge(Load(encode_utf8($content)));
 }
 
 sub gendump ($@) {
@@ -34,12 +33,12 @@ sub dumpline ($$$$) {
 	my $type=shift;
 	my $prefix=shift;
 	
-	eval q{use YAML::Old};
-	eval q{use YAML} if $@;
+	eval q{use YAML::XS};
 	die $@ if $@;
-	$YAML::UseHeader=0;
+	$YAML::XS::QuoteNumericStrings=0;
 
-	my $dump=Dump({$key => $value});
+	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));