]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/todo/plugin.mdwn
web commit by bremner
[ikiwiki.git] / doc / todo / plugin.mdwn
index 1d49de66a19d78ac02e1c6f5550f16ded802d9b6..901e8e55eb3dd0104759b1b7338eae826ec10153 100644 (file)
@@ -1,36 +1,60 @@
-For one type of plugin, see [[todo/PluggableRenderers]]. 
+Suggestions of ideas for plugins:
 
-A plugin system should ideally support things like:
+* 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?
+> At best, this could only show the users who have logged in, not all
+> permitted by the current auth plugin(s).  HTTP auth would need
+> web-server-specific code to list all users, and openid can't feasibly do so
+> at all. --[[JoshTriplett]]
 
-* [[todo/lists]] of pages, of mising pages / broken links, of registered users, etc
-* a [[todo/link_map]]
-* [[todo/sigs]]
-* [[pageindexes]]
-* Wiki stats, such as the total number of pages, 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?
-* Maybe it would be possible to make RecentChanges a regular wiki page, by making it a page that renders statically, but somehow runs the cgi at view time to dyamically render the changes? Then this could be a plugin too. How would this be accomplished in html though? Only way I know is via server side includes..
-* etc
+* It would be nice to be able to have a button to show "Differences" (or 
+  "Show Diff") when editing a page. Is that an option that can be enabled?
+  Using a plugin?
 
-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.
+* 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
+  specific marker being used, and pre-or-post-processes the full page
+  content. It also needs to update pages when related pages are added,
+  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]]
 
-## preprocessor plugins
+* random page (cgi plugin; how to link to it easily?)
 
-Considering ikiwiki plugins, one idea I have is to make the [[PreProcessorDirective]]s be a plugin. A setting in the config file would enable various plusins, which are perl modules, that each provide one or more preprocessor directives. 
+* How about an event calendar. Events could be sub-pages with an embedded 
+  code to detail recurrance and/or event date/time
 
-Since preprocessing happens before htmlization but after a page is loaded and linkified, it should be possible to use it to create something like a link map or lists, or a page index. Page inlining and rss generation is already done via preprocessor directives and seems a natureal as a plugin too. 
+* rcs plugin ([[JeremyReed]] has one he has been using for over a month with over 850 web commits with 13 users with over ten commits each.)
 
-Note that things like a link map or a broken link list page would need to be updated whenever a set (or all) pages change; the %inlinepages hash already allows for pages to register this, although it might need to be renamed. 
+* asciidoc or txt2tags format plugins
 
-I need to look at the full range of things that other wikis use their plugin systems for, but preprocessor directives as plugins certianly seems useful, even if it's  not a complete solution.
+  Should be quite easy to write, the otl plugin is a good example of a
+  similar formatter.
 
-## case study: Moin Moin plugins
+>>Isn't there a conflict between ikiwiki using \[\[  \]\] and asciidoc using the same?
+>>There is a start of an asciidoc plugin at <http://www.mail-archive.com/asciidoc-discuss@metaperl.com/msg00120.html>
+>>-- KarlMW
 
-See <http://moinmoin.wikiwikiweb.de/MoinDev/PluginConcept>
+* manpage plugin: convert **"ls(1)"** style content into Markdown like **\[ls(1)\]\(http://example.org/man.cgi?name=ls&sect=1\)** or into HTML directly.
 
-6 different types of plugins:
+> With a full installation of groff available, man offers HTML output.  Might
+> take some fiddling to make it fit into the ikiwiki templates, and you might
+> or might not want to convert pages in the SEE ALSO as
+> well. --[[JoshTriplett]]
 
-* *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]]).
+* As I couldn't find another place to ask, I'll try here. I would like to install some contributed plugins, but can not find anywhere to downlod them.
+
+  > Not sure what you mean, the [[plugins/contrib]] page lists contributed plugins, and each of their pages tells where to download the plugin from.. --[[Joey]]
+
+* I was thinking about a tex plugin, to handle tex4ht files. I have since discovered that pandoc on the output from tex4ht seems to be good enough. --[[DavidBremner]]
+
+* Setting default values for the meta plugin in the setup file, particularly author, license, and copyright, would be useful 
+There is work in progress at 
+[[plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__]]
+-- [[DavidBremner]]
+
+* What about a translator plugin using source-highlight or some alternative to view a collection of source code. I have a collection 
+of e.g. java for students to look at. I'd like to e.g. update the tags in the java file, then rebuild the wiki.     A first hack, can be found in 
+[my wiki](http://www.cs.unb.ca/~bremner/wiki/software/java.pm)
+Among many possible improvements would be generalizing to handle other languages. I have to play some more.
+-- [[DavidBremner]]