web commit by http://jcflack.myopenid.com/
[ikiwiki] / doc / todo / plugin.mdwn
1 Suggestions of ideas for plugins:
2
3 * enable editable, non-htmlized files
4
5     Some months ago, before upgrading my wiki, I used svn to check in an XML file
6     and a companion XSL file for client-side styling. That was cool, ikiwiki
7     copied them over unchanged and the file could be linked to as `\[[foo|foo.xml]]`.
8
9     I even had the XSL produce an `Edit` link at the top, because I wanted a simple
10     way for a web user to edit the XML. But I had to hack stuff to make the edit CGI
11     not say `foo.xml is not an editable page`.
12
13     I did that in a kind of slash-and-burn way, and apparently that's the one change
14     that was uncommitted when I upgraded ikiwiki, so now it's in the same place
15     as the wikiwyg project. On the bright side, that's a chance to think about how to
16     do it better.
17
18     Any suggestions for appropriate uses of existing plugins, or the plugin API,
19     to selectively add to the set of files in the working copy that the edit CGI
20     will consider editable? --ChapmanFlack 17July2008
21
22     > It looks like 80% of the job would be accomplished by hooking `htmlize` for
23     > the `.xml` extension. That would satisfy the `pagetype` test that causes
24     > the edit CGI to say `not an editable page`. (That happens too early for a
25     > `canedit` hook.) The `htmlize` hook could just
26     > copy in to out unchanged (this is an internal wiki, I'm not thinking hard
27     > about evil XML content right now). For extra credit, an `editcontent` hook
28     > could validate the XML. (Can an `editcontent` hook signal a content error?)
29
30     > The tricky bit seems to be to register the fact that the target file should
31     > have extension `.xml` and not `.html`.  Maybe what's needed is a generalized
32     > notion of an `htmlize` hook, one that specifies its output extension as well
33     > as its input, and isn't assumed to produce html? --ChapmanFlack 17July2008
34
35 * 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?
36 > At best, this could only show the users who have logged in, not all
37 > permitted by the current auth plugin(s).  HTTP auth would need
38 > web-server-specific code to list all users, and openid can't feasibly do so
39 > at all. --[[JoshTriplett]]
40
41 * It would be nice to be able to have a button to show "Differences" (or 
42   "Show Diff") when editing a page. Is that an option that can be enabled?
43   Using a plugin?
44
45 * For PlaceWiki I want to be able to do some custom plugins, including one
46   that links together subpages about the same place created by different
47   users. This seems to call for a plugin that applies to every page w/o any
48   specific marker being used, and pre-or-post-processes the full page
49   content. It also needs to update pages when related pages are added,
50   so it needs to register dependencies pre-emptively between pages,
51   or something. It's possible that this is a special case of backlinks and
52   is best implemented by making backlinks a plugin somehow. --[[Joey]]
53
54 * random page (cgi plugin; how to link to it easily?)
55
56 * How about an event calendar. Events could be sub-pages with an embedded 
57   code to detail recurrance and/or event date/time
58
59 * 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.)
60
61 * asciidoc or txt2tags format plugins
62
63   Should be quite easy to write, the otl plugin is a good example of a
64   similar formatter.
65
66 >>Isn't there a conflict between ikiwiki using \[\[  \]\] and asciidoc using the same?
67 >>There is a start of an asciidoc plugin at <http://www.mail-archive.com/asciidoc-discuss@metaperl.com/msg00120.html>
68 >>-- KarlMW
69
70 * 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.
71
72 > With a full installation of groff available, man offers HTML output.  Might
73 > take some fiddling to make it fit into the ikiwiki templates, and you might
74 > or might not want to convert pages in the SEE ALSO as
75 > well. --[[JoshTriplett]]
76
77 * 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.
78
79   > 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]]
80
81 * I wrote a very crude wrapper around tex4ht to render TeX files.  I hesitate to give it a contrib/plugins page in its current state, but if someone wants to play, [here](http://www.cs.unb.ca/~bremner/wiki/software/ikiwiki/tex4ht.pm) it is.--[[DavidBremner]]
82
83 * Setting default values for the meta plugin in the setup file, particularly author, license, and copyright, would be useful 
84 There is work in progress at 
85 [[plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__]]
86 -- [[DavidBremner]]
87
88 * Would it make sense to have a hook to set the page name?  This would solve a problem I see with 
89 [[source_code_highlighting|plugins/contrib/sourcehighlight]]
90 -- [[DavidBremner]]