]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo.mdwn
optimize for common case where list is not changed
[git.ikiwiki.info.git] / doc / todo.mdwn
index f01753e33d8d8a3ba62fc2a79b81433bcce65645..75314c75becf25f3f801a077910c495d485b1694 100644 (file)
-## online page editing
-
-* Eventually, might want page deletion.
-* Eventually, might want file upload.
-
-## recentchanges
-
-* Should support mail notification of new and changed pages.
-
-  Hmm, should be easy to implement this.. it runs as a svn post-coommit hook
-  already, so just look at the userdb, svnlook at what's changed, and send
-  mails to people who have subscribed.
-
-  A few details:
-  1. [[Joey]] mentioned that being able to subscribe to globs as well as
-     explicitly named pages would be desirable.
-  2. I think that since we're using Perl on the backend, being able to
-     let users craft their own arbitrary regexes would be good.
-
-     Joey points out that this is actually a security hole, because Perl
-     regexes let you embed (arbitrary?) Perl expressions inside them.  Yuck!
-
-     It would also be good to be able to subscribe to all pages except discussion pages or the SandBox: `* !*/discussion !sandobx`, maybe --[[Joey]]
-
-  3. Of course if you do that, you want to have form processing on the user
-     page that lets them tune it, and probably choose literal or glob by
-     default.
-
-     I think that the new globlist() function should do everything you need.
-     Adding a field to the prefs page will be trivial --[[Joey]]
-
-  The first cut, I suppose, could use one sendmail process to batch-mail all
-  subscribers for a given page.  However, in the long run, I can see users
-  demanding a bit of feature creep:
-
-  4. Each user should be able to tune whether they see the actual diff parts or
-     not.
-  5. Each user should be able to set a maximum desired email size.
-  6. We might want to support a user-specified shibboleth string that will be
-     included in the email they receive so they can easily procmail the messages
-     into a folder.
-
-  --[[BrandenRobinson]]
-
-## pluggable renderers
-
-I'm considering a configurable rendering pipeline for each supported
-filename extension. So for ".mdwn" files, it would send the content through
-linkify, markdown, and finalize, while for ".wiki" files it might send it
-through just a wiki formatter and finalize.
-
-This would allow not only supporting more types of markup, but changing
-what style of [[WikiLink]]s are supported, maybe some people want to add
-[[CamelCase]] for example, or don't like the [[SubPage/LinkingRules]].
-
-The finalize step is where the page gets all the pretty junk around the
-edges, so that clearly needs to be pluggable too.
-
-There also needs to be a step before finalize, where stuff like lists of pages
-that linked back to it could be added to the page. However, doing linkbacks
-also needs to tie into the main logic, to determine what pages need to be
-renered, so maybe that won't be a plugin.
-
-## blogging and rss
-
-The wiki should emit rss feeds for pages. The simple case is a regular
-page. The complex case is a blog composed of multiple pages.
-
-### single page
-
-Just create an rss feed with one element, that contains the last diff to
-the page, or the contents of the page, or something like that. Whenever the
-page is changed, rss readers should see the single post in the feed as a
-new post, so they'll dump out the page again. Simple, allows subscribing to
-any page as an RSS feed if you want to see just changes to that page.
-
-### multi-page blog
-
-This also takes care of the feature of wanting to make a wiki page
-comprised of several sub-pages that can be independantly edited. Add a
-token that can be embedded into a page and that specifies a [[GlobList]] of
-pages. Now when any page matching the globs changes, this page must be
-updated too. 
-
-For the html rendering, just embed the most recently created N pages in the
-[[GlobList]], with the title of each being a link to the individual page,
-plus a link to an additional page that lists all the titles of every
-matching page in creation order (archives). Plus at the bottom a small web
-form that prompts for a title and allows creating a new page for a new blog
-post.
-
-For the rss rendering, generate a proper weblog of the same pages.
-Of course for permalinks use the links to the subpages.
-
-Note that this allows for weblogs with different sections, etc.
-
-Requirements:
-
-* Need to keep track of creation dates of pages in the index file.
-* Need to keep track of the globlists in the index file.
-   - Probably need to redesign the index file format to allow for this sort
-     of future expansion.
-* Need to pick a good token and note that the token will need to be passed
-  multiple parameters. Possibly something like this:
-
-       [[embed pages="myblog/*" show="30"]]
-
-## revisit case
-
-Being case insensative is handy, but it does make the [[BackLinks]] 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.
-
-## html
-
-Make the html valid. Add css and prettify. Make RecentChanges use table for formatting, and images to indicate web vs svn commits and to link to diffs.
-
-All of this should be doable w/o touching a single line of code, just editing the [[templates]] BTW.
-
-## sigs
-
-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.
-
-## recentchanges more than 100
-
-Possibly add "next 100" link to it, but OTOH, you can just use svn log if
-you need that data..
-
-## search
-
-* page name substring search
-* full text (use third-party tools?)
-
-## lists
-
-* list of all missing pages
-* list of all pages or some kind of page map (probably covered by the rss
-  feeds stuff above)
-
-These could be their own static pages updated when other pages are updated.
-Perhaps this ties in with the pluggable renderers stuff.
-
-## page indexes
-
-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?
-
-## basewiki underlay
-
-Rather than copy the basewiki around everywhere, it should be configured to
-underlay the main srcdir, and pages be rendered from there if not in the
-srcdir. This would allow upgrades to add/edit pages in the basewiki.
-
-Impementaion will be slightly tricky since currently ikiwiki is hardcoded
-in many places to look in srcdir for pages. Also, there are possible
-security attacks in the vein of providing a file ikiwiki would normally
-skip in the srcdir, and tricking it to processing this file instead of the
-one from the underlaydir.
-
-There are also difficulties related to removing files from the srcdir, and
-exposing ones from the underlaydir. Will need to make sure that the mtime
-for the source file is zeroed when the page is removed, and that it then
-finds the underlay file and treats it as newer.
-
-## Logo
-
-ikiwiki needs a logo. I'm thinking something simple like the word "ikiwiki"
-with the first "k" backwards; drawn to show that it's "wiki" reflected.
-
-## [[Bugs]]
+Feel free to post your ideas for todo and [[wishlist]] items here, as well
+as any [[patches|patch]]. If it seems more like a bug in the existing code,
+post it to [[bugs]] instead. Link items to [[todo/done]] when done.
+
+<!-- currently commented out because I lost all my mtimes :-)
+[[!if test="enabled(postsparkline)"
+then="""
+How long will it take your todo item to be fixed? Well...  
+[[!postsparkline pages="todo/* and !todo/done and !link(todo/done) and !todo/*/*"
+max=12 ymin=10 formula=permonth style=bar barwidth=2 barspacing=1 height=13]]
+this many are being added per month  
+[[!postsparkline pages="todo/* and !todo and link(todo/done)"
+max=12 ymin=10 formula=permonth time=mtime style=bar barwidth=2 barspacing=1 height=13]]
+while this many are being fixed.
+"""]]
+-->
+
+[[!inline pages="todo/* and !todo/done and !link(todo/done) and
+!link(patch) and !link(wishlist) and !todo/*/*"
+feedpages="created_after(todo/supporting_comments_via_disussion_pages)"
+actions=yes archive=yes rootpage="todo" postformtext="Add a new todo item titled:" show=0]]