Breath (or cup) of pure oXygen

One of my DiXiT objectives are the improvements to the oXygen-TEI framework. Oxygen is a very popular XML editor that offers built-in support for TEI and the plan is to make this support even better. I will be staying with the oXygen team over the summer but I thought some reconnaissance beforehand would not go amiss.

Early November weather in Romanian city of Craiova (headquarters of SyncRO, creators of the most popular editor in TEI community) is quite chilly but the warm welcome I got from George, Alex, Octavian and the rest of oXygen crew makes you not to notice the cold.

Romanescu Park. Not the Count Dracula’s Castle but stil very picturesque.

Idea for this week was to turn me into oXygen editor power-user with the plan of developing enhancements for the oXygen TEI framework. I went through the process of customizing the various aspects of oXygen behaviour – especially defining new Actions available in the Author mode to perform specific tasks.

First thing I tackled was the incorporation of dr Marjorie Burghardt’s tool called TEI Critical Edition Toolbox. It is based on TEI BoilerPlate but delivers custom stylesheets and additional JavaScript operations to allow users to check their consistency in encoding textual variations with parallel segmentation method. Toolbox available from requires user to upload a file for it to be converted and presented as html page. What I wanted to do was to pack it into TEI oXygen framework, so all the user needs to do is hit a button while editing the file and get the results immediately – no need to upload the file after every change.

The necessary steps were to isolate the relevant bits from php-based TEI Critical Edition Toolbox: the xslts used to convert the original TEI source to feed into the BP, the CSS files and JS libraries. I had to add an ANT transformation scenario in oXygen and enable it in TEI framework to actually perform the operation.

Next step was to create a custom button to trigger the transformation. So far oXygen allows this in Author mode only. Every custom button or menu option can invoke one of built-in or custom-made oXygen operations. Operation that can invoke transformations is called ro.sync.ecss.extensions.commons.operations.ExecuteTransformationScenariosOperation. This is one of standard oXygen operations that does exactly what it’s name says – executes a transformation scenario. As a parameter it takes a name of the transformation scenario and I used the ANT based scenario I added to the framework before. Having an oXygen action ready it’s just a click of a button to add a button triggering that action.

The detailed description of the above process that can be repeated to create other custom button can be found on github. Once done it’s not that scary! Cheers!



Leave a Reply

Your email address will not be published. Required fields are marked *