Spork - Slide Presentations (Only Really Kwiki)


    mkdir my-slideshow
    cd my-slideshow
    spork -new
    vim Spork.slides
    vim config.yaml
    spork -make
    spork -start


Spork lets you create HTML slideshow presentations easily. It comes with a sample slideshow. All you need is a text editor, a browser and a topic.

Spork allows you create an entire slideshow by editing a single file called Spork.slides (by default). Each slide is created using a minimal markup language similar to the syntax used in Kwiki wikis.


Spork markup is like Kwiki markup.


Slides are separated by lines consisting entirely of four or more dashes. Each slide consists of text and markup. This section describes each of the markup units.

Any slide can be made to be multipart by putting a '+' at the beginning of a line where you want to break it. Each subpart will be cumulative to that point.


A heading is a line starting with 1-6 equals signs followed by a space followed by the heading text. The number of equals signs corresponds to the level of the heading.

    === A Level Three Heading


Paragraphs are just paragraphs. They end with a blank line.

    This is my paragraph of something that I wanted to show
    you. This paragraph is now ending.

Preformatted Text

Preformatted text, like program source code for instance, is indicated by indenting it.

    My code:
        sub greet {
            print "Hello there\n";

Pretty Print

You can markup a section of your source code with various colors and highlights. In this example we make the word "greet" display green and the word "Hello" display red and underline the quoted string.

        sub greet {
    #       GGGGG
            print "Hello there\n";
    #             _______________
    #              RRRRR

Coming soon.

Unordered List

Use asterisks to mark bullet points. The number of asterisks indicates the nesting level.

    * Point One
    ** Point One A
    ** Point One B
    * Point Two
    * Point Three

Ordered List

Same as unordered lists except use zeroes to mark bullet points. Ordered and unordered lists can be intermingled.

    0 Point One
    ** Point One A
    ** Point One B
    0 Point Two
    0 Point Three

Bold Text

Sourround one or more words with asterisks to make the text bold.

    This is *bold text* example.

Italic Text

Sourround one or more words with slashes to make the text italicized.

    This is /italic text/ example.

Underlined Text

Sourround one or more words with underscores to make the text underlined.

    This is _underlined text_ example.

Teletyped Text

Sourround one or more words with pipes to make the text appear in a fixed width font.

    This is |fixed width font| example.


Each slide can display an image.


This will download a copy of the image if it hasn't been downloaded yet. That way you can view your slides offline.

If more than one image is encoded in a slide, Spork takes the last one. This is useful for a multipart slide where you want the image to change. Just put this image tag in the correct subpart.


You can create a link to a local file. When clicked the file should appear in a new browser window.

    {file: mydir/myfile.txt}

The file_base configuration setting will be prepended to relative paths.


Spork slideshows can be configured in three different ways. The first way is with the local config.yaml created by spork -new. The second way is through a global configuration file called ~/.sporkrc/config.yaml. Any settings in the local file will override settings in the global file.

The third way is to put YAML sections directly in your slides file. You can put a YAML section anywhere in the file that a slide would go, and you can have more than one section. In fact, you could change the configuration for each slide by putting a YAML section before each slide. Any settings in these sections will override the setting that came from anywhere else.

See Spork::Config for more information.


You can easily extend and customize Spork by writing subclasses and putting them in the configuration or by fiddling with the template files. This version uses Template Toolkit templates by default.


Kwiki, Spoon


Ingy döt Net <>


Copyright (c) 2011. Ingy döt Net. All rights reserved.

Copyright (c) 2004, 2005. Brian Ingerson. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


1 POD Error

The following errors were encountered while parsing the POD:

Around line 195:

Non-ASCII character seen before =encoding in 'döt'. Assuming UTF-8