Welcome to ikiwiki's todo list. Link items to done when done.
Create some nice(r) stylesheets.
Should be doable w/o touching a single line of code, just editing the templates and/or editing style.css.
(posted Tue Jul 4 05:50:51 2006)
- Eventually, might want page deletion.
- Eventually, might want file upload.
- Page move? Link corrections?
- Way to specify type of page (especailly when creating a new page). Will be more important once there are multiple page types implemented, to choose between markdown, restructured text, etc. Note that the default type for new pages is already configurable globally.
(posted Mon Jul 3 22:34:40 2006)
Suggestions of ideas for plugins:
- Support for restructured text (should be semi-easy to add basic support now)
- 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 link map
- sigs ?
- pageindexes
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 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
interwiki links
random page (cgi plugin; how to link to it easily?)
navigation or side bar plugin, would use a specific page as the side bar and include it into the other pages as specified by the template. The pagetemplate hook was added to allow for this.
All the kinds of plugins that blogging software has is also a possibility:
- Blog post calendar
- Tag stuff?
(posted Mon Jul 3 22:33:26 2006)
Being case insensative is handy, but it does make the BackLinks and blog links a bit ugly compared to other links. It should be possible to support pagenames that have uppercase, while still allowing them to be linked to using any case.
Also, newly created pagenames that include upper case characters should perhaps not automatically be converted to lower case then.
Also, it's currently possible to check in a filename with uppercase and ikiwiki will render it that way, but fail to edit it online and probably in other ways.
(posted Sun Jul 2 01:43:23 2006)
Perhaps I'm just too stupid to find the proper way to do this, but how would I add a new page to the wiki without selecting to edit an already installed one and frobbing the URL to direct to the to-be-created page? --?ThomasSchwinge
Good point. Of course one way is to start with creating a link to the page, which also helps prevent orphans. But other wikis based on CGI do have this a bit easier, since they can detect an attempt to access a nonexistant page and show an edit page. Ikiwiki can't do that (unless its web server is configured to do smart things on a 404, like maybe call ikiwiki.cgi which could be modified to work as a smart 404 -> edit handler).
Some wikis also provide a UI means for creating a new page. If we can find something good, that can be added to ikiwiki's UI. --Joey
Hmm, maybe just a preprocessor directive that creates a form inside a page, like is used for blog posting already would suffice? Then the main page of a wiki could have a form for adding new pages, if that directive were included there. Won't work for subpages though, unless the directive were added to the parent page. However, unconnected subpages are surely an even rarer thing to want than unconnected top level pages. --Joey
Maybe a very simple PHP frontend for serving the statically generated pages, that would display a page editing form or something like that for non-existent pages, wouldn't be too bad a thing and resource hog? Just a thought... --?Tuomov
(posted Sun Jul 2 01:43:23 2006)
Another useful feature might be to be able to choose a different template file for some pages; blog pages would use a template different from the home page, even if both are managed in the same repository, etc.
Well, that would probably be fairly easy to add if it used globlists to specify which pages use the non-default template.
Hmm, I think the pagetemplate hook should allow one to get close enough to this in a plugin now.
(posted Sun Jul 2 01:43:23 2006)
Might be nice to support automatically generating an index based on headers in a page, for long pages. The question is, how to turn on such an index? Well, make it a plugin enabled by a preprocessordirective.
(posted Sun Jul 2 01:43:23 2006)
An idea: Use graphviz to generate a map of all the links between pages. (Could it be made clickable somehow?)
Graphviz can output image maps. -- ChristofferSawicki
This could be a plugin.
(posted Sun Jul 2 01:43:23 2006)
Need a way to sign name in page that's easier to type than "--[[Joey]]" and that includes the date.
What syntax do other wikis use for this? I'm considering "[[--]]" (with spaces removed) as it has a nice nmemonic.
OTOH, adding additional syntax for this would be counter to one of the design goals for ikiwiki: keeping as much markup as possible out of the wiki and not adding nonstandard markup. And it's not significantly hard to type "--[[Joey]]", and as to the date, we do have page history.
I'm also unsure how to possibly implement this. Seems ikiwiki would need to expand the rune to the user's name when a page is saved, but that leaves out svn commits.
(posted Sun Jul 2 01:43:23 2006)
It seems that pages like Todo aren't rebuilt automatically when a new item is added using the web interface.
AFAIK this is working ok. For example, this page appears in TODO. Maybe you need to force-refresh the page in your web browser? --Joey
(posted Sun Jul 2 01:43:23 2006)
Hack together a local ikiwiki w/o a web server using w3m's cgi-less mode and $EDITOR. Browse around a wiki, select pages to edit and get dropped right into the editor and have the page committed to svn automatically.
Less grandiosely, a simple command line util to add a new page would be useful, especially if it made it easy to add blog entries to the wiki. I have a special purpose version of this in my blog script.
(posted Sun Jul 2 01:43:23 2006)
There should be a way to add metadata to a page. Probably a plugin could do this, for example:
\[[meta foo="bar"]]
Uses for this include:
- Setting a page title that's not tied to the filename.
- Any metadata that's generally useful on html pages.
- Maybe as an alternate way to tag a page, like linking to the tag, except it doesn't have to show up in the page text.
- Recording page licenses.
(posted Sun Jul 2 01:43:23 2006)
- Blog title, author email, copyright info and anything else supported by rss should be able to be specified using the meta plugin.
- The TODO page would work better if the first N were shown in full, and then all open items were shown in summary. Maybe add this mode.
- Add Discussion and Edit links at the bottom of each inlined post.
- It would be possible to support rss enclosures for eg, podcasts, pretty easily.
(posted Sun Jul 2 01:43:23 2006)
Render each changed page only once. Currently pages are rendered up to 4 times in worst case (8 times if there's an rss feed).
The issue is that rendering a page is used to gather info like the links on the page that can effect rendering other pages. So it needs a multi-pass system. But rendering the whole page in each pass is rather obscene.
Don't render blog archive pages unless a page is added/removed. Just changing a page doesn't affect the archives as they show only the title.
Look at splitting up CGI.pm. But note that too much splitting can slow perl down.
(posted Sun Jul 2 01:43:23 2006)
Some inconsistences around the toplevel index page:
- The page's title is "index"; the linkpath looks like "ikiwiki / index". IMHO it would be nicer if the title were "ikiwiki" and the linkpath was just "ikiwiki" (for this wiki).
- ?ikiwiki is a separate page; links to ?ikiwiki should better go to the index though.
(posted Sun Jul 2 01:43:23 2006)
Need to improve globlists, adding more powerful boolean expressions. The current behavior is to check for negated expressions, and not match if there are any, then check for normal expressions and match if any match, This fails if you want to do something like match only pages with tag foo that are under directory bar. I think we need parens for grouping, and probably also boolean OR.
(posted Sun Jul 2 01:43:23 2006)
Full list of open items:
html
(posted Tue Jul 4 05:50:51 2006)
onlinepageediting
(posted Mon Jul 3 22:34:40 2006)
plugin
(posted Mon Jul 3 22:33:26 2006)
case
(posted Sun Jul 2 01:43:23 2006)
adding new pages by using the web interface
(posted Sun Jul 2 01:43:23 2006)
multiple templates
(posted Sun Jul 2 01:43:23 2006)
pageindexes
(posted Sun Jul 2 01:43:23 2006)
link map
(posted Sun Jul 2 01:43:23 2006)
sigs
(posted Sun Jul 2 01:43:23 2006)
automatic rebuilding of html pages
(posted Sun Jul 2 01:43:23 2006)
terminalclient
(posted Sun Jul 2 01:43:23 2006)
metadata
(posted Sun Jul 2 01:43:23 2006)
blogging
(posted Sun Jul 2 01:43:23 2006)
optimisations
(posted Sun Jul 2 01:43:23 2006)
toplevel index
(posted Sun Jul 2 01:43:23 2006)
improve globlists
(posted Sun Jul 2 01:43:23 2006)