Some features of Curly use what is called the document format to store and display loosely structured textual descriptions, for various purposes from documentation to structured queries.

The document structure and syntax

This document format is similar in structure to a lightweight DOM :

Rendering documents

Most output in Curly is rendered from documents, to provide a uniform look-and-feel to the interface. This rendering can be configured by the style <tag-or-class-name> <property> <value> command within Curly sessions.

Here is a quick description of the available styling properties :

Documents as formatting patterns

In some cases, Curly uses documents as templates for structured queries. In those cases, the documents are "evaluated" before being printed out.

Evaluation doesn't affect the structure of the document, except for a few special tags, that are substituted upon each appearance. Under certain conditions (described below), evaluation can fail. When that happens, the whole pattern is considered invalid in its environment, and will be omitted from the result.

Curly recognizes the following special forms during document evaluation :