From bba513a3e52170dc06b545a44f2d859ae4b757b5 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 19 Mar 2010 15:50:59 -0400 Subject: Add support for setup files written in YAML. Not the default. (Yet?) --- IkiWiki/Setup/Yaml.pm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 IkiWiki/Setup/Yaml.pm (limited to 'IkiWiki/Setup') diff --git a/IkiWiki/Setup/Yaml.pm b/IkiWiki/Setup/Yaml.pm new file mode 100644 index 000000000..ba9192faf --- /dev/null +++ b/IkiWiki/Setup/Yaml.pm @@ -0,0 +1,43 @@ +#!/usr/bin/perl + +package IkiWiki::Setup::Yaml; + +use warnings; +use strict; +use IkiWiki; +use YAML; + +sub loaddump ($$) { + my $class=shift; + my $content=shift; + + IkiWiki::Setup::merge(Load($content)); +} + +sub gendump ($@) { + my $class=shift; + + "# IkiWiki::Setup::Yaml - YAML formatted setup file", + "#", + (map { "# $_" } @_), + "#", + IkiWiki::Setup::commented_dump(\&dumpline, "") +} + + +sub dumpline ($$$$) { + my $key=shift; + my $value=shift; + my $type=shift; + my $prefix=shift; + + $YAML::UseHeader=0; + my $dump=Dump({$key => $value}); + chomp $dump; + if (length $prefix) { + $dump=join("", map { $prefix.$_ } split(/\n/, $dump)); + } + return $dump; +} + +1 -- cgit v1.2.3