Templating Language for Authoring Tools

wysiwyg (what you see is what you get) authoring tools are very rarely wysiwym (what you see is what you mean) tools. When reading a book we leverage the meaning from the layout and the style of the text. We know that this little number at the bottom right is the number of the page, and not part of the flow of the text. Computers don’t.

Computers are dumb. Really they are. When we want to have a richer experience with an Web page either on the Web or in a more local context, we need to put extra information inside the page. For example, we will specify that this bit of text in the page is a postal address or a date for an event.

Humans want to have fun. It’s why they create tools. With appropriate tools, we avoid to spend too much time on things we don’t like. The only way to input an extra information in a Web page without pain is to use a mechanism (like a form). Behind the form a mechanism handles the generation of the appropriate markup in the page. It is called Structured Editing.

Many Content Management System have specific markup languages for defining templates of all sorts. They are all different unfortunately. There is no common standard for this, which makes it challenging to deploy your templates in a new environment. A group at INRIA has created a language for templating and structured editing: XTiger. The language has been implemented in Amaya, a testbed platform for Web authoring technologies. For example, to create markup for editing microformat such as hCard.

<xt:component name="author"> 
    <p class="vcard"> 
        <span class="fn"> 
            <xt:use types="string">Author name</xt:use> 
        <span class="adr"> 
            <xt:use types="string br">Address line 1<br/>
            line 2...</xt:use> 
        <span class="email"> 
            <xt:use types="string">email</xt:use> 

If you want to learn more about XTiger or better implement it, there are two very useful articles:

If you want to play with XTiger and actual authoring, you can download Amaya for Windows, MacOS X or Linux.