I have written a small CL utility that generates HTML slides (either
all in one HTML page or a separate page for each slide) from an XML
definition of the presentation. The utility uses AllegroServe, the XML
parser (parse-xml) and the HTML generator (htmlgen) that Franz developed
as open source utilities.
My goals were:
1. Learn how to use AllegroServe & the xml/html utilities
2. Experiment with using CL to transform xml to html in a manner similar
to xslt
3. Improve my CL programming skills
The presentation that I created is a self-documenting presentation
describing what I did. I have put the all-in-one-html-page version of
the presentation up on the web. It contains a link to a zip file that
you can download if you want to run the utility but the presentation
also has links and code contained within the presentation if you don't
want to download the zip file but are interested in seeing what I did.
I would appreciate feedback on a number of different things:
1. I had difficulty finding the correct way to do something like
(eql element-name '|slide|) in the apply-template function. My
work-around was to do a string compare on the symbol name of the xml
element name instead. I would appreciate any advice on how to do the
former.
2. The link to the single slide presentation on the title page (first
slide) of the presentation doesn't work but the button on the initial
http://localhost:8000 start page does. They both point to the same
url. Any ideas why AllegroServe generates the single slide
presentation when the button is selected but not when the link is
selected?
3. This is my first attempt at processing XML with Lisp and I would
appreciate any pointers on how I could improve the code. Either:
a. Alternative approaches that others have used to do the same type
of thing (converting xml to html using CL).
i. An alternative that I tried was creating a generic
apply-template function and specializing the methods using eql.
b. Any suggestions for improvements to my Lisp code (I'm still
learning).
The generated slide presentation can be found at:
http://lisp.home.attbi.com/all-slides.htm
Note: the all-slides.hmt page at this site is a static page as my ISP
provides disk space but doesn't allow me to run applications. The
utility uses AllegroServe to dynamically generate both the all-slides
page as well as the single-slide pages.
TIA.
--
Bill Clementson