anchor.diff:  => NYXT:DESCRIBE-VALUE
   => (:ID \"1000\")"
     (let ((*print-case* :downcase))
  -    (flet ((param-name (symbol)
  -             (let ((*package* (find-package :nyxt)))
  -               (if (keywordp symbol)
  -                   (format nil "~(~a~)" symbol)
  -                   (format nil "~s" symbol)))))
  -      (if (gethash function-name *nyxt-url-commands*)
  -          (let ((params (quri:url-encode-params
  -                         (mapcar (lambda (pair)
  -                                   (cons (param-name (first pair))
  -                                         ;; This is to safely parse the args afterwards
  -                                         (if (stringp (rest pair))
  -                                             (rest pair)
  -                                             (str:concat +escape+ (prin1-to-string (rest pair))))))
  -                                 (alexandria:plist-alist args)))))
  -            (the (values string &optional)
  -                 (format nil "nyxt:~a~@[~*?~a~]"
  -                         (param-name function-name)
  -                         (not (uiop:emptyp params))
  -                         params)))
  -          (error "There's no nyxt:~a page defined" (param-name function-name))))))
  +    (if (gethash function-name *nyxt-url-commands*)
  +        (let ((params (quri:url-encode-params
  +                       (mapcar (lambda (pair)
  +                                 (cons (symbol->param-name (first pair))
  +                                       (value->param-value (rest pair))))
  +                               (alexandria:plist-alist args)))))
  +          (the (values string &optional)
  +               (format nil "nyxt:~a~@[~*?~a~]"
  +                       (symbol->param-name function-name)
  +                       (not (uiop:emptyp params))
  +                       params)))
  +        (error "There's no nyxt:~a page defined" (symbol->param-name function-name)))))
   
   (export-always 'javascript-url)
   (defun javascript-url (javascript-string)
  
positive.code: (export-always 'internal-url-p)
  (defun internal-url-p (url)
    (string= "nyxt" (quri:uri-scheme (url url))))
  
  (export-always 'parse-nyxt-url)
  (-> parse-nyxt-url ((or string quri:uri)) (values symbol list &optional))
  
negative.code:          (internal-page-name (let ((*package* (find-package :nyxt)))
                                 (read-from-string (str:upcase symbol)))))
      (if (gethash internal-page-name *nyxt-url-commands*)
          (values internal-page-name (query-params->arglist params))
          (error "There's no nyxt:~a internal-page defined" symbol))))
  
  (define-internal-scheme "nyxt"
  