;; -*- Mode: Lisp; indent-tabs-mode:nil -*- (in-package :common-lisp-user) (defpackage :it.bese.yaclml (:nicknames :yaclml) (:documentation "Yet Another Common Lisp Markup Language") (:use :common-lisp :it.bese.arnesi :iterate) (:shadowing-import-from :iterate #:while #:until) (:export ;; code generation #:emit-princ #:emit-html #:emit-code #:emit-princ-attributes #:emit-open-tag #:emit-close-tag #:emit-empty-tag #:emit-body #:emit-xml-tag #:wrap-in-tag ;; defining tags #:deftag #:deftag-macro ;; using yaclml #:with-yaclml-stream #:with-yaclml-output-to-string #:enable-yaclml-syntax #:disable-yaclml-syntx #:enable-xml-syntax #:disable-xml-syntax #:with-xml-syntax #:*yaclml-stream* #:*yaclml-indent* ;; tal #:compile-tal-string #:compile-tal-file #:def-attribute-handler #:def-tag-handler #:read-tal-expression-from-string #:tal-generator #:file-system-generator #:load-tal #:template-truename #:root-directories #:*uri-to-package* #:transform-lxml-form #:transform-lxml-tree #:make-standard-tal-environment #:tal-env #:tal-value #:extend-environment #:-tal-environment- #:lookup-tal-variable #:fetch-tal-value #:href #:+xhtml-strict-doctype+ #:+xhtml-transitional-doctype+ #:+xhtml-frameset-doctype+ )) (defpackage :it.bese.yaclml.tags (:nicknames :<) (:documentation "YACLML programmatic HTML generation.") (:use) (:export ;; HTML4 #:a #:abbr #:acronym #:address #:area #:b #:base #:bdo #:big #:blockquote #:body #:br #:button #:caption #:cite #:code #:col #:colgroup #:dd #:del #:dfn #:div #:dl #:dt #:em #:fieldset #:form #:frame #:frameset #:h1 #:h2 #:h3 #:h4 #:h5 #:h6 #:head #:hr #:html #:i #:iframe #:img #:input #:ins #:kbd #:label #:legend #:li #:link #:map #:meta #:noframes #:noscript #:object #:ol #:optgroup #:option #:p #:param #:pre #:q #:samp #:script #:select #:small #:span #:strong #:style #:sub #:sup #:table #:tbody #:td #:textarea #:tfoot #:th #:thead #:title #:tr #:tt #:ul #:var ;; Not really HTML4, but close enough #:applet #:param #:marquee #:embed ;; YACLML extended HTML #:href #:stylesheet #:text #:submit #:image #:checkbox #:file #:as-is #:as-html #:call-with-yaclml-stream #:comment #:progn #:  #:format ;; yaclml+ (shortcuts) #:ah #:ai)) ;; the nicknames for these packages take care the svg tags ;; below don't signal an error. because of symbol names and xml ;; format incompatibilities. ;; TODO clean up, we have the (@ ...) syntax now. see also svg.lisp. (defpackage :it.bese.yaclml.xml (:use) (:nicknames :xml) (:export #:id #:base #:lang #:space)) (defpackage :it.bese.yaclml.xlink (:use) (:nicknames :xlink) (:export #:type #:href #:role #:arcrole #:title #:show #:actuate)) (defpackage :it.bese.yaclml.svg (:use :cl :it.bese.yaclml :iterate) (:documentation "SVG library.") (:nicknames :svg :