This proposal is based on the discussion on Talk.Creole 0.4.
Rationale#
There is a need to support arbitrary data in Creole text, for at least two purposes:
- Modules (plugins) which allow a user to insert the result of the plugin into the page's contents.
- Literate programming
A fixed syntax for parameters should be avoided in Creole specification, because it is difficult to anticipate the requirements for data type, character set with escape sequences, etc. However, a simple mechanism which permits each plugin to recognize its data and to ignore other ones is important.
New syntax#
Block placeholder#
<<< org.domain.application arbitrary data on multiple lines >>>
There must not be any space before <<< (see inline placeholder below). Spaces between <<< and the reversed domain name are ignored; nothing (except for spaces which are ignored) may follow the reversed domain name until the end of line.
Inline placeholder#
context where Creole markup can appear <<< org.domain.application arbitrary data on multiple lines >>> more text
The plugin is expected to put the result (whatever it is) inline, without any line break before or after it. To begin a new paragraph with a plugin, begin with a space.