]> scripts.mit.edu Git - www/ikiwiki.git/commitdiff
Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
authorJoey Hess <joey@kodama.kitenet.net>
Mon, 21 Jul 2008 13:59:50 +0000 (09:59 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Mon, 21 Jul 2008 13:59:50 +0000 (09:59 -0400)
IkiWiki/Plugin/skeleton.pm.example [moved from IkiWiki/Plugin/skeleton.pm with 100% similarity]
README
doc/install/discussion.mdwn
doc/todo/online_configuration.mdwn [new file with mode: 0644]

diff --git a/README b/README
index d4be0455a6085c43c3ae5a5e387d811f93606933..fdb63227d02e7f26f778e38b327c62413cce9b88 100644 (file)
--- a/README
+++ b/README
@@ -12,5 +12,10 @@ http://bugs.debian.org/411786)
 There are also other variables supported by MakeMaker, including PREFIX,
 INSTALL_BASE, and DESTDIR. See ExtUtils::MakeMaker(3).
 
+In particular, INSTALL_BASE is very useful if you want to install ikiwiki
+to some other location, as it configures it to see the perl libraries
+there. See `doc/tips/nearlyfreespeech.mdwn` for an example of using this to
+install ikiwiki and its dependencies in a home directory.
+
 All other documentation is in the ikiwiki documentation wiki, which is also
 available online at <http://ikiwiki.info/>
index 9b64330e424bc62c21a83addda28fe992bd5d223..ebdb7e0903f766763a8fce16a2f74de8573bda7a 100644 (file)
@@ -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 (file)
index 0000000..db3b41a
--- /dev/null
@@ -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]]