markup language

A markup language is a text format adding processing instructions to plain text, usually for the purpose of either of rendering or logical organization.


A markup language might denote some semantic role of a certain string of the text, for example, document title, chapter delimiter, paragraph delimiter, etc.

Another common type of markup is presentation markup. This is the type of markup we use on this wiki. With presentation markup, you indicate what special actions should be taken during transformation of the text from raw text to the form presented to the user. Here on the wiki, we can

  • mark words as italic (surround then with double apostrophes)
  • mark words as bold (surround them with triple apostrophes)
  • insert horizontal rules (four dashes in a line only)
  • create bulleted lists (start line with 3 spaces, asterisk, space, then your text)

and more.

Typically, if one has a semantic markup, one also has some sort of means to also transform the semantical parsed text into a preferred presentation format. However, the opposite is not often true - if one only has presentation markup, it is quite hard to generate an accurate semantical tree of the document, unless the user takes great care to use presentation and content in such a way that one can somehow derive semantical meaning from the text.

These distinctions are sometimes summarized as being between procedural markup and declarative markup.

Markup Languages

The Aida project is two-fold :
  • it defines a simple common markup language, designed to describe structured text;
  • it provides a compiler which translates the Aida syntax into various target formats (Html, Latex, Trac, Mediawiki, Text, Markdown,...).
This is useful to create and maintain documentations, help files, etc, which must be distributed on different supports (Web pages, PDF documents, Wiki pages,...). The user writes his/her files using the common Aida Markup Language and converts them to the target format with the aida command.
The system is fast, flexible and extensible. The core command aida is a strict parser (written using Bison and Flex) which analyses files written in the Aida Markup Language and invokes callbacks in order to convert them to the target format.
The aida command embeds a Tcl language interpreter and all the callbacks are written in Tcl: the Tcl scripts constitute Aida's library. This architecture makes it easy to extend the library and define new target formats. It is also very powerful because any Tcl code can be sourced and evaluated within the Aida files and thus one can create dynamic contents, generated on the fly.

See Also

lightweight markup languages
Simple Markup
a simple presentation markup language.
Structured TeXt
a generic name for a classe of simple markup lanauges
Template and Macro processing
Tcl as a markup language