(page ("readme")
(html
(:head
- (:title "LML README")
+ (:title "LML2 README")
((:meta :http-equiv "Content-Type" :content "text/html; charset=iso-8859-1"))
((:meta :name "Copyright" :content "Kevin Rosenberg 2002 <kevin@rosenberg.net>"))
((:meta :name "description" :content "Lisp Markup Language Documentation"))
((:meta :name "keywords" :content "Common Lisp, HTML, Markup Langauge")))
(:body
- (:h1 "LML Documentation")
+ (:h1 "LML2 Documentation")
(:h2 "Overview")
(:p
- ((:a :href "http://lml.b9.com") "LML")
- " is a Common Lisp package for generating HTML and XHTML documents."
- "LML is authored by "
- ((:a :href "mailto:kevin@rosenberg.net") "Kevin Rosenberg")
- ". The home page for LML is "
- ((:a :href "http://lml.b9.com/") "http://lml.b9.com/")
- ".")
+ ((:a :href "http://lml2.b9.com") "LML2")
+ " is a Common Lisp package for generating HTML and XHTML documents."
+ " LML2 is based on:")
- (:h2 "Installation")
- (:p
- "The easiest way to install LML is to use the "
- ((:a :href "http://www.debian.org/") "Debian")
- " GNU/Linux operating system. You can then use the command "
- (:tt "apt-get install cl-lml")
- " to automatically download and install the LML package.")
- (:p
- "On a non-Debian system, you need to have "
- ((:a :href "http://cclan.sourceforge.net/") "ASDF")
- " installed to load the system definition file. You will need to change the source
+ (:ul
+ (:li ((:a :href "http://lml.b9.com") "LML") " by "
+ ((:a :href "mailto:kevin@rosenberg.net") "Kevin Rosenberg"))
+ (:li "htmlgen by "
+ ((:a :href "http://www.franz.com") "Franz, Inc.")))
+
+ (:p
+ "The home page for LML2 is "
+ ((:a :href "http://lml2.b9.com/") "http://lml2.b9.com/")
+ ".")
+
+ (:h2 "Differences between LML2 and LML")
+ (:p "The syntax and HTML generation for LML2 are based on Franz's htmlgen macro. Personally, I like the syntax of LML better than LML2, but there are advantages of Franz's approach:")
+ (:ul
+ (:li "Faster compilation and runtime HTML generation")
+ (:li "Behavior of tags is extensible"))
+
+ (:h2 "Differences between LML2 and htmlgen")
+ (:ul
+ (:li "LML2 is XHTML compatible with close tags so that (html :hr) now produces '<hr />'")
+ (:li "Lowercase tag names so that (html ((:p class 'a))) now produces '<p class=\"a\"></p>")
+ (:li "Addition of new tags such as :insert-file, :nbsp, :jscript")
+ (:li "Removal of the if* macro from the htmlgen.lisp source code")
+ (:li "Incorporation of LML's standard site macro and other helper functions."))
+
+ (:h2 "Installation")
+ (:p
+ "The easiest way to install LML is to use the "
+ ((:a :href "http://www.debian.org/") "Debian")
+ " GNU/Linux operating system. You can then use the command "
+ (:tt "apt-get install cl-lml2")
+ " to automatically download and install the LML2 package.")
+ (:p
+ "On a non-Debian system, you need to have "
+ ((:a :href "http://cclan.sourceforge.net/") "ASDF")
+ " installed to load the system definition file. You will need to change the source
pathname in the system file to match the location where you have installed LML.")
(:h2 "Usage")
(:p
- "Currently, there is no documentation on the functions provided by LML. However, the source code is instructive and there are example files included in the LML package.")
+ "Currently, there is no documentation on the functions provided by LML2. However, the source code is instructive and there are example files included in the LML2 package.")
(:h2 "Examples")
((:table :border 1 :cellpadding 3)
(:td
(:pre
"(html
- (:i \"The square of the first five integers are: )\"
+ (:i \"The square of the first five integers are: \")
(:b
(loop as x from 1 to 5
doing
- (lml-format \" ~D\" (* x x))))"))
+ (lml-format \" ~D\" (* x x)))))"))
(:td
(:i "The square of the first five integers are: ")
(:b
:hr
(:p
"View this page's "
- ((:a :href "http://lml.b9.com/") "LML")
+ ((:a :href "http://lml2.b9.com/") "LML2")
" "
((:a :href "readme.lml") "source")
".")