CSL Design and GUIs
Posted in Uncategorized on October 5th, 2005 by darcusb – 7 CommentsI’ve been thinking about how and whether to integrate CSL into OpenDocument. Right now the design of CSL is quite apart from OD. Everything in CSL, for example, is in its own namespace, and I’ve not tried to take advantage of the FO-based styling infrastructure in OD. Also, my primary design goal was a good–easy-to-author-and-validate–xml language. Compactness and performance were not priorities. So while I rely on elements for a lot of content, and tend to nest structures, OD tends to rely more on attributes.
It’s within that context that I’ve thought about refactoring the design a bit to fit better within a context like OD. As I have also always had in mind the need for GUI editors (including HTML-based versions) for the language, I’ve been wondering how easy some aspects of CSL are to handle from that perspective.
Enter Johan Kool, who has been chatting with me about some of this on the project list. Johan did the smart thing; rather than talk about it, he decided to open Interface Builder and start mocking up a GUI! I had done some simple playing around with HTML awhile back, and came up with examples like this:
    Â
     Â
    Â
Johan has gone a bit farther, though. Here’s his first stab at some windows. First up is the metadata panel:
    Â
     And here are the generic formatting panels.
    Â
     Nice to see that the XML design gave a good hint towards a GUI, since this is pretty much what I was visualizing as I was designing it.
The tricky part of handling the style configuration in a GUI is how to handle the nesting that is a fundamental part of citations, and of the CSL design. Here’s Johan’s first attempt:
    Â
     The problem here is it doesn’t handle the nesting within formatting blocks. For example, in CSL currently, creator is split between names and roles. While I could move CSL to a flat model, that introduces other problems. Additionally, something I didn’t attempt in my HTML mockup was a way to assign styling to those individuals chunks. So how about this?
     Â

Seems promising to me!
Update: from the comments, Johan seems to have had an epiphany that resulted in this:

This is definitely a simpler way to go.

Creative Commons License