I wrote this script as part of an ongoing process to find an effective, simple means for authoring presentations so that I maintained one master copy, but could produce derivatives optimised for different views (eg. printed notes, web notes, in class presentation), whilst minimising the workload needed to do this.
Previously I've mastered overheads using MS Word, and printed them 4 up for handouts, and used a customised rtftohtml to create web notes; and have mastered online presentations using MS Powerpoint, and printed them 6 up for handouts, and used a highly customised rtftohtml to create web notes from the outline saved as RTF. Whilst both approaches worked, I've not been totally happy with them. Hence this script.
This time I'm focusing on mastering the notes, concentrating
on the content & structure rather than on the look.
These notes can be written using any HTML or text editor.
Each slide corresponds to a single point in the first level list.
Under it can be further list levels, pre-formatted text, inline images,
tables or whatever is desired. This file is then converted into a 2nd
HTML file using the htol2ss
script. It makes
each first level list item into a slide header, with back and forward
navigation arrows and a ruler over a suitable background image.
The over-riding principle was KISS - the notes master uses very basic HTML, which should be supported anywhere, with no attempt to control the final look on all platforms. The slide-show code produced, whilst it does use Netscape HTML extensions, can be displayed on just about any version of Netscape.
For example, given a preesentation such as the skeletal
oline.html
, the slide-show file can
be created by the command: htol2ss oline.html
which creates
the file ss-oline.html
.
htol2ss
has a large number of command-line
options which can be used to customise the look of the slide-show.
These are summarised in the usage message displayed when you call
htol2ss -h
and detailed below. However as an example,
another slide-show could be created from the same
oline.html
master,
with a crimson background, yellow headers, green text, no
ruler and the prefix "x" (ie output file is
xoline.html
) using:
htol2ss -b '#993333' -c '#ffff00' -p 'x' -R -t '#00ff00' oline.html
As a slightly larger example, have a look at the original htpres.html
talk (excepted
from the CS ADFA seminar on 26 Nov 98), and its slide-show form ss-htpres.html
.
By default, it is assumed that a subdirectory img/ exists which holds the four inline images used by the script, being:
Each slide has a named anchor of the form "sXX" where XX is the slide number. An initial arrow is placed just after the body tag to navigate to the first slide. You may find it useful to create an index of presentations, with the anchors naming "ss-XXX.html#s1" to jump straight to the first slide (eg. by hacking the output of htls -ht ss-* for example).
In more detail, htol2ss can be called with the following command-line arguments:
htol2ss [-b val] [-c val] [-f] [-h] [-i dir] [-p pref] [-q] [-r fil|-R] [-s siz] [-t val] file1.html [file2.html ...]described in more detail below (and with the assumed defaults in brackets):
nb. colors are specified as 3 hex values for RGB (eg bright red is #ff0000) as per the usual HTML conventions.
<html><head> <title>Presentation Outline</title> </head><body> <h1>Presentation Outline</h1> <ol> <li> Slide 1 <ul> <li> point 1 <li> point 2 <li> point 3 etc </ul> <li> Slide 2 <ul> <li> point 1 <li> point 2 <li> point 3 etc <pre> some preformatted text etc </pre> </ul> .... </ol> <hr> </body></html>This type of file can be easily created and changed using any HTML or text editor (even vi with a bunch of macros for common HTML tags like I use :-)
DOS uses will probably also need to invoke the script explicitly using perl,
vis: perl htol2ss ...
You'll also need to get appropriate images for the arrows, ruler and background. You can steal the ones I use from the img/ directory here. If you find any nicer ones, I'd love to know about them.