Wiki
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 useall_user_tags_all_pages
[91all_user_tags_all_pages%93 %93 - outputs all the tags added by users for all pages
all_user_tags_this_page
[91all_user_tags_this_page%93 %93 Shows all the user tags for the
currently viewed page.
anchor
[91anchor]91name=<the anchor name>%93 %93 Makes a named anchor. Text inside is ignored/removed.
axon.interfacedef
[91boxright%93 text %93 - Create a nice box, and puts it on the right hand side. Everything inside this tag is inside the box
body
[91body%93 <text> %93 Emits <body> tags around the text.
boxright
[91boxright%93 text %93 - Create a nice box, and puts it on the right hand side. Everything inside this tag is inside the box
cookies
[91cookies%93 %93 - Displays all cookies the user supplied
discuss
[91discuss%93 %93 - Spits out text + a link to a discussion version of the current page. Page -> PageDiscuss
env
[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
group
[91group%93 puts the text inside the box inside a table with no border %93
hr
[91hr%93 %93 - Insert a horizontal rule
href
[91href]91location=<url>%93 text %93 Makes a hyperlink : <a href='<url>'> text </a>
html
[91html%93 <text> %93 - Emits <html> tags around the text.
img
[91img]91align=<arg>]91width=<size>]91src=<url>%93 <text>%93 src is mandatory, rest are optional. Used to insert an image.
include
[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.
index
[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
linktoself
linktoself
oldboxright
[91oldboxright%93 <text> %93 Puts text is a not so nice box (table, not div) and that goes on the right
pre
[91pre%93 <text> %93 Wraps the supplied text in <pre> tags
prefs
[91prefs%93 %93 - FIXME
revision
revisions
roundedbox
[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.
sectionheading
[91sectionheading%93 text %93 - Uses text to set a "heading" for rounded boxes (deprecated)
showcookie
[91showcookie]91cookie=<cookieid%93 %93 Displays the value of a particular cookie, if set
sidebar
systemnote
[91systemnote%93 <text> %93 If there is a system wide note from the environment, this displays it + the text inside the tag
tabs
[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...
taglinkcloud
[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.
title
[91title%93 %93Emits the page name
tt
[91tt%93 <text>%93 - Takes the text and wraps it in <tt> tags
user
[91user%93 %93 - FIXME
user_tags
[91user_tags%93 %93 - FIXME
versioninfo
linktoself
versionlink
versionlink
versions
versions
As noted, the above list will probably change & extend overtime. The fixmes are notes inside the code regarding fixing the documentation(!)
Michael.