Here are the tags you can use in your .plan files.

Note that IcculusFinger tags use different characters than HTML tags. [FingerTag] is very different than <FingerTag>. HTML tags in the finger output will always be reformatted into plain text before being sent to a client, even for web requests.


Markdown

As of version 2.1.26, we support Markdown. Markdown sections can be embedded alongside all the other IcculusFinger markup tags, but generally I'd recommend wrapping your whole .plan in a single markdown block now, outside of metadata tags like titles, etc.

No IcculusFinger tags work inside Markdown blocks, and other features might conflict (links in Markdown won't cooperate with IcculusFinger's usual link digtest stuff, etc).

Note that not only does Markdown offer features that IcculusFinger otherwise doesn't, it assumes that HTML clients will reflow text, making for a nicer experience on, say, mobile devices. We can't guarantee that outside of Markdown blocks.

When not serving to a web browser, we don't process Markdown at all (which is sort of the point), so plan to write Markdown as text file that's human-readable on an 80-column terminal and assume it'll do the right thing on the web.

Markdown syntax is documented here.

USAGE:
[markdown]
This is *Markdown*!
- Here's a list item
- Here's a second list item
[/markdown]

Titles

All title tags in your finger output are pooled up, and one is randomly chosen before the parsed output is sent on to the client. In HTML, the chosen title is used in the actual <title> tag. In plain text, the chosen title is just prepended to the output. Note that systems running IcculusFinger can opt to list multiple default titles, which will randomize in with the rest of your [title] tags. If the system is set up with one single default, it is always overridden by these tags, however.
USAGE:
[title]This is a random title.[/title]
[title]This is another random title.[/title]

Stylesheets

If you wish to add a little more graphical flourish to your html output, you can use a stylesheet. Supply the full URL within the [style]...[/style] fingertags. Behaviour with multiple [style][/style]tags is undefined. Div classes are:
"top", which contains the title at the top of the page
"content", which your .plan content is placed within
"bottom", which contains, among other things, your "Witty Remarks" [see below].
"entry", if you choose to make use of the [entry]..[/entry] fingertags
USAGE:
[style]http://icculus.org/style.css[/style]

"Witty remarks"

All "witty remark" tags in your finger output are pooled up, and one is randomly chosen before the parsed output is sent on to the client. The remark is tacked onto the end of the finger output, after the IcculusFinger credit. If you don't supply one, the system default remark is used (default is "Stick it in the camel and go." Don't ask.) Note that systems running IcculusFinger can opt to list multiple default witty remarks, which will randomize in with the rest of your [wittyremark] tags, which means the remark chosen may not be yours. If the system is set up with one single default, it is always overridden by these tags, however.
USAGE:
[wittyremark]This is a witty remark.[/wittyremark]
[wittyremark]You damned kids today.[/wittyremark]

Bold

Bold text. This looks like this in HTML, and is outputted in plain text *like this*.
USAGE:
[b]This is bolded text![/b]

Italics

Italicized text. This looks like this in HTML, and is outputted in plain text /like this/.
USAGE:
[i]This is italicized text![/i]

Underlines

Underlined text. This looks like this in HTML, and is outputted in plain text _like this_.
USAGE:
[u]This is underlined text![/u]

Centering

Centered text. These are replaced with <center> tags in the HTML output, and centers lines of text in an 80 char-wide frame for plain text output.
USAGE:
[center]This is centered text![/center]

Fonts

Change the attributes of a text's font. These are replaced with <font> tags in the HTML output, and are discarded in plain text output.
USAGE:
[font size="+3" color="#FF0000"]This is big, red text![/font]

Links

Associate a hyperlink with some text. These are replaced with <a> tags in the HTML output, and are formatted as such in plain text output:
This is link text. [http://www.host.dom/filename.ext]
Please note that this makes it tricky to format your finger output so that it looks good in both HTML and plain text.
USAGE:
[link="http://www.host.dom/filename.ext"]This is link text.[/link]

Images

Add graphics. These are replaced with <img> tags in the HTML output (with the contained text put into an "alt" and "title" attribute), and are replaced with the text and the URL in plain text output.
USAGE:
[img="http://www.host.dom/picture.png"]A picture of a beautiful landscape[/img]

Sections

Groups a block of data into a section. Finger requests will display all sections unless otherwise instructed. To grab only a specific section, finger clients should ask for
username?section=sectname instead of just username
USAGE:
[section="mysectionname"]This is sectioned text![/section]

Entries

Groups a block of data into an "entry". This isn't as flexible as sections, but is different in that it gets blindly wrapped in html, for use combined with [style] fingertags: <div class="entry">...</div>
USAGE:
[entry]This an entry[/entry]

Default Sections

Specify that, unless the client asks for a specific section, only one section should be shown. If there is more than one [defaultsection] tag, only the last one is considered, and the rest are simply removed.
USAGE:
[defaultsection="mysectionname"]

Non-archiving Sections

If you got a chunk of your .plan that changes a lot, and you don't want the archiver to store a revision each time that chunk changes, wrap it in a [noarchive] block. This is a metatag: they are removed without changing the markup when fulfilling any type of finger request. The archiver, when deciding if it should store a new revision, will remove all [noarchive] blocks from the .plan file and the latest archived revision before string-comparing the two. If the strings are equal after the revision, they aren't archived. This is handy for keeping a TODO list in your .plan, which changes a lot, but isn't worth archiving for each change.
USAGE:
[noarchive]
This text is unimportant and/or changes a lot.
[/noarchive]


--ryan c. gordon.