lisp2html is a Lisp sublanguage to produce HTML+CSS pages with a style like this one.
For example, the code to produce this page is as follow (the full source is here):
(load "lisp2html.lisp") (html->file ("lisp2html.html") (title "Lisp2HTML -" " Write Lisp to write HTML+CSS") (subtitle "Lisp2HTML is a Lisp sublanguage to produce HTML pages.") (section "intro" "Introduction" (p "lisp2html is a Lisp sublanguage to produce HTML+CSS pages with a style like this one.") (p "The navigation sidebar is atomatically generated")) (section "syntax" "Syntax" (p "The defined function in lisp2html are as follow:") (itemize (protect-html "First item (&rest) <html>") "Second item" ...)) (section "source" "Sources" (p "The source code for lisp2html.lisp can be found here:") (itemize (group (a "lisp2html.lisp")))) (section "Licence" "Licence" (p "lisp2html.lisp is under the " (a "http://www.gnu.org" "GNU General Public License"))) (footer (update-date) (br) (a "http://validator.w3.org/check?uri=referer" (img "http://www.w3.org/Icons/valid-xhtml10" "Valid XHTML 1.0 Strict" 88 31)) (a "lisp2html.html" (img "lisplogo_flag_64.png" alt="Powered by Lisp")))))
The navigation sidebar is atomatically generated
The defined function in lisp2html are as follow:
- title (&rest title): The main title. (The first argument is in gray).
- subtitle (&rest title): The part under the title
- a (href &rest string): Add a new link. The link title is string if string is not nil, href in the other case.
- p (&rest lines): Begin a new paragraph
- section (id &rest line): begin a new section
- br (): Begin a newline.
- img (image alt &optional width height): Insert an image.
- itemize (&rest lines): Itemize each lines.
- code (&rest lines): Insert a code.
- group (&rest items): Group function together. Useful for example with the itemize function.
- footer (&rest line): Insert additional information in the footer section.
- update-date (&optional (lang :us)): Insert the build date.
- protect-html (string): Replace & with & < with < and so on...
The source code for lisp2html.lisp can be found here:
To use it, just load it in your favorite Lisp and begin your document with:
(load "html2lisp.lisp") (html2file ("filename.html") (title ...) ...)
lisp2html.lisp is under the GNU General Public License