slideml (Slide Meta-Language) is a simple to use meta-language to generate presentation slides that can be viewed in a web browser. The idea was to use ASCII-chat like tags that are translated into XHTML. Joel Sing <email@example.com> wrote the perl code that translates the meta-language into XHTML. The JS, XSS & XHTML pieces were borrowed from Dave Raggett's <firstname.lastname@example.org> HTML Slidy.
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.
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:
The foreground color of the text uses the @foreground tag. For example:
There are 2 types of slides
- Introduction slide (intro), the introduction slide has centered large text for typically 1 or 2 lines for the presentation name and author.
- Regular slide (normal), this is a slide with a header, content and footer.
If required one can use a picture as the background for the presentation using the @picture tag. For example:
The default font can be changed using the @font tag. For example:
All slide tags and section designators must be at the start of the line.
A slide consists of 5 sections:
- New slide designator
- Slide specific meta-data
- Slide header
- Slide content
- Slide footer
Expressed in slideml:
--- @metadata <this is the header> This is the slide content. !this is the footer!
See section 1.2. Only difference being that the meta-data only applies to the current slide.
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:
This is where the meat of the presentation goes. See section 1.3.6 for text and other tags.
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.
New slide designator
The new slide designator --- designates the start of a new slide.
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.
Generating an HTML presentation
Example sml file:
# $slideml: slides.sml,v 1.12 2010/03/13 08:28:20 jsing Exp $ # example presentation # comment @title=My Fancy Presentation @background=#aaaaaa @foreground=#000044 #@backimage=moo.jpg --- @type=title <My Name Goes Here> [img src=http://www.openbsd.org/art/sublow.jpg size=40% align=center] A ^presentation^ on ^^thingy^^ stuff --- @background=#284360 @backimage=http://www.openbsd.org/images/tshirt-23.gif @backimagepos=center @backimagerpt=no --- @background=#000000 @foreground=#0000aa <My presentation> * Welcome to my bullet - yes it is this easy * Lets *bold* it * And /italic/ * Now lets _underscore_ - this is so *awesome* Include some text with_underscores_inline and *asterisks*inline! Include some text with_formatted\_underscores\_inline and \*asterisks\*inline! !copyright in the footer! --- <Title on slide> * is this cool or what? * now for some picture action [img src=http://www.openbsd.org/art/puffy/puf300X258.gif width=300 height=258 align=center] * puffy is awesome !my footer! --- @background=#ffffff @foreground=#333333 >One more slide< 1 number list 1 indented number 2 yeah 3 three! [img src=http://www.openbsd.org/art/puffy/puf300X258.gif size=20% align=right] --- >A slide with a table< ||L Heading A ||C Heading B ||R Heading C | | 1 | 2 | 3 | | _logical_ *OR* | \|\| | or | |2R /foo/ |L _blah_ | --- >Another example< == This is preformated text & should _not_ be <changed> == This text is <not> preformated & should be processed!
Generating an HTML presentation is as simple as:
$ ./slideml.pl examples/slides.sml > example.html
The resulting presentation can be seen here.
slideml.pl depends on p5-Image-Size.
- Bug tracker
- Mailing lists
- subscribe: email slideml-commits+subscribe at opensource.conformal.com
- unsubscribe: email slideml-commits+unsubscribe at opensource.conformal.com
- Anonymous source is available via one of the following:
slidy.css and slidy.js is distributed under the following license:
W3C Software Notice and License This work (and included software, documentation such as READMEs, or other related items) is being provided by the copyright holders under the following license. License By obtaining, using and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. Permission to copy, modify, and distribute this software and its documentation, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the software and documentation or portions thereof, including modifications: * The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. * Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software Short Notice should be included (hypertext is preferred, text is permitted) within the body of any redistributed or derivative code. * Notice of any changes or modifications to the files, including the date changes were made. (We recommend you provide URIs to the location from which the code is derived.) Disclaimers THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders. Notes This version: http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 This formulation of W3C's notice and license became active on December 31 2002. This version removes the copyright ownership notice such that this license can be used with materials other than those owned by the W3C, reflects that ERCIM is now a host of the W3C, includes references to this specific dated version of the license, and removes the ambiguous grant of "use". Otherwise, this version is the same as the previous version and is written so as to preserve the Free Software Foundation's assessment of GPL compatibility and OSI's certification under the Open Source Definition.
slideml.pl is distributed under the following license:
/* * Copyright (c) 2010 Joel Sing (email@example.com) * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
The meta language format has the following license:
/* * Copyright (c) 2010 Joel Sing (firstname.lastname@example.org) * Copyright (c) 2010 Marco Peereboom <email@example.com> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */