This website is a wiki (called cerenity). Specifically, it's a wysiwyg wiki. You largely don't need markup as a result - you just type stuff and hit buttons to do styling if you want styling. Click the link button to make a link, etc. Pages linked to which don't exist will cause an edit box to be displayed when click on.

CDML itself as a syntax originated in prowiki, but the selection of tags in cerenity is different. The core syntax is this:
  • [[tag][attr=value][attr=value][attr=value] Text that tag is applied to ]
    • If a tag is not recognised, then the tag is ignored and the text inside is displayed
    • ie the failure mode for unrecognised markup is to default to making the test visible.
  • Tags can be nested. ie you can do this:
    • [[tag] [[anothertag] Text that tag & another tag is applied to ] Text that tag is applied to ]
  • The advantage of this syntax over a more traditional wiki syntax for directives is that this form of markup can be parsed in a single pass using an LR(1) parser. (ie fast)

Generally speaking you don't need to know them for writing pages. (wiki markup is a crutch often for a lack of wysiwyg) I've included a list of the tags & their docs - generated from the code. It's not perfect, but should show why you're not likely to need to worry about it :-)

please note that this list of tags will extend, and the format will probably change slightly at a later point in time.

Also, please be aware that the use of [ and ] for markup can occasionally cause problems with code samples. If you hit this problem use % 91% (sans space) for [ and % 93% (sans space) for ] . (Yes this is why the markup will change slightly at somepoint in the nearish future.

CDML Tags in use

   [91all_user_tags_all_pages%93 %93 - outputs all the tags added by users for all pages

   [91all_user_tags_this_page%93 %93 Shows all the user tags for the
   currently viewed page.

   [91anchor]91name=<the anchor name>%93 %93 Makes a named anchor. Text inside is ignored/removed.

   [91boxright%93 text %93 - Create a nice box, and puts it on the right hand side. Everything inside this tag is inside the box

   [91body%93 <text> %93 Emits <body> tags around the text.

   [91boxright%93 text %93 - Create a nice box, and puts it on the right hand side. Everything inside this tag is inside the box

   [91cookies%93 %93 - Displays all cookies the user supplied

   [91discuss%93 %93 - Spits out text + a link to a discussion version of the current page. Page -> PageDiscuss

   [91env]91var=<which var>]91default=<default text%93 %93 Insert the value of an environment variable. If the variable isn't set, return the default value

   [91group%93 puts the text inside the box inside a table with no border %93

   [91hr%93 %93 - Insert a horizontal rule

   [91href]91location=<url>%93 text %93 Makes a hyperlink : <a href='<url>'> text </a>

   [91html%93 <text> %93 - Emits <html> tags around the text.

   [91img]91align=<arg>]91width=<size>]91src=<url>%93 <text>%93 src is mandatory, rest are optional. Used to insert an image.

   [91include]91file=<filename relative to the root>]91croptop=<numlines]91cropbottom=<numlines>%93 text%93
   Performs much the same function as a #include in C - literally pull in the text
   from another page (technical transcludes) the other page into this one.
   croptop & cropbottoms are partial hacks - they remove the top/bottom
   lines (as many as indicated).

   Included pages also get evaluated.

   [91index]91cropextension=<bool>]91nobullet=.]91limit=]91sub=]91order=<ordering>]91compact=<bool>%93 text %93
   Used for creating indexes on the site.
   If you want to not show the extensions (recommended often), set cropextension to True
   If you just want a list with no bullets, set that to true.
   If you want to only traverse subdirectories, set sub to the subdirectory
   The only ordering supported (if supplying the order attribute) is "recent". Defaults to alphabetical otherwise
   Setting compact to true gives a more compact layout


   [91oldboxright%93 <text> %93 Puts text is a not so nice box (table, not div) and that goes on the right

   [91pre%93 <text> %93 Wraps the supplied text in <pre> tags

   [91prefs%93 %93 - FIXME


   [91roundedbox]91colour=<colour>]91heading=<heading> %93 Creates a
   rounded box round the text and aligns it on the right. The edges
   are the colour indicated if that colour is avaialble. Deprecated.

   [91sectionheading%93 text %93 - Uses text to set a "heading" for rounded boxes (deprecated)

   [91showcookie]91cookie=<cookieid%93 %93 Displays the value of a particular cookie, if set


   [91systemnote%93 <text> %93 If there is a system wide note from the environment, this displays it + the text inside the tag

   [91tabs%93 ... %93 This is the most complex of the things inside cerenity. Please look at the source for the /Miniaxon tutorial to see how this works...

   [91taglinkcloud%93 <text>%93 Splits text into phrases. Phrases are comma seperated. These made into a cloud of (wikiword) links to pages of those names. (experimental). Tag sizes reflect file size.

   [91title%93 %93Emits the page name

   [91tt%93 <text>%93 - Takes the text and wraps it in <tt> tags

   [91user%93 %93 - FIXME

   [91user_tags%93 %93 - FIXME




As noted, the above list will probably change & extend overtime. The fixmes are notes inside the code regarding fixing the documentation(!)

Kamaelia is an open source project originated from and guided by BBC Research. For more information browse the site or get in contact.

This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)

(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved

This web site is powered by the same code created for the bicker manor project. For more details, contact Michael Sparks at BBC Research directly (cf contact)