fuss - An extensible customisable program to create HTML slideshows.
fuss filename
fuss (short for --funroll-slideshow) is a highly customisable program designed to create slide shows. Anyone who's tried to write an HTML slide show from scratch knows how tedius the task can be (especially if one has a large collection of images). fuss simplifies matters as follows.
That's it. fuss does the rest. fuss has a collection of MODULES (which in reality are just Perl Modules) which are executed from the CONFIG FILE. The module funroll::Page(1) substitutes the filenames / captions specified in the config file, and generates a html file (generally your slideshow or index files). It understands basic loop control and flow statements, so you can control the output to your taste. It also provides the option to filter the output through a preprocesser (like php for instance).
The module funroll::Resize(1) resizes and or rotates your images, and the module funroll::Directory(1) can be used to recurse folders. See the section on MODULES for a complete list and description. See also the section on THEMES, which are a collection of config files, templates, stylesheets and icons designed to create a complete slideshow.
Finally, if you're interested in extending fuss you should read the source :). I've not got around to documenting the interface yet, but will soon. If you write a perl module which might be usefull to others then send it to me for inclusion with fuss.
fuss begins by reading the config file specified on the command line, and exits after processing it. A CONFIG FILE is used to define tokens (like a title), options, lists (like a list of images), shared files (like icons or stylesheets) and to execute actions (MODULES) like creating HTML sources for your slide show, or resizing images.
Blank lines, and lines beginning with a # are treated as comments (and ignored). Leading spaces are ignored, so indent as you like. Lines ending with a ``\'' are treated as continuing onto the next line.
If the keyword default is present, then the value of name is set only if it has not previously been set or unset. If value is undef then the option name is undefined, and it's existence forgotten. You can use this to unset an option.
A shared file is exactly what the name suggests. For instance, a stylesheet or icon could be a shared file. Each module has a different action for shared files, so see the section on MODULES for an explanation of what the module does to shared files, and a list of attributes. In general, shared files will either be ignored, or copied to the appropriate shared directory.
Each module handles lists differently. Different templates, modules or themes might require specially named lists. See the section on MODULES and THEMES.
local EOF include filename EOF
fuss has a collection of Modules, each of which serve a specific purpose. Modules are executed from the CONFIG FILE using the ``funroll'' command. Each module has it's own man page. The modules currently shipped with fuss are:
In reality a ``Theme'' is nothing but a collection of CONFIG FILES and ``Templates'', which create a complete slide show. Using themes is easy. First create a CONFIG FILE and define your images, captions, titles, descriptions and other options. At the end of your config file, just call the theme file with ``do +Theme.fuss''. That's it.
Currently there is only one theme fussTheme::Simple(1). Hopefully someone (you) will write more :). If you do, and you think it looks good, send it to me for inclusion with fuss.
See the man page funroll::Simple(1) for a description and list of options of the ``Simple'' theme.
The following config file recurses the current directory and creates a slide show:
# When hosting your pictures online, upload both the following # directories to your webserver. option output_dir = /tmp/upload/pictures/ option shared_outdir = /tmp/upload/shared/
# When hosting your pictures online, change the token below to # point to the location of the shared_outdir above. If left # unchanged, the html files generated will be suitable for # viewing only on your local computer. token shared_prefix = /tmp/upload/shared/
# Set the title subtitle and contat info as desired. (HTML can # be used here). token title = My Fantastic Pictures token subtitle = June 11<sup>th</sup>, 2004 token contact_info = Deeds Drumhill <\ <a href="mailto:deeds@zartop.com">deeds@zartop.com</a>>
# Create the slideshow funroll Directory
The following config file creates a slide show with captions for specified files.
option output_dir = /tmp/upload/pictures/
# If you'd like shared files from all slideshows you create to go # in the same directory, then uncomment the following lines. # Before hosting your files online, be sure to change the token # shared_prefix to point to the location of your shared files # # option shared_outdir = /tmp/upload/shared # token shared_prefix = /tmp/upload/shared
# Set the title subtitle and contat info as desired. # (HTML can be used here). token title = My Fantastic Pictures token subtitle = June 11<sup>th</sup>, 2004 token contact_info = Deeds Drumhill <\ <a href="mailto:deeds@zartop.com">deeds@zartop.com</a>>
# Define captions for your images list files fields=(filename, caption) { image1.jpg : Caption for image1.jpg image2.jpg : Caption for image2.jpg image3.jpg : Caption for image3.jpg image4.jpg : Caption for image4.jpg }
# Specify the directory containing your images. option image_indir = ./
# Create the slideshow do +Simple/Create.fuss
This program, and all files distributed with it are protected under the GNU General Programers Licence version 2 or later. See the file Licence for details.
fuss(1), perl(1), funroll::Page(1), funroll::Resize(1), funroll::Directory(1), funroll::Simple(1).
Gautam Iyer <gi1242@users.sourceforge.net>.