X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/a0653933d324f30838fe04d5f9aaab8b130014b2..278ae9afea19b20058e7ed5290305ca69c71a649:/IkiWiki/Setup/Standard.pm diff --git a/IkiWiki/Setup/Standard.pm b/IkiWiki/Setup/Standard.pm index b1418ae34..2420a6644 100644 --- a/IkiWiki/Setup/Standard.pm +++ b/IkiWiki/Setup/Standard.pm @@ -3,78 +3,63 @@ # Parameters to import should be all the standard ikiwiki config stuff, # plus an array of wrappers to set up. +package IkiWiki::Setup::Standard; + use warnings; use strict; -use IkiWiki::Wrapper; -use IkiWiki::Render; -package IkiWiki::Setup::Standard; +sub import { #{{{ + $IkiWiki::Setup::raw_setup=$_[1]; +} #}}} -sub import { - IkiWiki::setup_standard(@_); -} - -package IkiWiki; +sub generate (@) { #{{{ + my %setup=@_; -sub setup_standard { - my %setup=%{$_[1]}; + eval q{use Data::Dumper}; + error($@) if $@; + local $Data::Dumper::Terse=1; - $setup{plugin}=$config{plugin}; - if (exists $setup{add_plugins}) { - push @{$setup{plugin}}, @{$setup{add_plugins}}; - delete $setup{add_plugins}; - } - if (exists $setup{disable_plugins}) { - foreach my $plugin (@{$setup{disable_plugins}}) { - $setup{plugin}=[grep { $_ ne $plugin } @{$setup{plugin}}]; - } - delete $setup{disable_plugins}; - } - if (exists $setup{exclude}) { - $config{wiki_file_prune_regexp}=qr/$config{wiki_file_prune_regexp}|$setup{exclude}/; - } + my @ret="#!/usr/bin/perl +# Setup file for ikiwiki. +# Passing this to ikiwiki --setup will make ikiwiki generate wrappers and +# build the wiki. +# +# Remember to re-run ikiwiki --setup any time you edit this file. - debug("generating wrappers.."); - my @wrappers=@{$setup{wrappers}}; - delete $setup{wrappers}; - my %startconfig=(%config); - foreach my $wrapper (@wrappers) { - %config=(%startconfig, verbose => 0, %setup, %{$wrapper}); - checkconfig(); - gen_wrapper(); - } - %config=(%startconfig); +use IkiWiki::Setup::Standard {"; + + foreach my $id (sort keys %{$IkiWiki::hooks{getsetup}}) { + my @setup=$IkiWiki::hooks{getsetup}{$id}{call}->(); + return unless @setup; + push @ret, "\t# $id plugin"; + while (@setup) { + my $key=shift @setup; + my %info=%{shift @setup}; + + push @ret, "\t# ".$info{description} if exists $info{description}; - foreach my $c (keys %setup) { - if (defined $setup{$c}) { - if (! ref $setup{$c}) { - $config{$c}=possibly_foolish_untaint($setup{$c}); + my $value=undef; + my $prefix="#"; + if (exists $setup{$key} && defined $setup{$key}) { + $value=$setup{$key}; + $prefix=""; } - elsif (ref $setup{$c} eq 'ARRAY') { - $config{$c}=[map { possibly_foolish_untaint($_) } @{$setup{$c}}] + elsif (exists $info{default}) { + $value=$info{default}; } + elsif (exists $info{example}) { + $value=$info{example}; + } + + my $dumpedvalue=Dumper($value); + chomp $dumpedvalue; + push @ret, "\t$prefix$key=$dumpedvalue,"; } - else { - $config{$c}=undef; - } + push @ret, ""; } - if (! $config{refresh}) { - $config{rebuild}=1; - debug("rebuilding wiki.."); - } - else { - debug("refreshing wiki.."); - } - - loadplugins(); - checkconfig(); - lockwiki(); - loadindex(); - refresh(); - - debug("done"); - saveindex(); -} + push @ret, "}"; + return @ret; +} #}}} 1