;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; ;;;; Name: web-utils.lisp ;;;; Purpose: Basic web utility functions ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; ;;;; $Id: web-utils.lisp,v 1.6 2002/10/16 22:56:08 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; ;;;; KMRCL users are granted the rights to distribute and use this software ;;;; as governed by the terms of the Lisp Lesser GNU Public License ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* (in-package :kmrcl) (declaim (optimize (speed 3) (safety 1) (compilation-speed 0) (debug 3))) ;;; HTML/XML constants (defvar *std-xml-header* #.(format nil "~%~%~%")) (defvar *std-html-header* "") (defvar *std-xhtml-header* #.(format nil "~%")) ;;; URL Functions (defvar *base-url* "") (defun base-url! (url) (setq *base-url* url)) (defun make-url (page-name &key (base-dir *base-url*) (vars nil)) (concatenate 'string base-dir page-name (if vars (string-trim-last-character (concatenate 'string "?" (mapcar-append-string #'(lambda (var) (when (and (car var) (cadr var)) (concatenate 'string (car var) "=" (cadr var) "&"))) vars))) "")))