SummerOfCode/2006/MikkoVirkkilä

= MoinMoin DocBook XML Conversion Tools =


 * Student: MikkoVirkkilä
 * Assigned Mentor: KarstenWade

What you see below is the original application. Some of the details have since changed and the project currently lives at MoinDocBookProject.

Application
I am going to work during the summer, so I expect to be working on this project during evenings and weekends. As my gf is going to move to another town for the summer, so I'm going to have a lot of time to spare in the afternoons and evenings.

In addition to working, I have no holidays, classes or anything else to work around.

My school will start again at the end of August.

Experience
I've done development using Java, C/C++, Python and various web related techniques like XML, CSS, Javascript, XSTL, and I'm familiar with database programming. I'm also the administrator of the my Guild's (the Guild of Automation and Systems Technology) server, and know my way around shellscripts and linux.

I'm the original author for the MoinMoin->Docbook formatter, so I'm intimately familiar with it, as well as that part of the MoinMoin infrastructure.

I've worked on MoinMoin, and did a cleanup of the gnome-app-install program (which was never accepted upstream). I've also worked with TheOpenCD project. I've created the WebSANE sane-frontend (http://websane.berlios.de).

School
I'm studying at the Helsinki University of Techology where I have been studying for 3 years. The department is called Automation and Systemstechnology, but is also geard towards media and communication.

Details
I'm proposing to finish the MoinMoin->Docbook formatter, and fix any bugs that I find. This will in practice mean that some MoinMoin macros will need to be cleaned up. To make sure the formatter will remain working through the development cycles in the future, I will also write tests, with which it is easy to confirm that the generator is still working. All this will also be documented. Also some tools to support working with docbook inside moinmoin will be created. These include a mass exporter and a mass importer.

Book importer, which will allow for exporting existing Docbook formatted books in to the wiki from the commandline. Each book will be split in to multiple chapters and pages. What worries me here is the possible loss of information. It is not possible to represent all information in a docbook using the wiki syntax. I'm hoping to find some way around this limitation, probably by embedding the extra information in to the page with one or several special macros. This script will use only readily available tools. It will also upload the necessary images.

The Book exporter will format a moin moin page specially created for generating a docbook-book. The page will include links to the different chapters in the docbook. It will format these pages and create a complete docbook from them.

For simple docbook books, the results of first importing a book to the wiki, and then exporting it should yield a book equivalent to the original.

Milestones

 * 26.5 Start
 * 5.6. Work on cleanup and bugs in existing formatter done.
 * 15.6. Proof of concept for book importer
 * 30.6. Proof of concept for book exporter
 * 15.7. Storing _all_ information of a dookbook-book in the wiki possible (probably by adding calls to special docbook macros) but possibly not completely implemented.
 * 30.7 Importing and exporting a book works
 * 15.8 Tests done. All documentation done. Project done.

Deliverables

 * Add any currently missing features incl better table support.
 * Book exporter in the form of a special moinmoin generator plugin
 * Tests (possibly unittests, depending no what the MoinMoin developers feel comfortable with) to ensure that the generator works.
 * Shellscripts to get a complete docbook book from the wiki (or individual pages) complete with images etc.

All code will be documented. Usage instructions will be written.

Why me
As I'm the original author of the existing MoinMoin->Docbook code, so I'm very familiar with it. I'm also familiar with some MoinMoin developers, and many parts of the MoinMoin code.

I am exited about this project, because many other projects use MoinMoin as their wiki, and I know for a fact that the Ubuntu documentation team have been very interested in using the Wiki as a means to create DocBook pages.

For people not familiar to Docbook, who want to write documentation and usage instructions, a wiki will be a simple way to do so. Creating tools for people to collaborate, on writing documentation for open source projects, is to me a worthwile project.