| (load (string-append laml-dir "laml.scm"))
(laml-style "simple-xhtml1.0-transitional-validating")
(lib-load "xhtml1.0-convenience.scm")
(define meta-props
(list 'http-equiv "Content-Type" 'content "text/html; charset=iso-8859-1"))
; Return a meta text keywords from the emphasized words in the entire document.
(define (meta-from-keywords root-ast parent-ast)
(let ((meta-contributions
(traverse-and-collect-all-from-ast
root-ast
(lambda (ast)
(and (equal? (ast-element-name ast) "span")
(equal? (ast-attribute ast 'class #f) "keyword")))
ast-text)))
(meta 'name "keywords" 'content (list-to-string meta-contributions ","))))
(define keyword
(xml-in-laml-abstraction
(lambda (c a) (span 'class "keyword" c a))))
(write-html '(pp prolog)
(html
(head
(meta meta-props)
meta-from-keywords
(title "Demo of simple document reflection"))
(body
(h1 "Illustration of 'distributed meta'")
(p "This is a demo of simple document introspection aided by"
(keyword "delayed procedural content items")_ "." )
(p "A delayed procedural content item is a" (keyword "closure")
"which is evaluated at" (keyword "documentation expansion time") _ "." )
(p "We show how to extract" (keyword "meta keywords")
"from designated and marked up keywords in the text. Notice that the keyword
element mirror function is produced by an XML-in-LAML abstraction." )
(when-generated))))
(end-laml) |