Markup Code

Lines and Paragraphs [Edit]

Multiple paragraphs are marked as such by separating any two of them by an empty line:

First paragraph

Second paragraph

Two lines that are not separated by an empty line but a single line break only are treated exactly like this: a line break is forced at the end of the first line and the second line starts afresh.

First line.
Second line.

You can surpress a line break at the end of the first line by placing a backslash (\) at the end of that line. This folds the two successive lines together.

The quick brown fox \
jumps over the lazy dog.

Environmental Contexts [Edit]

The content of a line can be treated in a special way by placing selected characters as the very first character at the beginning of that line. Depending on this character, called the selector, special formatting of the rest of the line takes place. You may put any number of blanks between the selector and the rest of the line to to make it stand out more clearly.

Selectors of subsequent lines that are compatible with one another in regard of the current context are considered to be part of the same logical environmental context. Such a context can be thought of as text block, a compound of several lines each of which is supposed to be treated similarly. An empty line always breaks an environmental context, creating two paragraphs, i. e. contexts, of their own.

Escaping Characters [Edit]

You can escape the selector of a line by placing a backslash (\) in front of all other characters. Doing so treats the rest of the line as verbatim text in the context of a single paragraph.

A backslash also escapes any special character, enabling you to literally use such characters in your text without triggering a special behaviour or format. This is particularly useful for including literal brackets into your text that would otherwise create a link:

This is not a link, but just bracketed text: \[\[Text\]\].

Text Alignment [Edit]

You can align the content of a paragraph to the left, right and center, as well as justifying it, respectively, by calling upon a <, >, >< or <>-selector, respectively.

Note that you have to break the environmental context to alter the alignment of the content:

>< This line is centered.
> Although not lead by "><",
< the rest of this paragraph is also centered
because it belongs to the same context.

yields

This line is centered.
Although not lead by a "><",
the rest of this paragraph is also centered
because it belongs to the same context.

Verbatim Output [Edit]

An exclaimation mark selector instructs the compiler to treat the rest of the line as verbatim output, that is, to be displayed as is with no further formatting applied.

!#!/bin/sh
!while [ 0 ] ; do
!    echo Ping
!    sleep 1
!done

renders this very script (without the leading exclaimation marks).

Comments [Edit]

A semicolon marks a code line as a comment. Comments are not included in the output, but rather serve to make the source code more readable. Such remarks reach up to the end of the line and do not alter the surrounding context of a page.

; Begin of header
Once upon a time...
; Middle part where the story goes on for a while.
The knight rode out to slay the dragon and rescue the princess...
; End of text
And they lived happily ever after.

Rules [Edit]

Three dashes (---) placed as the only characters of a line create a horizontal rule and can be used to structure and separate multiple parts of a document. A horizontal rule always breaks the current environmental contexts.

Headlines and Titles [Edit]

To create headlines of a specific level you put a respective amount of equal signs (=) at the beginning of the line you want the header to appear in. You can go down as far as five ='s to specify the fifth level of a subtitle, while a single equal sign results in a first (highest) level headline.

= Main Title
I am the preamble.
== Sub Title
Some text.
=== Sub Section One
More text.
=== Sub Section Two
Even more text.

Headlines always break the current environmental context, creating one-line paragraphs of their own. You may insert blank lines before and after a headline to make the section it introduces stand out more clearly. Adapting the behaviour of other Wiki siblings, the compiler allows you to terminate headlines with the same amount of equal signs that opened them. This syntax, however, is optional.

== I am a second level headline ==

Tables [Edit]

Tables can be rendered via the pipe-selector (|), a.k.a. vertical bar. A pipe put as the first character of a line marks it as part of a table environment. The columns of a table row are separated from one another via further pipes, as is the end of the line to terminate the table row. All table rows must contain the same number of columns, though any of the table cells may be empty.

|One|Two|Three|
|First|||

Per default, the data of all table cells is aligned as according to the currently applying CSS. To explicitly declare the content of a cell to be horizontally aligned in a non-standard way, place >, <, >< or <> selectors as the first characters of that cell.

If an equal sign is either put as the very first character of a cell, or appears as the first character after the cell's alignment specification, this cell is treated as a table header instead of an ordinary cell. Table cells may be padded with any number of white space characters on the right side to make the source code more readable.

|=First Column|=Second Column|=Third Column|
|alpha        |beta          |gamma|
|<left |>< centered |> right|

translates to

First ColumnSecond ColumnThird Column
alphabetagamma
leftcenteredright

Lists [Edit]

Lists, foremost representatives of environmental contexts, are special insofar as list items can be nested within one another, the indent of a particular item depending on the depth of the surrounding environment. A list context is either terminated by an empty line or any statement that forces an environment to end prematurely, as it is the case with headlines and horizontal rules.

Ordered and Unordered Lists [Edit]

You start unordered, "bullited" lists with an asterix (*) at the beginning of a line. The number of *-signs determines the level of indentation at the left side of the generated list item.

