* Add libc6-dev to dependencies, needed to build wrappers.
[ikiwiki.git] / doc / todo / plugin.mdwn
index 8fed8ca875b00b0ad2b44c97031154c5f454a2cc..d99dd2022ed03883d6e4b21b8354c34f7235329b 100644 (file)
@@ -1,16 +1,21 @@
-A plugin system should ideally support things like:
+Suggestions of ideas for plugins:
 
-* [[todo/lists]] of pages, of mising pages / broken links (done), orphaned
-  pages (done), of registered users, etc
+* list of registered users - tricky because it sorta calls for a way to rebuild the page when a new user is registered. Might be better as a cgi?
 * a [[todo/link_map]]
 * [[todo/sigs]] ?
 * [[pageindexes]]
-* Wiki stats, such as the total number of pages (done), total number of links, most linked to pages, etc, etc.
-* wiki info page, giving the ikiwiki version etc
-* would it be useful to reimplement the hyperestradier search integration as a plugin? (done)
-* Support [[RecentChanges]] as a regular page containing a plugin that updates each time there is a change, and statically builds the recent changes list. (Would this be too expensive/inflexible? There might be other ways to do it as a plugin, like making all links to RecentChanges link to the cgi and have the cgi render it on demand.)
-* Support for smileys or other symbols. I appreciate the support for check
-  marks, etc in other wikis.
+* Wiki stats, such as total number of links, most linked to pages
+
+* Support [[RecentChanges]] as a regular page containing a plugin that
+  updates each time there is a change, and statically builds the recent
+  changes list. (Would this be too expensive/inflexible? There might be
+  other ways to do it as a plugin, like making all links to RecentChanges
+  link to the cgi and have the cgi render it on demand.) 
+
+  Or using an iframe
+  to inline the cgi, although firefox seems to render that nastily with
+  nested scroll bars. :-(
+
 * For PlaceWiki I want to be able to do some custom plugins, including one
   that links together subpages about the same place created by different
   users. This seems to call for a plugin that applies to every page w/o any
@@ -19,20 +24,13 @@ A plugin system should ideally support things like:
   so it needs to register dependencies pre-emptively between pages,
   or something. It's possible that this is a special case of backlinks and
   is best implemented by making backlinks a plugin somehow. --[[Joey]]
-* etc
-* For another type of plugin, see [[todo/PluggableRenderers]].
-
-Another, separate plugin system that already (mostly) exists in ikiwiki is
-the RCS backend, which allows writing modules to drive other RCS systems
-than subversion.
 
-## case study: Moin Moin plugins
+* interwiki links
 
-See <http://moinmoin.wikiwikiweb.de/MoinDev/PluginConcept>
+* random page (cgi plugin; how to link to it easily?)
 
-6 different types of plugins:
+All the kinds of plugins that blogging software has is also a possibility:
 
-* *actions* are possibly out of scope for ikiwiki, this is probably what it uses for cgi script type stuff. Unless ikiwiki wants to allow pluggable CGI script stuff, it doesn't need these.
-* *parsers* and *formatters* are basically what I've been calling [[PluggableRenderers]]. MoinMoin separates these, so that a page is parsed to (presumbly) some intermediate form before being output as html or some other form. That's a nice separation, but what to do about things like markdown that are both a parser and a formatter?
-* *macros* and *processors* are analagous to preprocessor directives. A processor can operate on a large block of text though.
-* *themes* should be irrellevant (ikiwiki has [[templates]]).
+* Blog post calendar
+* technocrati pinger
+* Tag stuff?