anchor.diff:     (:li (:code "application-mode") " is now " (:code "passthrough-mode") ".")
      (:li (:code "web-mode") " is no more.  Instead much of its features has been  moved to the new "
           (:code "document-mode") ".  The buffer history management is now handled in a separate mode, "
  -        (:code "history-mode") ". " (:code "bookmarklets") " have they own mode too, " (:code "bookmarklets-mode") ".")
  -   (:li "Internal pages are now also " (:code "web-buffer") "s.  Most of the buffer customizations can be done on the "
  +        (:code "history-mode") "."
  +        (:code "bookmarklets") " have they own mode too, " (:code "bookmarklets-mode") ".")
  +   (:li "Internal pages are now also " (:code "web-buffer") "s."
  +        " Most of the buffer customizations can be done on the "
           (:code "web-buffer") " class.")
      (:li "The buffer hierarchy has been redesigned.  Now " (:code "buffer")
           " is a minimal class and instantiating such a buffer is only useful if you need a dummy buffer. "
           (:code "web-buffer") " inherits from a mix of specialized buffer subclasses, such as "
           (:code "mode-buffer") " and " (:code "input-buffer") ".  For the full list, see the "
           (:code "buffer") " class documentation and browse its subclasses.")
  +   (:li "Revamped lisp-repl.  Multiple commands can be run at the same time."
  +        "Results can be referred to via dynamic variables.")
  +   (:li "The history-tree buffer links are now clickable "
  +        "and navigate the corresponding buffer to the corresponding history entry.")
  +   (:li "Fixed context menu entries to match Nyxt more.")
  +   (:li "The source code is not shipped together with Nyxt."
  +        "This enables to inspect the source of most Nyxt functions.")
  +   (:li (:code "load-after-system") " and " (:code "nyxt-config-file")
  +        "have been replaced with " (:code "define-nyxt-user-system")
  +        " and " (:code "define-nyxt-user-system-and-load") ".")
  +
   
      (:h3 "Bindings")
      (:ul
  
positive.code:     (:li "Input processing is now easier to customize with " (:code "command-dispatcher")
           " and " (:code "input-skip-dispatcher") " slots of " (:code "window") ".")
      (:li (:code "on") " and " (:code "on-once") " helpers to shorten attaching to hooks.")
      (:li "Rename buffer slot " (:code "load-status") " to " (:code "status") "."))))
  
negative.code: 
  (define-version "3.0.0"
    (:ul
     (:li "New " (:code "migration-guide") " command to help the user mgirate "
          "their configuration between major version releases. "
          "Migration suggestions are automatically given on startup error.")
     (:li "The auto-config file is now suffixed with the major version number."
          "This means that upgrading Nyxt to a new major version will ignore"
          " the previous auto-configuration (which probably wouldn't work anyways).")
     (:li "UserScript support (such as GreaseMonkey scripts).")
     (:li "Revamp status buffer design.")
     (:li "Status buffer is now fully customizable.")
     (:li "New prompt-buffer fuzzy matching algorithm, hopefully offering more
    relevant results.  (Thanks to @BlueFlo0d!)")
     (:li "Add support for the Gopher and Gemini protocols.")
  