anchor.diff:  (defmacro render-window ((&key (title "Quicklisp Documentation")
                               class)
                            &body body)
  +  "Render the body in a window with the given body and class"
     `(buildnode:document-to-string
       (with-html-document
         (window ,title ,class ,@body))))
   
   (defun %search-form (&optional q)
  +  "A snippet of html that is the search form"
     (xhtml:form `(:action "/search" :method :get)
       (xhtml:input `(:type "text" :value ,(or q "") :name "q" :class "search"))
       (xhtml:button () "Search")))
   
   (defun search-view (&optional q n)
  +  "Render the search / search results page for a given query q and n number of results"
     (render-window (:title (if q
                                "Common Lisp Documentation Search Results"
                                "Search Common Lisp Documentation"))
  
positive.code:         (json:encode-json score)))))
  
  (defun search-results-json (q n)
    (setf (hunchentoot:content-type*) "application/json")
    (when q
      (with-output-to-string (json:*json-output*)
  
negative.code: 		    ellipses))))
  
  (defun search-result-fn (d &optional (shorten-to 512))
    "Given a single search result produce html to display it"
    (let* ((name (sr-val d :name))
           (type (intern (sr-val d :type) :keyword))
           (package (case type
  