Go to file
Joey Hess 7da319efc6 inline: Run format hook first
inline has a format hook that is an optimisation hack. Until this hook
runs, the inlined content is not present on the page. This can prevent
other format hooks, that process that content, from acting on inlined
content. In bug ##509710, we discovered this happened commonly for the
embed plugin, but it could in theory happen for many other plugins (color,
cutpaste, etc) that use format to fill in special html after sanitization.

The ordering was essentially random (hash key order). That's kinda a good
thing, because hooks should be independent of other hooks and able to run
in any order. But for things like inline, that just doesn't work.

To fix the immediate problem, let's make hooks able to be registered as
running "first". There was already the ability to make them run "last".

Now, this simple first/middle/last ordering is obviously not going to work
if a lot of things need to run first, or last, since then we'll be back to
being unable to specify ordering inside those sets. But before worrying about
that too much, and considering dependency ordering, etc, observe how few
plugins use last ordering: Exactly one needs it. And, so far, exactly one
needs first ordering. So for now, KISS.

Another implementation note: I could have sorted the plugins with
first/last/middle as the primary key, and plugin name secondary, to get a
guaranteed stable order. Instead, I chose to preserve hash order. Two
opposing things pulled me toward that decision:

1. Since has order is randomish, it will ensure that no accidental
   ordering assumptions are made.
2. Assume for a minute that ordering matters a lot more than expected.
   Drastically changing the order a particular configuration uses could
   result in a lot of subtle bugs cropping up. (I hope this assumption is
   false, partly due to #1, but can't rule it out.)
2008-12-26 16:09:23 -05:00
Bundle typo 2008-06-12 14:54:28 -04:00
IkiWiki inline: Run format hook first 2008-12-26 16:09:23 -05:00
cpan enhancesments for shared hosting 2008-05-05 14:51:26 -04:00
debian inline: Run format hook first 2008-12-26 16:09:23 -05:00
doc inline: Run format hook first 2008-12-26 16:09:23 -05:00
plugins function injection overhaul 2008-10-21 17:57:19 -04:00
po response 2008-12-20 18:14:49 -05:00
t avoid an uninitialized value warning 2008-12-21 13:46:00 -05:00
templates rssitem.tmpl: include comments URL (HTML only) 2008-12-21 17:16:24 +00:00
underlays use relativedate as the css class for dates that should display relative 2008-10-20 19:22:22 -04:00
.gitignore update ignore 2008-07-26 23:04:54 -04:00
.perlcriticrc fix a common case typo 2008-08-12 15:48:44 -04:00
CHANGELOG * Work on firming up the plugin interface: 2006-09-09 22:50:27 +00:00
IkiWiki.pm inline: Run format hook first 2008-12-26 16:09:23 -05:00
Makefile.PL add W3M_CGI_BIN setting 1997-08-14 08:26:03 -04:00
NEWS * Work on firming up the plugin interface: 2006-09-09 22:50:27 +00:00
README reformat 2008-09-09 20:24:59 -04:00
auto.setup put monotone dir name munging code in auto.setup 2008-08-22 21:19:53 -04:00
docwiki.setup oops 2008-11-06 20:49:52 -05:00
gitremotes markdown fixes 2008-12-11 13:31:25 -05:00
ikiwiki-makerepo put monotone dir name munging code in auto.setup 2008-08-22 21:19:53 -04:00
ikiwiki-mass-rebuild fix two build bugs 2008-06-13 13:05:44 -04:00
ikiwiki-transition add a guard against multiple cgi or rcs wrappers 2008-08-05 21:02:18 -04:00
ikiwiki-update-wikilist add new wiki to wikilist 2008-07-27 16:01:29 -04:00
ikiwiki-w3m.cgi * Support a w3mmode, which lets w3m run ikiwiki using its local CGI 2006-07-07 21:00:48 +00:00
ikiwiki.in Coding style change: Remove explcit vim folding markers. 2008-12-17 15:22:16 -05:00
mdwn2man improved period escape 2008-05-30 18:01:16 -04:00
pm_filter If PERL5LIB is set to the libdir when building ikiwiki, calculate and hardcode a proper 'use lib' statement anyway. This fixes a gotcha, since PERL5LIB won't work once ikiwiki is running via a wrapper or as a cgi. 2008-05-14 02:42:01 -04:00
wikilist Fix typo. 2007-04-09 23:54:32 +00:00

README

Use ./Makefile.PL to generate a Makefile, "make" will build the
documentation wiki and a man page, and "make install" will install ikiwiki.

All other documentation is in the ikiwiki documentation wiki, which is also
available online at <http://ikiwiki.info/>


A few special variables you can set while using the Makefile:

  PROFILE=1 turns on profiling for the build of the doc wiki.
  (Uses Devel::Profile)

  NOTAINT=0 turns on the taint flag in the ikiwiki program. (Not recommended
  unless your perl is less buggy than mine -- see
  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.