X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=web-utils-aserve.lisp;h=6ace751136a96a65b4b326ce73d4f08272bde574;hb=8e1e9fe9c4b29ed0bb5a8f340b2eb583144bb905;hp=74a518a308aee40c5f42f20f67575e68234a7c82;hpb=bb23129ae7ddabcbcb09c718545f69a52a8d1eaf;p=kmrcl.git diff --git a/web-utils-aserve.lisp b/web-utils-aserve.lisp index 74a518a..6ace751 100644 --- a/web-utils-aserve.lisp +++ b/web-utils-aserve.lisp @@ -1,4 +1,3 @@ - ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION @@ -8,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: web-utils-aserve.lisp,v 1.5 2002/10/16 17:37:18 kevin Exp $ +;;;; $Id: web-utils-aserve.lisp,v 1.10 2002/10/18 07:28:57 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -61,66 +60,86 @@ (with-tag-attribute "font" (format nil "size=\"~a\"" size) (princ-http text))) -(defmacro with-link ((href xml linktype) &rest body) - (declare (ignore linktype)) +(defmacro with-link ((href &key (format :html)) &rest body) ; (format *html-stream* "Return to Home") ; (format *html-stream* "Return to Home") - `(if ,xml - (progn - (princ-http "") - ,@body - (princ-http "")) - (progn - (princ-http "") - ,@body - (princ-http "")))) - -(defun home-link (&key (xml nil) (vars nil)) - (princ-http "Return to ") - (with-link ((make-url "index.html" :vars vars) xml "homelink") - (princ-http "Browser Home")) - (princ-http "

")) + `(case ,format + (:xml + (princ-http "") + ,@body + (princ-http "")) + (:ie-xml + (princ-http "") + ,@body + (princ-http "")) + (:html + (princ-http "") + ,@body + (princ-http "")))) + +(defun home-link (&key (format :html) (vars nil)) + (case format + (:html + (princ-http "
Return to ") + (with-link ((make-url "index.html" :vars vars)) + (princ-http "Home")) + (princ-http "
")) + ((:xml :ie-xml) + (princ-http "Return to ") + (with-link ((make-url "index.html" :vars vars :format format) :format format) + (princ-http "Home")) + (princ-http "")))) (defun head (title-str &key css) (unless css (setq css "http://b9.com/main.css")) (net.html.generator:html (:head - (princ-http (format nil "" css)) + (princ-http (format nil "" css)) (:title (:princ-safe title-str))))) ;;; Page wrappers -(defmacro with-xml-page (title &rest body) - `(prog1 - (progn - (net.html.generator:html - (princ-http (std-xml-header)) - (princ-http "")) - (with-tag "pagetitle" (princ-http ,title)) - ,@body) - (princ-http ""))) - -(defmacro with-html-page ((title &key css) &rest body) - `(prog1 - (progn - (print-http "") - (print-http "") - (print-http "") - (print-http "") - (head ,title :css ,css) - (print-http "") - (prog1 - ,@body - (print-http ""))) - (print-http ""))) +(defmacro with-page ((title &key css (format :xhtml)) &rest body) + (case format + (:xhtml + `(prog1 + (progn + (net.html.generator:html + (print-http *standard-xhtml-header*) + (print-http "") + (head ,title :css ,css) + (print-http "") + (prog1 + ,@body + (print-http "")))))) + (:html + `(prog1 + (progn + (net.html.generator:html + (print-http *standard-html-header*) + (head ,title :css ,css) + (print-http "") + (prog1 + ,@body + (print-http "")))))) + (:xml + `(prog1 + (progn + (net.html.generator:html + (princ-http *standard-xml-header*) + (princ-http "")) + (with-tag "pagetitle" (princ-http ,title)) + ,@body) + (princ-http ""))))) ;;; URL Encoding