diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/install/discussion.mdwn | 12 | ||||
-rw-r--r-- | doc/todo/online_configuration.mdwn | 66 |
2 files changed, 78 insertions, 0 deletions
diff --git a/doc/install/discussion.mdwn b/doc/install/discussion.mdwn index 9b64330e4..ebdb7e090 100644 --- a/doc/install/discussion.mdwn +++ b/doc/install/discussion.mdwn @@ -1,5 +1,17 @@ No matter what I do, ikiwiki gives me a `Can't locate loadable object for module Locale::gettext in @INC` although I've installed (and reinstalled) the Locale module, and no luck. If I look at the directories in the INC path, I can see the file. The wiki won't compile in spite of this, and I've tried everything I can think of.. -- [[tychoish]] +> Sounds like the `Locale::gettext` perl module is there, but your perl +> installation is broken so that the accompnying so file is not there, or +> doesn't work. On my system I have +> `/usr/lib/perl5/Locale/gettext.pm` and +> `/usr/lib/perl5/auto/Locale/gettext.so` -- suspect your problem is with +> the second one. +> +> If you can't fix it, this problem could probably be worked around by +> unsetting all environment variables when running ikiwiki (`LANG`, +> `LC_ALL`, `LC_MESSAGES`). Then it won't try to load `Locale::gettext` at +> all. --[[Joey]] + --- I am trying to install Ikiwiki version 2.1 from the source tarball. diff --git a/doc/todo/online_configuration.mdwn b/doc/todo/online_configuration.mdwn new file mode 100644 index 000000000..db3b41a71 --- /dev/null +++ b/doc/todo/online_configuration.mdwn @@ -0,0 +1,66 @@ +It should be possible to configure ikiwiki online, in the wiki admin's +preferences form. Rather than the current situation where most settings are +in ikiwiki.setup, and one or two (like locked pages and upload limits) in +the admin preferences. + +In theory, every setting could be configured there. In practice, some +settings, like `srcdir` and `destdir` are ones you want to keep far away +from editing via the web. + +Currently admin prefs are per-admin, and are stored in the userdb. +That seems like a bad choice in the context of this idea. Instead, admin +setup should be configured on a separate page than the regular user prefs +page, and should be shared amoung all admins, and the ideal storage would be +another ikiwiki setup file, which could be loaded in, and written back out. + +If `ikiwiki-makerepo` were extended a little bit to generate the stub setup +file that's enough to get `ikiwiki.cgi` working, and that sets values for +all the dangerous options, leaving only safe ones 'undef', then users could +set up ikiwiki using it, and configure the rest with the web interface, +without ever needing to edit a setup file. + +The setup page could `require` every available plugin, and then call a +`getsetup` function, which would look something like: + + sub getsetup () { + eval q{use Some::Thing}; + die $@ if $@; + + return option_foo => { + safe => 1, + rebuild => 1, + type => "boolean", + default => 0, + description => gettext("Enable foo."), + }, + option_bar => { + safe => 0, + rebuild => 0, + type => "password", + default => "", + description => gettext("Password for bar."), + }; + } + +The types would be: boolean, string, password, filename, other. +This would be the type of the leaf fields; if a value in `%config` is an +array or hash, the type specifies the type of values that go into it. + +From this info, a form can be built, that has core setup values at the +top, followed by each plugin whose `getsetup` succeeded, with a check box +to enable/disable that plugin, and all of its setup options listed after +it. + +The main setup file could control what options are read from the +online setup file: + + online_setup_include => 'safe', # all things with safe = 1 + online_setup_exclude => [qw{option_baz}], + +Note that posting the setup form would sometimes need to cause a rebuild +of the whole wiki. This could be done with output streamed to the admin in +the web browser. The `rebuild` fields would be set to 1 for values that +require a wiki rebuild when changed, and to 0 for values that only need the +wrappers to be refreshed. + +[[tag wishlist]] |