目录

Syntax

ShellessWiki supports some simple markup language, which tries to make the data files as readable as possible. This page contains all possible syntax you may use when editing pages. Just click on “Edit this page” to see the source code of this page.

If you want to try something, just use the playground page.

Basic Text Formatting

ShellessWiki supports bold, italic, underlined and monospaced texts. Of course you can combine all these formats.

ShellessWiki supports **bold**, //italic//, __underlined__ and ''monospaced'' texts.
Of course you can **__//''combine''//__** all these formats.

You can also use subscript and superscript.

You can also use <sub>subscript</sub> and <sup>superscript</sup>.

You can also mark something as deleted.

You can also mark something as <del>deleted</del>.

Paragraphs are created from blank lines. If you want to force a linebreak without creating a new paragraph, you can use two backslashes followed by a space or the end of line.

This is some text with some linebreaks
Notice that the two backslashes are only recognized at the end of a line
or followed by
a whitespace \\otherwise they won't work.

This is some text with some linebreaks\\ Notice that
the two backslashes are only recognized at the end of a line\\
or followed by\\ a whitespace \\otherwise they won't work.

You should only use forced linebreaks if really necessary.

ShellessWiki supports multiple ways of creating links.

External links are recognized automagically: http://www.google.com or simply www.google.com - You can also set link text: This link goes to Google. Email addresses like this: andi@splitbrain.org are also recognized.

