```## tabid=welcome titletext='markup language and module' subjecttext='Markup Language and Module' infomarkup=homeinfobar ``` the line above is metadata, and is interpreted by client software = Welcome to SimpleWiki.org = (:div crossbar-high:)Current version: 1.2, December 26, 2013. [[Local:download | Download]] ``//(This website is powered by simplewiki 1.2)// (:divend:) (:div float:right:)%s smaller%//[[Local:display/article/welcome|view source markup]] (:divend:) |:p posting:|posted November 20, 2009; updated December 28, 2013 |:b divider:| This is the website for the the Muster Markup language (previously called the Simplewiki Markup language) [[Local:language |specification]], and the parser/emitter PHP5 [[Local:module | module]].``` See also %l newwin%[[Local:documentation/|technical documentation]] by %l newwin%[[http://doxygen.org|doxygen]]. For an example of what the markup looks like, [[Local:display/article/welcome|view the source markup]] for this page. (:div background-color:lightcyan border:"3px gray ridge" padding:3px margin-bottom:8px:) |:ul font-size:14pt font-weight:bold:|* Markup without limits * Easy (and standard) basic markup * Flat learning curve (:divend:) These are the basic characteristics of Muster Markup: * simple standard basic markup * simple comprehensive decorators for the basic markup * concise advanced tag declarations for all html5 elements * fast * extensible by client code in many ways Muster Markup is the markup language without limits. It's also html5 compatible, as of version 1.2. Muster Markup starts with the **%l newwin%[[http://www.wikicreole.org/|creole markup set]]** for basic markup, then adds **[[Local:language#decorators|decorators]]** for the basic markup (both inline decorators and block decorators) and very concise **[[Local:language#declarations|tag declarations]]** for all block and inline html5 elements, for advanced markup. Muster Markup 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 Muster Markup unique (as far as we know) is the thin veneer over HTML and CSS provided for more **advanced markup** through consistent formats of decoration 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. Decoration arguments, whether for decorators or tag declarations, are always in one of three formats: ``` note to source code readers: the two backticks at the front of each line below are line extensions, and are just there to format the markup - making it easier to read. They're removed before parsing begins, and they're optional. The three backticks at the front of this comment are for, well, comments. Comments are also removed before parsing begins. |:table standard compact width:100% background-color:lightgoldenrodyellow:| ``|:th width:13%:||=Format: ``|:th width:29%:||=Discreet-value format ``|:th width:29%:||=Colon-separated format ``|:th width:29%:||=Equals-separated format ``| ``` (end of row) |=Interpretation: |class|style rule|attribute| |=Example: ``|~|:table **%s color:green%standard%%**:~| ``|%i **%s color:green%border:'2px solid green'%%%** ``|~|:td **%s color:green%colspan=2%%**:~| ``| |:th vertical-align:top:||=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 ``| |:th vertical-align:top:||=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 ``| |:p font-size:smaller font-style:italic text-align:right:| ``Decorators are always placed in front of the objects they decorate. Any number of each decorator argument formats, in any appropriate combination, can be passed through decorators or tag declarations to markup objects. So these decorations allow any number of classes, styles, or attributes to be passed to the markup objects, and ultimately the generated html elements. In this way Muster Markup 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 Muster Markup module (called SimpleWiki) also supports **[[Local:language#declarations|tag declarations]]** for things like advanced div, blockquote, table and list work. Block declarations can be nested. Block and inline declarations support most available html5 tags, and can be extended. For behavioural extensions, Muster Markup also 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, tag declarations, **symbolic links**, and certain **events** can all be extended through client add-ins and handlers. The SimpleWiki module (which implements the Muster Markup Language) is [[Local:download|available]] for free, as open-source software, under the %l newwin%[[http://opensource.org/licenses/bsd-license|BSD]] licence.