Glacial Erratics

PurpleWiki MovableType update

April 24, 2003

In a recent comment on an early entry about integrating PurpleWiki and MovableType, Danny Ayers asks about what sort of progress has been made. Here are some rough notes on what's up.    (0000GM)

The original goal was to create handles (PurpleNumbers) for granular addressing to paragraphs in blog entries. That's done and works just fine. The little purple hash marks that follow each structural section of this entry are href's pointing to named anchors within the text. You can copy and paste the URL under the # and make direct reference.    (0000GN)

Because the system is using the PurpleWiki parser to create the PurpleNumbers there are a few bonus features:    (0000GO)

Thus far I have been unable to make this stuff work as a pure Text Formatting plugin for MovableType. This is because the plugins run each time an entry is formatted for output. The PurpleNumbers I'm using are domain unique ids that are created at the time the referenced text is created and stay with the text after that. The computation to create the numbers must be done before the text is saved into the data store. Ben Trott has provided a suggestion for how to override MT::Entry::save() outside the distributed code but I've not had time to mess with that, so these features require a patch down inside lib/MT. So, saving the text as PurpleWiki is not a plugin, but the presentation (the wiki to html translation) is.    (0000GR)

Further complicating the picture is the fact that my current development version of PurpleWiki is far off the current 0.1 release and not well packaged. My changes include:    (0000GS)

Sequence based purple number generation    (0000GT)
This allows for PurpleNumbers that are unique across a given domain and provides the basis for lots of future fun.    (0000GU)
Explicit naming of the URL that forms the base for the named anchor    (0000GV)
This was necessary for MovableType to ensure the PurpleNumbers point to the permalink.    (0000GW)
Support SpaceCGI    (0000GX)
Very rudimentary support for human and machine readable fake/manual TransClusion. Follow SpaceCGI for more info and a demonstration.    (0000GY)

That's the stuff that's being used on this blog.    (0000GZ)

Also in the works is a graph-based data storage mechanism for Wiki pages and other systems that use the PurpleWiki parser. The goal of that work is to implement true transclusions in wiki pages. It's fairly close at this point but I need some serious HeadSpace to get it to all come together and that hasn't been available lately. In the meantime I've considered hacking the mechanism that SpaceCGI uses into the PurpleWiki viewer code.    (0000H0)

In related news: TomMunnecke noticed on the collab list that MovableType comments don't get PurpleNumbers. I'd like to do this. I'll need to create a save() in MT::Comment and do in it what I've done in MT::Entry. The only issue with that is that it is an all or nothing sort of thing: people leaving comments will be leaving them in PurpleWiki style. That could result in some interesting formatting.    (0000H1)

In somewhat less related news: I also have in the works a text formatting plugin that automatically generates haiku from the text in an entry and sticks it on the end. Queer Barney wants to use it, so I tried it in an earlier posting. It's working but needs to have the better syllable detection method turned on (there are two) and it needs to be packaged. Packaging is always the hardest part for me.    (0000H2)

Comments

1/5
On April 24, 2003 08:41 AM Danny Ayers said:

Thanks Chris, mighty interesting.

2/5
On April 24, 2003 02:23 PM BillSeitz said:

What about just making PurpleWiki sufficiently bloggy to make MovableType unnecessary?

(I'm thinking about Chandler as a graph datastore framework, at least until PaulSnively? gets around to writing a Python wrapper for e4graph...)

3/5
On April 25, 2003 11:31 PM Chris said:

Adding some of the CMS aspects that available in MT and make MT so interesting is more than I'd really like to do. Also, MT has a very significant portion of the "market" and a fine plugin mechanism that's supposed to continue to improve.

On a more abstract level, getting various tools to interact is a fine way to bring about improvement in both, much the same that people interacting can lead to improvement.

4/5
On April 26, 2003 01:55 PM BillSeitz said:

Could you be more precise about those CMS features? Do mean template control? Offline use? Something else?

5/5
On April 30, 2003 06:21 AM Chris said:

The CMS features I mean are the interface features that MT provides. These include template control, the categorization system, built in trackback, a fairly featureful editing interface (for editing existing posts), a good API, syndication support, etc.

None of these things are things that would be hard to create for PurpleWiki but since they are already done in something else, why not use 'em?

Sending...