ShellessWiki supports multiple ways of creating links. External links are recognized automagically:
http://www.google.com or simply www.google.com - You can also set
link text: [[http://www.google.com|This link goes to Google]]. Email addresses like this:
<andi@splitbrain.org> are also recognized.

Internal links are created by using square brackets. You can either just give pagename or use an additional link text.

Internal links are created by using square brackets. You can either just give
[[pagename]] or use an additional [[pagename|link text]].

Wiki page names are converted to lowercase automatically, special characters are not allowed.

You can use namespaces by using a colon in the page name.

You can use [[some:namespaces]] by using a colon in the page name.

For more information about namespaces see namespaces.

You can also link to specific sections. Just add the section name behind a hash character as known from HTML. This link points to this section.

This link points to [[syntax#internal|this section]].

Note:

You can also use an image to link to another internal or external page by combining the syntax for links and images (see below) like this:

[[http://nsjag.world|{{wiki:nsjag_icon-01.png}}]]

Please note: The image formatting is the only formatting syntax accepted in link names.

The full image and link syntax is supported (including image resizing, internal and external images and URLs and interwiki links).

Footnotes

You can add footnotes by using double parentheses 1).

You can add footnotes by using double parentheses ((This is a footnote)).

Headings

You can use up to five different levels of headlines to structure your content. If you have more than three headlines, a table of contents is generated automatically - this can be disabled by including the string ~~NOTOC~~ in the document.

Heading Level 3

Heading Level 4

Heading Level 5
==== Heading Level 3 ====
=== Heading Level 4 ===
== Heading Level 5 ==

By using four or more dashes, you can create a horizontal line:


Media Files

You can include external and internal images, videos and audio files with curly brackets. You can optionally specify their size.

Actual size:

Resize to given width:

Resize to given width and height2):

Resized external image:

Actual size:                        {{wiki:shellless.png}}
Resize to given width:            {{wiki:shellless.png?50}}
Resize to given width and height: {{wiki:shellless.png?200x50}}
Resized external image:           {{https://www.php.net/images/php.gif?200x50}}

By using a space at the left or right side, you can choose the alignment.

{{ wiki:shellless.png}}
{{wiki:shellless.png }}
{{ wiki:shellless.png }}

Of course you can add a title (most browsers will show this as a tooltip).

This is the caption

{{ wiki:shellless.png |This is the caption}}

For linking images to another page see Image Links above.

Supported Media Formats

ShellessWiki can embed the following media formats directly.

Images gif, jpg, png
Video webm, ogv, mp4
Audio ogg, mp3, wav
Flash swf

If the filename you specify is not a supported media format, then it will be displayed as a link instead.

By adding ?linkonly you can provide a link to the media without displaying it inline

{{wiki:shellless.png?linkonly}}

shellless.png This is just a link to the image.

Alternative Formats

Unfortunately not all browsers understand all video and audio formats. To mitigate this problem, you can upload files in different formats to get maximum browser compatibility.

For example, consider this embedded mp4 video:

{{video.mp4|An interesting video}}

When you upload video.webm and video.ogv next to the referenced video.mp4, DokuWiki will automatically add them as alternatives so your browser can understand one of the three files.

Additionally, ShelllessWiki supports “poster” images, which will be shown before the video starts. The image needs to have the same filename as the video and be a jpg or png file. In the example above, a video.jpg file would work.

Lists

ShellessWiki supports ordered and unordered lists. To create a list item, indent your text by two spaces and use * for unordered lists or - for ordered lists.

  1. The same list but ordered
  2. Another item
    1. Just use indentation for deeper levels
  3. That's it
  * This is a list
  * The second item
    * You can have different levels
  * Another item

  - The same list but ordered
  - Another item
    - Just use indentation for deeper levels
  - That's it

See also FAQ on list items.

Text Conversions

ShellessWiki can convert certain pre-defined characters or strings into images or other text or HTML.

Text to image conversions are mainly used for smileys. Text to HTML conversions are used for typography replacements, but can be configured to use other HTML as well.

Text to Image Conversions

ShellessWiki converts commonly used emoticons to their graphical equivalents. Those Smileys and other images can be configured and extended. Here is an overview of smileys included in ShellessWiki:

Text to HTML Conversions

Typography: shellesswiki can convert simple text characters to their typographically correct entities. Here is an example of recognized characters.

→ ← ↔ ⇒ ⇐ ⇔ » « – — 640×480 © ™ ® “He thought 'It's a man's world'…”

-> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
"He thought 'It's a man's world'..."

The same can be used to produce any kind of HTML, just add it to the pattern file.

There are three exceptions which don't come from that pattern file: multiplication entity (640×480), 'single quotes' and “double quotes”. They can be turned off through a config option.

Quotes

Sometimes you want to mark some text to show that it is a reply or comment. You can use the following syntax:

I think we should do it

> No we shouldn't

>> Well, I say we should

> Really?

>> Yes!

>>> Then lets do it!

I think we should do it

No we shouldn't
Well, I say we should
Really?
Yes!
Then lets do it!

Tables

ShellessWiki supports a simple syntax to create tables.

Heading 1 Heading 2 Heading 3
Row 1 Col 1 Row 1 Col 2 Row 1 Col 3
Row 2 Col 1 some spanning (note the double pipe)
Row 3 Col 1 Row 3 Col 2 Row 3 Col 3

Table rows have to start and end with a | for normal rows or a ^ for headers.

^ Heading 1      ^ Heading 2       ^ Heading 3          ^
| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
| Row 2 Col 1    | some spanning (note the double pipe) ||
| Row 3 Col 1    | Row 3 Col 2     | Row 3 Col 3        |

To connect cells horizontally, just make the next cell completely empty, as shown above. Make sure to have the same amount of cell separators!

Vertical table headers are also possible.

Heading 1 Heading 2
Heading 3 Row 1 Col 2 Row 1 Col 3
Heading 4 no colspan this time
Heading 5 Row 2 Col 2 Row 2 Col 3

As you can see, it's the cell separator before a cell which decides the format:

|              ^ Heading 1            ^ Heading 2          ^
^ Heading 3    | Row 1 Col 2          | Row 1 Col 3        |
^ Heading 4    | no colspan this time |                    |
^ Heading 5    | Row 2 Col 2          | Row 2 Col 3        |

You can have rowspans (vertically connected cells) by adding ::: into the cell below the one, which should be extended.

Heading 1 Heading 2 Heading 3
Row 1 Col 1 This cell spans vertically Row 1 Col 3
Row 2 Col 1 Row 2 Col 3
Row 3 Col 1 Row 2 Col 3

These cells should contain no other content besides the rowspan syntax.

^ Heading 1      ^ Heading 2                  ^ Heading 3          ^
| Row 1 Col 1    | This cell spans vertically | Row 1 Col 3        |
| Row 2 Col 1    | :::                        | Row 2 Col 3        |
| Row 3 Col 1    | :::                        | Row 2 Col 3        |

You can also align the table contents. Just add at least two spaces at the opposite end of your text: Add two spaces on the left to align right, two spaces on the right to align left and two spaces on both sides to center the text.

Table with alignment
right center left
left right center
xxxxxxxxxxxx xxxxxxxxxxxx xxxxxxxxxxxx

This is how it looks in the source:

^            Table with alignment           ^^^
|          right|     center    |left          |
|left          |          right|     center    |
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |

Note: Vertical alignment is not supported.

No Formatting

If you need to display text exactly as it is typed (without any formatting), just enclose the area either with <nowiki> tags or even simpler with the double percent signs %%.

This is some text which contains addresses like http://www.splitbrain.org and **formatting**, but nothing is done with it. The same is true for //__this__ text// and smileys ;-).

<nowiki>
This is some text which contains addresses like http://www.splitbrain.org and **formatting**, but nothing is done with it.
</nowiki>
The same is true for %%//__this__ text// and smileys ;-)%%.

Code Blocks

You can include code blocks into your documents by either indenting them by at least two spaces (as used in the previous examples) or by using the tags <code> or <file>.

This is text is indented by two spaces.
This is preformatted code all spaces are preserved: like              <-this
This is pretty much the same, but you can use it to show that you quoted a file.

These blocks were created by the following source:

   This is text is indented by two spaces.
<code>
This is preformatted code all spaces are preserved: like              <-this
</code>
<file>
This is pretty much the same, but you can use it to show that you quoted a file.
</file>

Syntax Highlighting

DokuWiki can highlight source code, which makes it easier to read. It uses the GeSHi Generic Syntax Highlighter - so any language supported by GeSHi is supported. The syntax uses the same code and file blocks described above, but this time the name of the language syntax to be highlighted is included inside the tag, e.g. <code java> or <file java>.

/**
 * The HelloWorldApp class implements an application that
 * simply displays "Hello World!" to the standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); //Display the string.
    }
}

The currently recognized language strings are: 4cs 6502acme 6502kickass 6502tasm 68000devpac abap actionscript3 actionscript ada aimms algol68 apache applescript apt_sources arm asm asp asymptote autoconf autohotkey autoit avisynth awk bascomavr bash basic4gl batch bf biblatex bibtex blitzbasic bnf boo caddcl cadlisp ceylon cfdg cfm chaiscript chapel cil c_loadrunner clojure c_mac cmake cobol coffeescript c cpp cpp-qt cpp-winapi csharp css cuesheet c_winapi dart dcl dcpu16 dcs delphi diff div dos dot d ecmascript eiffel email epc e erlang euphoria ezt f1 falcon fo fortran freebasic freeswitch fsharp gambas gdb genero genie gettext glsl gml gnuplot go groovy gwbasic haskell haxe hicest hq9plus html html4strict html5 icon idl ini inno intercal io ispfpanel java5 java javascript jcl j jquery julia kixtart klonec klonecpp kotlin latex lb ldif lisp llvm locobasic logtalk lolcode lotusformulas lotusscript lscript lsl2 lua m68k magiksf make mapbasic mathematica matlab mercury metapost mirc mk-61 mmix modula2 modula3 mpasm mxml mysql nagios netrexx newlisp nginx nimrod nsis oberon2 objc objeck ocaml-brief ocaml octave oobas oorexx oracle11 oracle8 oxygene oz parasail parigp pascal pcre perl6 perl per pf phix php-brief php pic16 pike pixelbender pli plsql postgresql postscript povray powerbuilder powershell proftpd progress prolog properties providex purebasic pycon pys60 python qbasic qml q racket rails rbs rebol reg rexx robots roff rpmspec rsplus ruby rust sas sass scala scheme scilab scl sdlbasic smalltalk smarty spark sparql sql sshconfig standardml stonescript swift systemverilog tclegg tcl teraterm texgraph text thinbasic tsql twig typoscript unicon upc urbi uscript vala vbnet vb vbscript vedit verilog vhdl vim visualfoxpro visualprolog whitespace whois winbatch wolfram xbasic xml xojo xorg_conf xpp yaml z80 zxbasic

For other advanced options for syntax highlighting, such as highlighting lines or adding line numbers.

Downloadable Code Blocks

When you use the <code> or <file> syntax above, you might also want to make the displayed code available for download. You can do this by specifying a file name after the language code, as shown below:

<file php myexample.php>
<?php echo "hello world!"; ?>
</file>
myexample.php
<?php echo "hello world!"; ?>

If you don't want any highlighting but want a downloadable file, specify a dash (-) as the language code: <code - myfile.foo>.

RSS/ATOM Feed Aggregation

shellesswiki can integrate data from external XML feeds. For parsing the XML feeds, SimplePie is used. Any format which is understood by SimplePie can be used in DokuWiki as well. You can influence the rendering by multiple additional space separated parameters:

Parameter Description
Any number Will be used as maximum number items to show, defaults to 8
reverse display the last items in the feed first
author show item authors names
date show item dates
description show item description. All HTML tags will be removed
nosort do not sort the items in the feed
n[dhm] refresh period, where d=days, h=hours, m=minutes. (e.g. 12h = 12 hours).

The refresh period defaults to 4 hours. Any value below 10 minutes will be treated as 10 minutes. DokuWiki generally tries to supply a cached version of a page, obviously this is inappropriate when the page contains dynamic external content. The parameter tells DokuWiki to re-render the page if it is more than refresh period since the page was last rendered.

By default, feeds will be sorted by date, newest first. You can use the reverse parameter to sort by oldest first, or nosort to display feeds as they are.

Example:

{{rss>http://slashdot.org/index.rss 5 author date 1h }}

Control Macros

Some syntax influences how ShellessWiki renders a page without creating any output it self. The following control macros are available:

Macro Description
~~NOTOC~~ If this macro is found on the page, no table of contents will be created
~~NOCACHE~~ ShellessWiki caches all output by default. Sometimes this might not be wanted (e.g. when using the <php> syntax above), adding this macro will force ShellessWiki to rerender a page on every call

Syntax Plugins

ShellessWiki's syntax can be extended by plugins. How the installed plugins are used is described on their respective description pages. The following syntax plugins are available in this ShellessWiki installation:

1)
This is a footnote
2)
When the given width and height aspect ratio mismatches with the image aspect ratio, it will be cropped to the new ratio before resizing