anchor.diff:                :prompt \"Bookmark URL\"
                 :sources (make-instance 'prompter:raw-source))))
       (bookmark-add url)))"))
  -    (:p "See the " (:code "prompt-buffer") " class documentation for how to write
  -write custom prompt-buffers.")
  +    (:p "See the " (:nxref :class t prompt-buffer) " class documentation for how
  +to write custom prompt-buffers.")
   
       (:h3 "Hooks")
       (:p "Hooks provide a powerful mechanism to tweak the behaviour of various
  
positive.code: typed functions.  Each hook has a dedicated handler constructor.")
      (:p
       "Hooks can be 'run', that is, their handlers are run according to
  the " (:code "combination") " slot of the hook.  This combination is a function
  of the handlers.  Depending on the combination, a hook can run the handlers
  either in parallel, or in order until one fails, or even " (:i "compose")
       " them (pass the result of one as the input of the next).  The handler types
  
negative.code:     (:p "Slots store values that can be either accessed (get) or changed
  (set). Setting new values for slots allows many possibilities of customization.
  For instance, keyboard layouts vary across the world. The slot "
          (:nxref :slot-of nyxt/hint-mode:hint-mode nyxt/hint-mode:hints-alphabet)
          " has the default value of "
          (:code "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
          ". If the user has an American keyboard, they can do:")
      (:ol
       (:li "Execute command " (command-markup 'describe-slot) ";")
       (:li "Type " (:code "hints-alphabet")";")
       (:li "Select " (:code "hints-alphabet") " (" (:code "hint-mode") " class option);")
       (:li "Press the button " (:code "Configure") ", and;")
       (:li "Insert the string \"asfdghjkl\"") ".")
      (:p "This will make link-hinting more comfortable for this user. In
  addition, other similar approaches of customization can be applied to slots
  such as " (:nxref :slot-of nyxt/spell-check-mode:spell-check-mode nyxt/spell-check-mode:spell-check-language)
  ", which can be expanded to do the spelling-check of other languages besides English.")
      (:h3 "Different types of buffers")
      (:p "There are multiple buffer classes, such as "
          (:nxref :class t document-buffer) " (for structured documents) and "
          (:nxref :class t input-buffer) " (for buffers that can receive user input).  A "
          (:nxref :class t web-buffer) " class is used for web pages," (:nxref :class t prompt-buffer)
          " for, well,the prompt buffer.  Some buffer classes may inherit from multiple other classes.
  For instance " (:nxref :class t web-buffer) " and " (:nxref :class t prompt-buffer)
          " both inherit from" (:nxref :class t input-buffer) ".")
      (:p "You can configure one of the parent " (:nxref :class t buffer) " classes slots and the new
  values will automatically cascade down as a new default for all child classes-
  unless this slot is specialized by these child classes.
  For instance if you configure the " (:nxref :slot-of override-map input-buffer)
  " slot in " (:nxref :class t input-buffer) ", both " (:nxref :class t panel-buffer) " and "
  (:nxref :class t web-buffer) " classes will inherit from the new value.")
  
      (:h3 "Keybinding configuration")
      (:p "Nyxt supports multiple " (:i "bindings schemes") " such as CUA (the
      default), Emacs or vi.  Changing scheme is as simple as setting the
      corresponding mode as default, e.g. "
          (:nxref :class t nyxt/emacs-mode:emacs-mode) ".  To make the change persistent across sessions,
  add the following to your configuration:")
      (:ul
       (:li "vi bindings:"
  