Welcome to SimpleWiki.org
posted November 20, 2009; updated February 9, 2012
SimpleWiki markup starts with the creole markup set for basic markup, then adds decorators (both inline decorators and block decorators) and block declarations for advanced markup. SimpleWiki also supports macros.
Basic markup allows users to post articles with the usual simple and concise markup for headings, paragraphs, bold, italics, images, links, lists, quick tables, etc..
What makes SimpleWiki unique (as far as we know) is the thin veneer over HTML and CSS provided for more advanced markup through consistent formats of arguments passed to markup objects through decorators. Decorators provide a uniform way of applying classes, style-rules, and attributes to the objects created by simplewiki's basic markup.
Decorator arguments are always in one of three formats:
|Format:||Discreet-value format||Colon-separated format||Equals-separated format|
|Example:|||:table standard:|||%i border:'2px solid green'%|||:td colspan=2:||
|Action:||block decorator: add class "standard" to the class attribute of the quick table||inline decorator: place a border around an image||block decorator: make the current cell span two columns|
|Result:||adds class to underlying HTML element's class attribute||adds style rule to underlying HTML element's style attribute||passes attribute as-is to underlying HTML element|
Decorators are always placed in front of the objects they decorate.
Any number of each argument format, in any appropriate combination, can be passed through decorators or declarations to markup objects.
In this way SimpleWiki can act as a thin skin over HTML, which is very easy to maintain. In other words it can be the basis of a CMS (content management system), without having to invent new markup syntax for every new required element.
The SimpleWiki module also supports block declarations (which can be nested) for advanced div, blockquote, table and list work; and it supports macros. Furthermore class and property names can be registered by client software as methods (action classes and action properties), and interpreted in interesting ways (for example "footnote"). Class and property methods, macros, block declarations, symbolic links, and certain events can all be extended through client add-ins and handlers.