X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/d89d6c9b5bdc96a88648adb8fdba92e33c1ff765..41d8586b94cc9d464fc3d3e09bda4be64fe9fe47:/doc/todo/plugin.mdwn diff --git a/doc/todo/plugin.mdwn b/doc/todo/plugin.mdwn index 9e8704ec0..80cb29b71 100644 --- a/doc/todo/plugin.mdwn +++ b/doc/todo/plugin.mdwn @@ -1,16 +1,59 @@ -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. -* +* [[sigs]] ? -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. +* 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.) -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. + Or using an iframe + to inline the cgi, although firefox seems to render that nastily with + nested scroll bars. :-( +> Or just link to the equivalent in the version control system, if available; +> gitweb's shortlog or summary view would work nicely as a +> RecentChanges. --[[JoshTriplett]] +>>Why not fork the process? We wouldn't have to wait around for a response since we would assume the recent changes page was being generated correctly. -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. +* 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? + +* 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]] + +* random page (cgi plugin; how to link to it easily?) + +* How about an event calendar. Events could be sub-pages with an embedded + code to detail recurrance and/or event date/time + +* 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.) + +* asciidoc or txt2tags format plugins + + Should be quite easy to write, the otl plugin is a good example of a + similar formatter. + +>>Isn't there a conflict between ikiwiki using \[\[ \]\] and asciidoc using the same? +>>There is a start of an asciidoc plugin at +>>-- KarlMW + +* manpage plugin: convert **"ls(1)"** style content into Markdown like **\[ls(1)\]\(http://example.org/man.cgi?name=ls§=1\)** or into HTML directly. + +> 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]]