(:h1 "LML2 Documentation")
(:h2 "Overview")
(:p
- ((:a :href "http://lml2.b9.com") "LML2")
+ ((:a :href "http://lml2.kpe.io") "LML2")
" is a Common Lisp package for generating HTML and XHTML documents."
" LML2 is based on:")
(:ul
- (:li ((:a :href "http://lml.b9.com") "LML") " by "
+ (:li ((:a :href "http://lml.kpe.io") "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/")
+ ((:a :href "http://lml2.kpe.io/") "http://lml2.kpe.io/")
".")
+
+ (:h2 "Prerequisites")
+ (:ul
+ (:li ((:a :href "http://cliki.net/asdf") "ASDF"))
+ (:li ((:a :href "http://cliki.net/kmrcl") "KMRCL")))
(: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:")
(:li "Removal of the if* macro from the htmlgen.lisp source code")
(:li "Incorporation of LML's standard site macro and other helper functions.")
(:li "Addition of special attribute tags (:if :when :optional :format :format")
- (:li "Automatic quoting of attribute values for non-string values"))
+ (:li "Automatic quoting of attribute values for non-string values")
+ (:li "Post macroexpansion code walker to collape sequential write-string calls"))
(:h2 "Installation")
(:p
:hr
(:p
"View this page's "
- ((:a :href "http://lml2.b9.com/") "LML2")
+ ((:a :href "http://lml2.kpe.io/") "LML2")
" "
((:a :href "readme.lml") "source")
".")