Summer of Code ™ 2006

Google’s excellent open source initiative

  • About

    This blog will chart my progress on the GuideXML editor project, which was selected by the Gentoo foundation for the Google Summer of Code 2006. I will also post my experiences and tips for next years aspirants as the project nears completion.

    You can check out my other blog for posts on a wider variety of topics, or my Homepage to find out more about me.

    GSoC and Summer of Code are Trademarks of Google, Inc.

    FeedBurner
    Technorati

  • Archives

Say Hello to Beacon v0.1!

Posted by Anant on August 19th, 2006

Update: Newer Screenshots :)
Phew! At last we have a working prototype of the GuideXML editor, and it’s called Beacon. Before we get bogged down with the technical details, lets have a look at the good stuff first :)

The welcome screen for Beacon is very simple, two options: Create new GuideXML document, or edit an existing one:

Beacon 0.2's welcome screen

Once you’ve entered the essential details, you’re taken to the actual editor. It’s mostly based on Dojo’s InPlace Editor widget, but the more complicated tags like <p> and <pre> are handled by a textarea instead (basically, tags that can have more tags in them). Although they are just stupid textareas for now, watch out for shiny new RTEs like TinyMCE, they are bound to replace the textareas anytime in the near future!

Create new GuideXML documents

With Beacon, you can even edit existing GuideXML documents with ease. Er, almost, don’t try editing the Gentoo Installation Handbook yet! (to be specific, <book> based GuideXML documents are not yet supported) But basically, everything remains the same as how it was when you create new document except that the content is already there:

Editing Existing XML Documents

Okay, the cool toolbox on the left allows you to drag and drop GuideXML elements on the document to add them. Dojo’s DnD kind of sucks, but MochiKit’s packed version doesn’t have DnD support yet…

Drag and Drop!

…Now the problem is that you can’t remove elements yet. Lame, I know, but I guarantee that the space below the toolbox is reserved for the DOM tree of the document. That neat little widget will allow you to re-arrange or delete your GuideXML elements at will.

Neat. Now onto the gory details. The whole application is meant to be a generic XML editor, yeah, that’s right, Beacon is not entirely specific to GuideXML alone! Thanks to Dojo and MochiKit (both of whom still don’t like to talk to each other, I made them sit in the same room with great difficulty; Dojo wouldn’t let MochiKit in unless it was `packed’!) the entire application is driven by powerful XML configuration files that control all aspects of the application.

Beacon maintains dual representation of the document at all times; that means we have two DOM trees, one representing the GuideXML document itself, and the other representing the HTML (and editable) version of the document which you see in the `Design’ tab of the editor. Thanks to XSLT, interconversion is quick (I won’t say painless though, XSLT is TOUGH!).

Well, I better get back to making the editor look more beautiful while thinking about that DOM Tree widget… Meanwhile, you guys, enjoy!

One Response to “Say Hello to Beacon v0.1!”

  1. Across the Stars… » What a Summer! Says:

    […] The all-great LH from Google had replied to my earlier roadmap for Banyan Tree. I’m very excited about that too, and hope that we can make something out of it. Now that the Summer of Code is finally over, I’ll be able to spend more time on Banyan Tree. Speaking of the SoC, it was just great. I learnt quite a lot about all the AJAX hype, met a lot of new people, had a lot of fun with the cool folks at Gentoo AND Google, and was able to churn out Beacon, a nice editor for GuideXML. There are some screenshots of the editor in that post as well. As mentioned on my other blog, Beacon is not limited to GuideXML alone, it can easily be extended to include other XML formats too (I hope ) There’s a lot of improvements that can be made to the editor, and I intend to continue developing it. Any help, of course, is greatly appreciated! […]

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>