1a0dd6fb4aa9c42b1d4f96e2e03c8bf93b800500
[ikiwiki.git] / doc / todo.mdwn
1 ## online page editing
2
3 To support editing pages in a web browser,  a CGI script is needed that
4 pulls the page out of [[Subversion]], presents it to the user for editing,
5 and then commits the changed page back to [[Subversion]].
6
7 Due to [[WikiSpam]], this will probably also need to incorporate a user
8 registration system. So there will need to be a script that handles logins
9 and registrations, sets a cookie, and the page editor can refuse to edit
10 pages for users who arn't logged in, and include a not of who made the
11 change in the svn log.
12
13 If possible I'd prefer to use someone else's generic web user registration
14 and login system, if one exists.
15
16 ## [[RecentChanges]]
17
18 This will need to be another cgi script, that grubs through the
19 [[Subversion]] logs.
20
21 This should support RSS for notification of new and changed pages.
22
23 ## page history
24
25 To see past versions of a page, we can either implement a browser for that,
26 or just provide a way to link to the page in viewcvs.
27
28 ## pluggable renderers
29
30 I'm considering a configurable rendering pipeline for each supported
31 filename extension. So for ".mdwn" files, it would send the content through
32 linkify, markdown, and finalize, while for ".wiki" files it might send it
33 through just a wiki formatter and finalize.
34
35 This would allow not only supporting more types of markup, but changing
36 what style of [[WikiLink]]s are supported, maybe some people want to add
37 [[CamelCase]] for example, or don't like the [[SubPage/LinkingRules]].
38
39 The finalize step is where the page gets all the pretty junk around the
40 edges, so that clearly needs to be pluggable too.
41
42 There also needs to be a step before finalize, where stuff like lists of pages
43 that linked back to it could be added to the page. However, doing linkbacks
44 also needs to tie into the main logic, to determine what pages need to be
45 renered, so maybe that won't be a plugin.
46
47 ## revist case
48
49 Being case insensative is handy, but it does make the [[BackLinks]] a bit
50 ugly compared to other links. It should be possible to support pagenames
51 that have uppercase, while still allowing them to be linked to using any
52 case.