X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/4b994ffed113aaa4cc4363c34853cab5a13280c4..a12c386c86d000971125d70bf22213fd9595ed45:/IkiWiki/Setup/Standard.pm diff --git a/IkiWiki/Setup/Standard.pm b/IkiWiki/Setup/Standard.pm index 92f887f0c..f7a322317 100644 --- a/IkiWiki/Setup/Standard.pm +++ b/IkiWiki/Setup/Standard.pm @@ -9,11 +9,11 @@ use warnings; use strict; use IkiWiki; -sub import { #{{{ +sub import { IkiWiki::Setup::merge($_[1]); -} #}}} +} -sub dumpline ($$$$) { #{{{ +sub dumpline ($$$$) { my $key=shift; my $value=shift; my $type=shift; @@ -26,6 +26,8 @@ sub dumpline ($$$$) { #{{{ local $Data::Dumper::Pad="\t"; local $Data::Dumper::Sortkeys=1; local $Data::Dumper::Quotekeys=0; + # only the perl version preserves utf-8 in output + local $Data::Dumper::Useperl=1; my $dumpedvalue; if (($type eq 'boolean' || $type eq 'integer') && $value=~/^[0-9]+$/) { @@ -53,9 +55,9 @@ sub dumpline ($$$$) { #{{{ } return "\t$prefix$key => $dumpedvalue,"; -} #}}} +} -sub dumpvalues ($@) { #{{{ +sub dumpvalues ($@) { my $setup=shift; my @ret; while (@_) { @@ -78,9 +80,9 @@ sub dumpvalues ($@) { #{{{ } } return @ret; -} #}}} +} -sub gendump ($) { #{{{ +sub gendump ($) { my $description=shift; my %setup=(%config); my @ret; @@ -88,10 +90,26 @@ sub gendump ($) { #{{{ # disable logging to syslog while dumping $config{syslog}=undef; + eval q{use Text::Wrap}; + die $@ if $@; + + my %section_plugins; push @ret, dumpvalues(\%setup, IkiWiki::getsetup()); foreach my $pair (IkiWiki::Setup::getsetup()) { my $plugin=$pair->[0]; my $setup=$pair->[1]; + my %s=@{$setup}; + my $section=$s{plugin}->{section}; + push @{$section_plugins{$section}}, $plugin; + if (@{$section_plugins{$section}} == 1) { + push @ret, "", "\t".("#" x 70), "\t# $section plugins", + sub { + wrap("\t# (", "\t# ", + join(", ", @{$section_plugins{$section}})).")" + }, + "\t".("#" x 70); + } + my @values=dumpvalues(\%setup, @{$setup}); if (@values) { push @ret, "", "\t# $plugin plugin", @values; @@ -109,7 +127,7 @@ sub gendump ($) { #{{{ "use IkiWiki::Setup::Standard {"; push @ret, "}"; - return @ret; -} #}}} + return map { ref $_ ? $_->() : $_ } @ret; +} 1