Ordered lists, that is, lists that continuously increase their items' counters, start with one or more plus- or pound-signs (+ or #) at the beginning of a line.

* Master item
** First sub item
** Second sub item
* Master two
++ Count alpha
++ Count beta
* Master three

translates to

  1. Count alpha
  2. Count beta

The appearance of the various levels of lists, the bullit points of unordered lists as well as the enumeration type of ordered lists, must be declared via the CSS-settings of the site.

Definition Lists [Edit]

Definition lists are made up of lines consisting of a definition term and a definition text. They are introduced by a colon (:) at the beginning of a line, followed by the term, then another colon, and finally the defining text.

: First : First item of the list
: Second : Second item of the list
; A nested, unordered list follows:
** Alpha: First sub item
** Beta: Second sub item
; The definitions are continued:
: Third : The third item is a [[http://pie.ekkaia.org/|link]].

becomes

First
First item of the list
Second
Second item of the list
Third
The third item is a link.

Escaping Delimiters [Edit]

To embed literal pipe characters into tables and colons into definition lists the respective selectors either have to be escaped using a backslash, or must be used inside brackets, as it is the case with the link in the example above. Brackets always take precedence over delimiters when it comes to resolving the content of a line.

Text Spans [Edit]

If a character string is enclosed in single brackets and the first character of that block turns out to be a special character, a selector, this block is treated as a local miniature environmental context called a span. Unlike environmental contexts that comprise entire lines, spans only apply to the text chunk between the opening and closing brackets, both of which must reside in the same line. Like one-line selector counterparts for environmental contexts, spans are mostly used to alter the properties of text.

Spans have the form

[<selector><contents>]

where <selector> is a single special character, and <contents> represents the text the selector applies to. Spans can be placed in continuous text as well as nested inside environmental contexts, like lists and tables. Two or more spans must not be nested inside one another.

Verbatim Output [Edit]

Just like an exclaimation mark selector at the beginning of a line introduces verbatim output, an exclaimation mark selector in a span calls upon the span's content to be rendered as a detached, verbatim text block in monospaced style.

[!This is supposed to be code-like text.]

To avoid the detached block style in favor of continuous text that is still verbatim, use the equal sign selector (=) instead. This allows arbitrary text to be passed through to the reader unescaped.

See the @-selector below to create monospaced continuous text.

Emphasizing Text [Edit]

A slash (/) selector prints the content of the span in italics. An asterix (*) selector causes the text to be printed in bold characters. An underscore (_) yields underlined text.

Some [/italic], [*bold] or [_underlined] text.

For the sake of simplicity and comfort, emphasized text can also be evoked by enclosing that text in a pair of special characters. As a result, there is no need for additional brackets and, more importantly, for spans. If a text chunk is placed between two underscore (_) or double apostrophe ('') characters, it is rendered as emphatic text. Asterices (*) or triple apostrophes (''') raise this behaviour to the next level, strongly emphatic text.

The special meaning of these characters is only triggered, if they stand for themselves, that is, if they do not appear in the middle of a word, but are enclosed by blanks, punctuational characters, or appear at the beginning or end of the line. However, for asterices at the beginning of a line, the unordered list selector takes precedence.

Emphatic: [/this] might be the same as _this_ or ''that''.
Strong: [*this] might look like *this* and '''that'''.
However, _this_ is ''this'', and *that* is '''that'''.

Note that the use of spans on the one side and the simplified forms on the other not only differs in regard of typing style, but also in the very function it embodies. The /, * and _ selectors explicitly enforce the use of italics, bold and underlined text, respectively, while the simplified forms call upon emphasized and strongly emphasized text. From the typographical point of view, the latter form modifies the meaning of the affected part of a text, while the former just selects a different font variant or style for that part.

Citations [Edit]

Citations are triggered via a double quote selector.

["Believe nothing and be on your guard against everything.]

Monospaced Text [Edit]

To mark a span as code (which browsers usually display using a monospaced font), use an at-sign (@) as a selector.

Keep [@/etc/passwd] secret!

Size Variation [Edit]

A plus and minus sign call upon the content to be rendered as big and small, respectively.

This is [-small], whereas this is [+big].

Superscript and Subscript [Edit]

Apostrophe (inverted comma) and comma sign selectors call upon the content to be rendered as superscript and subscript, respectively.

a['2] = b['2] + c['2]
p[,n] = (x[,n], y[,n], z[,n])

a2 = b2 + c2
pn = (xn, yn, zn)

Special Characters [Edit]

Former software releases of this package required special, non-ASCII characters to be composed by code names and code numbers. Not so any more! The current version exclusively uses UTF-8 character encoding instead of the limited character range of the default 8-bit ISO-8859-x encoding, and consequently is capable of processing almost any existing Unicode character symbol. Just type these special characters using your computer's keyboard and locale setting. What you see is what you get!

Pie powered