John Gregory
and 1 contributors

Caffeinated Markup Language

Please see the main page at as well as the wiki at for details for the language and usage guides.

What is it?

The Caffeinated Markup Language is an attempt to create a simple yet rich markup language. It is inspired by the best bits of other markup (and markdown) languages and builds on them with more features whilst not sacrificing source doc readability and ease of use.

The idea is to be able to markup a document simply and quickly without polluting with too much markup furniture or needing to embed foreign markup to acheive good layout.

Is this production ready?

The current version is beta so not recommended for production use.

What output formats are supported?

Currently the only formatter is Text::CaffeinatedMarkup::HTMLFormatter but feel free to write your own.

How do I write a new output formatter?

Currently the only parser is the Text::CaffeinatedMarkup::PullParser which provides a sequential tokenized stream from the input file. Check out the existing HTML parser (Text::CaffeinatedMarkup::HTMLFormatter) for an example.

At some point I'll get around to writing a proper guide. More than likely once the push parser and non blocking features have been fully implemented.

Where can I find out more?

Check out:

How about performance?

The current CML is an early build but performance is being factored in. There are no specific metrics yet but there will be and I'll be striving to get the performance as fast as possible. See "Is there an XS version?"

Is there an XS version?

Not yet, but it's on the roadmap.


J Gregory <>