Wiki functions

edit

As is evident, the syntax is <<function input>>. The function name has no space before it. If there is a space, or the parser cannot find a function for the function-name given, then the text between the <<>> tags becomes nowiki'd by default. Hence:

<< unparsed text >>
<<foo unparsed text >>

Escape

edit

\ (backslash), like in many languages, is an escape character. Placed before any of the above code-types ({{}}, [[]], <<>>), it forces the parser to ignore it.

"<<code <<nowiki Look here \>\>\>\>\> at me! >> >>"

The above would give: "Look here >>>>> at me!". If the backslashes were not there it could give: "Look here > at me! >> >>"

This can be used as a shortcut to a simple use of <<nowiki {{spoiler}}>>. Instead one can just write: \{{spoiler\}}.

Paragraphs

edit
Paragraph

Paragraph with
This line not broken

Paragraph

However, not many users realize this initially. Thus the parser automatically detects line-break errors. If a line ends with punctuation, the parser infers a line-break:

Paragraph.

Paragraph.
This line breaks, as previous line ended with "." (full-stop); 
Any line ending with , ; . " ' ! ? % ) breaks (<br />)

Paraphraph
This line does not break

Paragraph.

Paragraph; no line-break at end of previous, as
           followed by empty line, not more text.

Paragraph

Possible table errors

edit

The closing and ending of a table means that the following table could break earlier than desired:

 
!!     1:1     !! 


woooah, this cell has some serious space!



end of cell - closing tags -------------->  !! 
!!   row2      !!               cell2       !! 
 

The above table may - depending on how clever the parser is, break after the first cell, and hence be only 1 cell large. This is because a table ends when there is a pipe followed by an empty line. Arguably this is not a problem. Whenever does one need empty space at the top of a cell? If it is desperately needed, then the above error can be avoided:

 
!!     1:1     !! 
{{}}


woooah, this cell has some serious space!



end of cell - closing tags -------------->  !! 
!!   row2      !!               cell2       !! 
 

Table wiki function

edit

A table's extension can be made explicit by encompassing it in the (new) wiki function <<table>>. This is also useful when line-breaks might break up a function of larger scope, or when table parameters might be accidentally parsed as part of a larger functions parameters. So:

<<table
!! 1:1 !! 1:2 !! 1:3 !!

cell 1:4
lalala!


closing tag --------------> !!
!! 2:1 !! 2:2 !! 2:3 !! 1:4 !!
>>

generates an explicitly contained 4x2 table. As with normal syntax, any linebreaks can be reduced to <<br>> to write a multiline string on one line. This also applies to the table syntax. New rows can be specified by replacing each newline with <<br>>. This allows a table to be written in a continuous string, which makes it much easier to include within a template. So:

<<table !! 1:1 !! 1:2 !! 1:3 !! <<br>> !! 2:1 !! 2:2 !! 2:3 !! >>

would give a 3x2 table. Note how the above string can be easily part of a template's parameters. Although it is now not so intuitive, templates never are, and are often more complicated anyway.

Table attributes

edit

Attributes have aliases. Simply including the alias in the right place assigns that attribute. So for instance, one could simply write "right" instead of "align=right". The "header" alias performs the same function as exclamations used to do in Wikimarkup. See further down for a full list of aliases.

Individual row control takes place after the row in question (after closing tags):

 
!right! 1:1 !! 1:2 !! 1:3 !! header
!!      2:1 !! 2:2 !! 2:3 !! class=foo
!!      3:1 !! 3:2 !! 3:3 !! style="x: y"
 

Entire table control involves a fake first row, with no closing tags:

 
!! border=1
!! 1:1 !! 1:2 !! 1:3 !! 
!! 2:1 !! 2:2 !! 2:3 !!
!! 3:1 !! 3:2 !! 3:3 !! 
 

Indentation

edit
>indented text
>>twice indented text
<indented in opposite direction, once
<<again, right-side indent, twice
><block quotation
<>block quotation

The last line of the above would generate text indented like this paragraph ("block-quoting"). The last line of the above would generate text indented like this paragraph ("block-quoting"). The last line of the above would generate text indented like this paragraph ("block-quoting"). The last line of the above would generate text indented like this paragraph ("block-quoting"). The last line of the above would generate text indented like this paragraph ("block-quoting"). The last line of the above would generate text indented like this paragraph ("block-quoting"). The last line of the above would generate text indented like this paragraph ("block-quoting").

The order of <'s and >'s is unstrict and irrelevent; the parser just counts the number of left and right brackets at the beginning of a line and indents as appropriate.

Possible bolding errors

edit

Closing tags are strictly not optional - this avoids ** interfering with unordered list markup. Tags are non-greedy and evaluated from the right. So the following code would give the example on the right:

    • bbbbbbbb

bbbbbbbb

    • bbbbbbbb

bbbbbb
bb**bbbb

**bb**bb**bb**bb**
**bb**bb**bb**bb
**bb**bbbb**bb
**bb**bb**bb**
  bb**bb**bb**

This demonstrates error-control. However, it is not normal for any length of text to contain so many double-asterisks; in 99% of cases you will be able to mix unordered list and bold markup without any problems. For instance, the following normal code gives the (intuitively desired) result on the right.

  • Point 1

Bold

***Point 1**
**Bold**