diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-09-10 02:55:42 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-09-10 02:55:42 +0000 |
commit | 1705e6246ece4d75541f7feb42abef512ba3a3be (patch) | |
tree | ac78c3abf31cf4e3025a5d7a2991d867f3805066 | |
parent | 70c5e7f0c858662c210b7f0d5944505777e0d852 (diff) |
updates
-rw-r--r-- | IkiWiki.pm | 2 | ||||
-rw-r--r-- | doc/todo/firm_up_plugin_interface.mdwn | 62 |
2 files changed, 16 insertions, 48 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index 499ec8834..d63b02dff 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -320,7 +320,7 @@ sub baseurl (;$) { #{{{ sub abs2rel ($$) { #{{{ # Work around very innefficient behavior in File::Spec if abs2rel # is passed two relative paths. It's much faster if paths are - # absolute! + # absolute! (Debian bug #376658) my $path="/".shift; my $base="/".shift; diff --git a/doc/todo/firm_up_plugin_interface.mdwn b/doc/todo/firm_up_plugin_interface.mdwn index e23f2f3d6..35fd7870f 100644 --- a/doc/todo/firm_up_plugin_interface.mdwn +++ b/doc/todo/firm_up_plugin_interface.mdwn @@ -1,34 +1,11 @@ -The plugin interface is currently that they can register hooks, and can -call any other ikiwiki internal function they desire, generally through -Ikiwiki::function calls. Also, some Ikiwiki::config etc variables can be -used. - -This is a very weak interface, and should be firmed up to something more -like a proper perl library. I've been waiting to get some idea of what bits -of ikiwiki are most useful to plugins before doing it; there are plenty of -plugins to know that now. - -IkiWiki will now export some function calls and variables when loaded. - -Functions used by many plugins, which I'm sure should be exported: - -* hook -* debug -* error -* template -* htmlpage -* add_depends -* pagespec_match -* bestlink -* htmllink -* readfile -* writefile -* pagetype -* srcfile -* pagename -* displaytime +I don't want this interface to be too firm; it's ok for a plugin like +`ddate` to redefine an internal function like IkiWiki::displaytime if it +wants to.. But plugins that still access stuff through IkiWiki:: should be +aware that that stuff can change at any time and break them. Possibly without +perl's type checking catching the breakage, in some cases. Plugins that +only use exported symbols should not be broken by future ikiwiki changes. -Functions used by only some plugins, undecided: +Functions used by only some plugins, undecided about exporting: * lockwiki, unlockwiki (aggregate) Too internal to ever be exported. @@ -51,22 +28,13 @@ Functions used by only some plugins, undecided: * linkify * preprocess * filter - Used by several, but problimatic since plugins typically define - functions with these names.. - -Variables used by plugins: + The 4 above are used by a few plugins, but problimatic since plugins + typically also define functions with these names.. I also feel that + this part of ikiwiki needs some more work before it's set in stone. + These are always called together, in the same order, though + sometimes htmlize isn't included. -* %IkiWiki::config (various values; probably not worth locking down any - more, export it) -* %IkiWiki::links (many, seems clearcut to export) -* %IkiWiki::renderedfiles (orphans, inline, search) -* %IkiWiki::pagesources (pagecount, sidebar, template, inline) -* %IkiWiki::pagecase (aggregate.. will not export yet) -* %IkiWIki::backlinks (pagestats.. will not export yet) +Variables used by plugins but not exported yet: -I don't want this interface to be too firm; it's ok for a plugin like -`ddate` to redefine an internal function like IkiWiki::displaytime if it -wants to.. But plugins that still access stuff through IkiWiki:: should be -aware that that stuff can change at any time and break them. Possibly without -perl's type checking catching the breakage, in some cases. Plugins that -only use exported symbols should not break by future ikiwiki changes. +* %IkiWiki::pagecase (aggregate) +* %IkiWIki::backlinks (pagestats) |