I developed a small markup language to use on my site. The following is a listing of the whole syntax of the language:


Basic Text Markup

**bold**: bold
//italic//: italic
__underline__: underline
^^superscript^^: superscript
,,subscript,,: subscript
--strikethrough--: strikethrough
''overline'': overline
..small..: small
@@big@@: big

Note: no spaces are allowed between markers and the text, e.g. ** text ** will not make the text bold.

iMPORTANT INFORMATION ⇒ Important information, Please read! (simply type normal with caps lock on)

Two  spaces  between  words ⇒ The force is <strong> in this one

Common abbreviations like CSS or GNU are wrapped in ‘<abbr>’ HTML tags, and a tooltip with the full expression is added. Abbrevations must only consist of uppercase letters, except for the last one which may be a lowercase ‘s’.


Text->njol.ch ⇒ Text
[Text with spaces]->/projects/markup ⇒ Text with spaces

Special URL cases:
If the URL doesn't include a protocol (http://, ftp:// or whatever) and is not relative http:// is added.
Non-relative urls are set to open in a new tab/window.

Also there must neither be a space before nor after ‘->’ as it will be converted to ‘→’ in this case.

Plain text urls (like ‘xxx://xxx.xxx’) are auto-linked, and also set to open in a new tab/window.
http://njol.ch ⇒ http://njol.ch

E-mail addesses are automatically encrypted and linked: sad4min@njol0.gchb.com


* a simple list
* to list things
* list items can
  also take up more
  than one line

– dash

Numbered Lists

# numbered list
  1. this list is numbered
  2. in contrast to the lists above
  3. and can also have items
    which span more than one line

#x numbered list starting at x
  1. this numbered list
  2. starts at 5

#ivx etc./IVX etc.: roman list
  1. creation of this website
  2. 21th of december: end of the world

#a-z/A-Z: alphabetical list
  1. this list starts at zy
  2. then
  3. goes
  4. on
Note: Alphabetical lists cannot be started with i,v,x,l,c,d or m or any combination of these as they will start a roman list (the same applies to upper case roman numbers).


Images can be inserted like this: ((url.to/image|title-text|alt-text|type))
e.g. ((/images/smileys/grin.png|hey!|=D)) ⇒ =D



available smilies:
=) =D 0=) =| =( =o =P =S ;) ^^ ^^' >_> >_>' >=( >=) >=D ='( =x $_$ 8F B) O_O u_u x_x (%) <3 </3 <] [>
Note: As smilies contain some special characters, they must be surrounded by spaces and/or line breaks, or alternatively be enclosed in brackets: (8F) ⇒ 8F.

Horizontal Ruler

3 or more dashes:


ellipses: ... ⇒ …
fractions: 1/4, 1/2, 3/4, 5/12 ⇒ ¼, ½, ¾, 512
quotes: "...", '...', <<...>> , >>...<< , >...< ⇒ “…” , ‘…’ , «…» , »…« , ›…‹ (<…> is not changed due to its use in XML)
arrows: -->, <->, <--, ==>, <=>, <== →, ↔, ←, ⇒, ⇔, ⇐
(c), (r) ⇒ ©, ®
+-, ^1, ^2, ^3, !=, <=, >= ⇒ ±, ¹, ², ³, ≠, ≤, ≥


Code can be written inline (using {{code here}}) or as blocks:
this "code" is;
!not //highlighted
Any code can also be highlighted in all languages supported by GeSHi:
is = Highlighted.as; //Java



this qoute has neither an author
nor a source URL.

Author: "
" url

Wikipedia's article ‘Website’:
A website, also written as Web site, web site, or simply site, is a collection of related web pages containing images, videos or other digital assets. A website is hosted on at least one web server, accessible via a network such as the Internet or a private local area network through an Internet address known as a Uniform Resource Locator. All publicly accessible websites collectively constitute the World Wide Web.

multiple quotes from the same author and/or source:

Author: "
first quote
second quote
" url

Two quotes by Mahatma Ghandi:
Victory attained by violence is tantamount to a defeat, for it is momentary.

You must be the change you want to see in the world.




A line of text can be indented with >, e.g.
>text to indent

indented text
please note that this will only indent the first line of a paragraph.

Line Breaks

Lines are splitted as given. This means that every line break becomes a <br/> if it's not before or after a block element, as block elements already break the line.

They can be removed by escaping (\
) ⇒ ( ) or forced with \\.


= Header level 2[ =] (it starts at level 2 as the page title is already level 1)
== Header level 3[ ==]
They can be linked to like this: #header_name, e.g. link to this section
Note: Headers cannot be used in comments.

Toggle Parser

parser on ¬[ parser off ]¬ parser on

Unparsed text is treated like a single character while parsing, e.g. it's text without spaces, special characters or stuff like that.
This also means that urls which already include http:// should not be escaped: ‘http://’ will be added automatically since it's “missing”.
Escaping both the url and the name of a link will have unexpected results…
¬[//complex name//]¬->http://¬[url.with/special__syntax__]¬