1. Overview

SlideML is a meta-language to aid in writing presentations in simple to read
text.  This text is then translated into XHTML and can be presented
using a standard web browser.


2. Meta-data

All meta-data tags must be at the start of the line and prefixed with @.
The meta-data is either a flag or a "value equals pair".  When the
meta-data tags are used before the first new slide designator the
values are global defaults.

The currently supported meta-data tags are:
The title of the presentation use the @title tag.  For example:
@title=My fancy presentation

The background color of the presentation uses the @background tag.  For
example:
@background=#12abff

The foreground color of the text uses the @foreground tag.  For example:
@foreground=#abcd00

There are two types of slides:
	1. Title slides (title)
		The title slide has centered large text for typically one or
		two lines for the presentation name and author.
	2. Regular slides (normal)
		This is a slide with a header, content and footer.
For example:
@type=title
or
@type=normal

If required one can use a picture as the background for the presentation
using the @backimage tag.  For example:
@backimage=example.png

The default font can be changed using the @font tag.  For example:
@font=mysnazyfont


3. Slides

All slide tags and section designators must be at the start of the line.

A slide consists of five sections:
	1. New slide designator
	2. Slide specific meta-data
	3. Slide header
	4. Slide content
	5. Slide footer

Expressed in slideml:
---
@metadata
<this is the header>
This is the slide content.
!this is the footer!

3.1 New slide designator

The new slide designator --- designates the  start of a new slide.

3.2 Slide meta-data

See section 2.  Only difference being that the meta-data only applies to
the current slide.

3.3 Slide header

The title of a slide is designated between <>.  This title is a large
font and is rendered on top of the page.  For example:
<This is my title>
The title attribute must be the first character on the line so that
something like a < b renders as text.

To center the title on the slide use >< instead.  For example:
>centered title< 

3.4 Slide content

This is where the meat of the presentation goes.  See section 4 for text
and other tags.

3.5 Slide footer

The footer of a slide is designated between !!.  This footer is a small
font and is rendered bottom of the page.For example:
!This is my footer!
The footer attribute must be the first character on the line so that
something like hi!! renders as text.


4. Text

The text tags are wrappers of meta-characters surrounding a piece of text.

The supported tags are:
	* Bold.  Bold is text wrapped in **
	  For example *this is bold*
	* Italic.  Italic is text wrapped in //
	  For example /this text is italic/
	* Underline.  Underline is text wrapped in __
	  For example _this text is underline_
	* Bigger font size.  Bigger font size is text wrapped in ^^
	  For example: ^bigger font^
	  Multiple ^ can be used to indicate ^^even bigger font^^
	  Up to two ^ can be used.
	* Bullets.  The graphical representation of bullets is
	  determined by which character is used.  The characters that
	  can be used are * (large bullet) - (dash bullet) . (small
	  bullet) and > (arrow bullet).
	  The physical indentation, expressed in number of tabs,
	  determines the indentation depth on the slides.

	* Pictures.
	  [img=I [size=P | width=W height=H] [xpos=X ypos=Y | align=A]]
	  Where:	I is a link to, or a picture.
			P is a percentage of the orignal size of an image.
			W & H are width and heigh in pixels
			X & Y are pixel locations
			A is align keyword such as left or top.

5. Tables

A table is specified as one or more cells that are denoted using the pipe (|)
character for the cell boundary. The pipe character can be followed by an
optional formatting specifier. This is then followed by a tab or a space and
your cell content.

Valid formatting specifiers for a table cell are:
- A pipe (i.e. ||) - this denotes a heading cell.
- A L, C, or R - these denote left, center or right alignment for the contents.
- A digit - this denotes the number of columns to span.
- A NxN (i.e. 2x2) - this denotes the number of columns and rows to span.

Tables automatically begin and end whenever cells are specified. For example:

  ||L Heading A ||C Heading B ||R Heading C |
  | 1 | 2 | 3 |
  | _logical_ *OR* | \|\| | or |
  |2 /foo/ |L _blah_ |

Will generate a table with one heading row and three data rows, with the left
column being left aligned, the middle column being centered and the right 
column being right aligned. With the last row the first cell is left aligned
and spans two columns, with the last (second) cell being left aligned.

The border of a table is controlled via the @tableborder meta-data value:

@tableborder=[solid|dotted|none]
