Friday, June 17, 2005

My friend Scribe asked about outliners on Tribe.net

I'm not an outliner person, I prefer freeform rhyzomes myself. But recently I find I'm starting to write a bit of an outliner as part of SdiDesk.

I didn't plan to. I was simply trying to nail some of the bugs in the code which renders the nested bullet lists. However, the code was getting a bit long and convoluted, a so I realized I needed a more coherent way to parse and process it.

I pulled out the code that was doing this, which was simply part of the whole WikiToHtml class and have made a special NestedBulletList class which is essentially a recursive tree data-structure. This is used to represent bullet-lists, and has the code which parses them from the raw text, which can render them in HTML.

It could easily be adapted to allow sub-trees to be hidden or not and provide some other outliner-like features. I already record whether items are "checked" etc. I could record whether they're open, or the estimated time, or the percent done, too. (I have some Perl which already does something like this from a couple of years ago.)

Not sure I want to go that way yet. What's more likely, short term, is that I'll make outlines a separate page-type, the way network diagrams and tables are. This would allow me, at some point in the future, to have a special edit modes for them, as with these other types, that could include a standard expanding / collapsing view.

After I've got this component and used it to clean up the parsing, I don't think adding more features is actually next on my to-do list. (Exporting is a much higher priority.) But it's on option which is open.

Any comments. Who'd like to see more outlining, or project management lite (a la ta-da, task-toy etc.) in SdiDesk?

No comments: