Here is a first draft of a v0.1 spec of Creole. I would still personally prefer asterisks for bullet lists, but dashes were agreed upon at Wikisym 06. In v0.2, I would also like to have a syntax for images, lists with sublevels and possibly tables. I would like to make this live and static by Friday. Please comment on the Discussion page.
Possible additions/changes in v0.2:
- mixed lists (unordered and ordered lists together)
- image links
- links to image
- alt in images
- tables
Overview
Single element examples#
Bold and Italics#
Bold and Italics should be able to embed in lists and one should be able to make links bold and italic. Text should not be bold or italic across paragraphs.Bold#
Creole:**bold**
Recommended XHTML:
<strong>bold</strong>
Sample Output: bold
Italics#
Ignore for italics processing if immediately following http: or ftp:Creole:
//italics//
Recommended XHTML:
<em>italics</em>
Sample Output: italics
Creole:
Bold and italics should //be able// to cross lines. But, should //not be... ...able// to cross paragraphs.
Recommended XHTML:
<p> Bold and italics should <em>be</br> able</em> to cross lines. </p> <p> But, should //not be... </p> <p> ...able// to cross paragraphs. </p>
Sample output:
Bold and italics should be
able to cross lines.
But, should not be...
...able to cross paragraphs.
Bold Italics#
Creole:**//bold italics//** //**bold italics**// //This is **also** good.//
Recommended XHTML:
<strong><em>bold italics</em></strong> <em><strong>bold italics</strong></em> <em>This is <strong>also</strong> good.</em>
Sample Output:
Bold italics
Bold italics
This is also good
Unacceptable:
**//bold italics**// //**bold italics//**
Lists#
Bold, italics, links, pre can be embedded in lists. Whitespace is optional before and after the * or # character. It is recommended to have support for a depth of at least five levels.Unordered Lists#
Creole:
* Item 1 ** Item 1.1 * Item 2
Recommended XHTML:
<ul> <li>Item 1 <ul> <li>Item 1.1</li> </ul> </li> <li>Item 2</li> </ul>
Sample Output:
- Item 1
- Item 1.1
- Item 2
Ordered Lists#
Creole:# Item 1 ## Item 1.1 # Item 2
Recommended XHTML:
<ol> <li>Item 1 <ol> <li>Item 1.1</li> </ol> </li> <li>Item 2</li> </ol>
Sample Output:
- Item 1
- Item 1.1
- Item 2
Headings#
Only three different sized levels of headings are required. Closing (right-side) equal signs are optional. If both left side and right side equal signs exist, the left side takes precedence. Whitespace is not allowed before the left-side equal signs. Only whitespace characters are permitted after the closing equal signs. No linebreaks are allowed within headings (this includes logical linebreaks made by using a backslash at the end of a line, for example). Bold, italics, links and preformatted text are allowed in headings.Creole:
== Level 2 (largest) == === Level 3 === ==== Level 4 ==== ===== Level 5 ===== ====== Level 6 ====== === Also level 3 === Also level 3 = === Also level 3 == === **not** //parsed// ===
Recommended XHTML:
<h2>Level 2 (largest)</h2> <h3>Level 3</h3> <h4>Level 4</h4> <h5>Level 5</h5> <h6>Level 6</h6> <h3>Also level 3</h3> <h3>Also level 3</h3> <h3>Also level 3</h3> <h3><strong>not</strong> <em>parsed</em></h3>
Internal and External Links#
Links should not be allowed to contain a linebreak. Any markup within a link will not be parsed.Creole:
[[link]] [[MyBigPage|Go to my page]] [[http://www.wikicreole.org/]] http://www.rawlink.org/ [[http://www.wikicreole.org/ | Visit the WikiCreole website]] [[Weird Stuff|**Weird** //Stuff//]]
Recommended XHTML:
<a href="http://www.examplewiki.com/link">link</a> <a href="http://www.examplewiki.com/MyBigPage">Go to my page</a> <a href="http://www.wikicreole.org/">http://www.wikicreole.org/</a> <a href="http://www.rawlink.org/">http://www.rawlink.org/</a> <a href="http://www.wikicreole.org/">Visit the WikiCreole website</a> <a href="http://www.examplewiki.com/Weird_Stuff">**Weird** //Stuff//</a>
Sample Output:
link
Go to my page
http://www.wikicreole.org/
http://www.rawlink.org/
Visit the WikiCreole website
__Weird__ ''Stuff''
Paragraphs#
Blank line makes paragraph.Creole:
This is my text. This is more text.
Recommended XHTML:
<p>This is my text.</p> <p>This is more text.</p>
Sample Output: This is my text.
This is more text.
Linebreaks#
Treat line breaks as line breaks. Best practice: line continuations made with backslash at end of line. This rule is optional If implementing a mixed native/creole mode.Creole:
This is the first line. This is the second line.
Recommended XHTML:
<p> This is the first line.<br /> This is the second line. </p>
Sample Output:
This is the first line.
This is the second line.
Preformatted#
This works in-line or as a block. No wiki markup is interpreted between these characters and all characters become monospace. As a block, the three curly braces should be on one line by itself to open and another line of three curly braces should be on a line by itself to close.Creole:
{{{ //This// does **not** get [[formatted]] }}}
Recommended XHTML:
<pre> //This// does **not** get [[formatted]] </pre>
Sample Output:
//This// does **not** get [[formatted]]
Creole:
Some examples of markup are: {{{** <i>this</i> ** }}}
Recommended XHTML:
Some examples of markup are: <tt>** <i>this</i> **</tt>
Sample output:
Some examples of markup are: ** <i>this</i> **
Horizontal Rule#
Whitespace is optional before and after the hyphens, but no whitespace is allowed between them. The four hyphens must be the only characters (other than whitespace) on that line.Creole:
----Recommended XHTML:
<hr />
Image (inline)#
Creole:
{{myimage.png}}
Recommended XHTML:
<img src="myimage.png" />
Placeholder#
When there is something advanced like tables, a placeholder will show up, so users will not be confused seeing more than one syntax. (optional for wiki developers)Creole:
<<x>>
Mixed syntax examples#
Bold and/or italic links#
Creole://[[Important page|this link is bold]]// **[[Important page]]** //**[[Important page]]**//
Recommended XHTML:
<em><a href="http://www.examplewiki.com/Important_Page">this link is bold</a></em> <strong><a href="http://www.examplewiki.com/Important_page">Important page</a></strong> <em><strong><a href="http://www.examplewiki.com/Important_page">Important page</a></strong></em>
Sample Output:
this link is bold
Important page
Important page
Bold, Italics, Links, Pre in Lists#
Creole:* **bold** item * //italic// item # item about a [[certain page]] # { { { //this// is **not** [[processed]] } } }
Recommended XHTML:
<ul> <li><strong>bold</strong> item</li> <li><em>italic</em> item</li> </ul> <ol> <li>item about a <a href="http://www.examplewiki.com/certain_page">certain page</a></li> <li>//this// is **not** [[processed]]</li> </ol>
Sample Output:
- bold item
- italic item
- item about a certain page
- //this// is **not** [[processed]]