anchor.diff:                        (lambda (url1 url2) (equalp (quri:uri-authority url1)
                                                     (quri:uri-authority url2)))))))
   
  +(-> symbol->param-name (symbol) string)
  +(defun symbol->param-name (symbol)
  +  "Turn the provided SYMBOL into a reasonable query URL parameter name."
  +  (let* ((*package* (find-package :nyxt))
  +         (*print-case* :downcase))
  +    (if (keywordp symbol)
  +        (format nil "~(~a~)" symbol)
  +        (format nil "~s" symbol))))
  +
  +(-> value->param-value (t) (values string &optional))
  +(defun value->param-value (value)
  +  "Turns the VALUE into a `query-params->arglist'-readable representation.
  +- If VALUE is a string, return it as-is.
  +- Otherwise, print it so string and prepend `+escape+' in front of it to notify
  +  the `query-params->arglist' that it should be READ by CL reader."
  +  (if (stringp value)
  +      value
  +      ;; This is to safely parse the args afterwards
  +      (str:concat +escape+ (prin1-to-string value))))
  +
   (export-always 'nyxt-url)
   (-> nyxt-url (t &rest t &key &allow-other-keys) string)
   (defun nyxt-url (function-name &rest args &key &allow-other-keys)
  
positive.code: => 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))))))
  
  (export-always 'javascript-url)
  (defun javascript-url (javascript-string)
  
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"
  