Florence Birée

MoinMoin wiki syntax integration in Crunchy

Google Summer of Code proposal

Florian Birée

Abstract

This project aim to add the support of a wiki syntax to make tutorials in Crunchy. Crunchy is a teaching tool for python: tutorials are currently written in xhtml or ReStructuredText, with the special VLAM markup – interpreted by Crunchy – to integrate a python interpreter inside tutorials. The support of a wiki syntax will allow tutorial editors to wrote their tutorials with a wiki syntax, which is easier and quicker to learn than xhtml, and can produce well-formed xhtml document without a knowledge of W3C recommendations.

One of the most important aspect of the wiki system is to allow collaborative work through Internet. Allowing a wiki document to be used as tutorial in Crunchy will permit to write tutorials in a collaborative way, like in a traditional wiki, and to use directly the document in Crunchy. Since Crunchy is a python tool to learn python, the better wiki choice is MoinMoin, a python-based wiki engine. This project aim to extend the MoinMoin wiki syntax to add VLAM markup, and let this syntax to be interpreted by Crunchy. A second part of the project is to help the collaborative edition of tutorials with MoinMoin, to make a better integration between MoinMoin and Crunchy.

Details

The support of the MoinMoin wiki syntax in Crunchy will be done in three steps. The first step is to extend the MoinMoin syntax for the VLAM syntax. VLAM stand for Very Little Aditional Markup, and is usually some keyword added to the title attribute of a <pre> tag to add a python interpreter or editor inside a tutorial.

VLAM can not be used directly in the wiki syntax (there is no title attribute nor <pre> tag). So, it is necessary to find an elegant and wiki-like syntax to add VLAM-like attributes inside a wiki page. This syntax must not be dis-interpreted by a standard MoinMoin wiki, and should match the much closer the VLAM syntax, to help further improvement in Crunchy be used directly in wiki pages. End of this step expected during the week of the 2d June.

The second step is to make a new Crunchy plugin to make the translation from MoinMoin wiki syntax to xhtml. This translation must also convert wiki VLAM-like syntax to real VLAM syntax. The result need to respect strictly W3C recommandations, and will be interpreted next by Crunchy like another xhtml document.

This plugin must allow Crunchy to load wiki documents from a local plain text file, or from a remote MoinMoin installation.

Because there is many wiki syntaxes, one aim of the plugin must be to allow to add easily the support of other wiki syntaxes. All the work in Crunchy will be documented and tested using unit tests.

End of this step expected at the end of June.

The third step is to work on the integration between Crunchy and MoinMoin. The aim of this project is to help the collaborative work on tutorial, so it is important to make this two softwares works together easily.

On the MoinMoin side, a MoinMoin extension can add a VLAM-like renderer to see if the VLAM code is correct, and how it will look in Crunchy for people who see the tutorial directly from the web.

On the Crunchy side, a plugin can add some integration tools with MoinMoin, like edit links: if somebody see a mistake in the tutorial wile browsing it through Crunchy, just a single click should be needed to fix it using the wiki engine.

End of this step expected before the “Suggested Pencils Down Week” (week of the 11th August). I will track my work on my blog (<http://filyb.info/> – it will be in English). MoinMoin relative work will be announced on the MoinMoin mailing-list, and will be available as other MoinMoin extensions.

Motivation

I'm a python fan since I discovered this programming language, and I want to support Crunchy to help spreading python around the world. I'm also very interesting about teaching programming: I hope to be a computer-science teacher at the end of my studies. I think teaching python using tools like Crunchy is very important for the free software world: free softwares exists only thanks to all their contributors, and help to teach programming languages will help people to involve in free software development.

About me

I'm Florian Birée, a French second-year student in computer-science at the university Paul Sabatier of Toulouse (France).

I've discovered programming in 2001, with various BASICs. I've begin to learn Python in the summer of 2005, and it's now my favourite programming language. At the university, I've learn CAML, Bourne Shell and imperative programming with C.

I'm involved in the free software world since 2004, year when I totally switched under GNU/Linux. Since 2005, I write a blog (in French) to speak – with other things – about free softwares <http://filyb.info/>.

My main experience in programming is the Casetta project (<http://casetta.tuxfamily.org/>) I've launched in 2006. This project aim to provide free softwares to manage CASIO scientific calculator on a computer, and it is fully written in Python, with PyGTK for the graphical interface. I've also write some other piece of software, mainly in Python, like Parangon (<http://dev.filyb.info/parangon>), an interface to make backups with rsync.

All my contributions for free softwares are summarized on my website (in French): <http://florian.biree.name/programmation/>

I'm also a member of the APRIL (French national association to promote and defend free software) and Toulibre (the LUG of Toulouse).

And when I don't work on free softwares, I'm a writer of science-fiction stories: I've published my first novel last year. More informations about me can be found on my website (in French): <http://florian.biree.name/>.