summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/skeleton.pm.example (renamed from IkiWiki/Plugin/skeleton.pm)0
-rw-r--r--README5
-rw-r--r--doc/install/discussion.mdwn12
-rw-r--r--doc/todo/online_configuration.mdwn66
4 files changed, 83 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/skeleton.pm b/IkiWiki/Plugin/skeleton.pm.example
index 1af8e4e9d..1af8e4e9d 100644
--- a/IkiWiki/Plugin/skeleton.pm
+++ b/IkiWiki/Plugin/skeleton.pm.example
diff --git a/README b/README
index d4be0455a..fdb63227d 100644
--- 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/>
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]]