     customization info below.
 
   * Keyboard:
-    * w - go forward
-    * s - go backward
-    * a - strafe left
-    * d - strafe right
-    * space - go up
-    * z - go down, can't bind to ctrl, limitation of Processing
-
+    * `w` - go forward
+    * `s` - go backward
+    * `a` - strafe left
+    * `d` - strafe right
+    * `space` - go up
+    * `z` - go down, can't bind to `ctrl`, limitation of Processing
 
   Customization
 
-  You can customize this middleware by providing map as
-  :navigation-3d option in defsketch/sketch. Map can have following
-  optional keys:
+  You can customize this middleware by providing a map as
+  `:navigation-3d` option in [[quil.sketch/defsketch]]/[[quil.sketch/sketch]].
+  The map can have the following optional keys:
 
-  :position - vector of 3 numbers, initial camera position. Default
-              is the same as in 'camera' function.
+  * `:position` - vector of 3 numbers, initial camera position. Default
+                  is the same as in [[quil.core/camera]] function.
 
-  :straight - vector of 3 numbers, direction you'll be looking at.
-              Default is [0 0 -1] (looking down).
+  * `:straight` - vector of 3 numbers, direction you'll be looking at.
+                  Default is `[0 0 -1]` (looking down).
 
-  :up - vector of 3 numbers, 'up' direction. Default is [0 1 0].
+  * `:up` - vector of 3 numbers, 'up' direction. Default is `[0 1 0]`.
 
-  :pixels-in-360 - number, mouse sensitivity. Defines how many pixels
-                   you need to move/drag you mouse to rotate 360 degrees.
-                   The less the number the more sensitive is mouse.
-                   Default is 1000.
+  * `:pixels-in-360` - number, mouse sensitivity. Defines how many pixels
+                       you need to move/drag your mouse to rotate 360 degrees.
+                       The less the number the more sensitive the mouse.
+                       Default is `1000`.
 
-  :step-size - number, number of pixels you move on each key event (wasd).
-               Default is 20.
+  * `:step-size` - number, number of pixels you move on each key event (wasd).
+                   Default is `20`.
 
-  :rotate-on - keyword, either :mouse-dragged or :mouse-moved. Specifies
-               on which mouse event camera should rotate. Default is
-               :mouse-dragged.
+  * `:rotate-on` - keyword, either `:mouse-dragged` or `:mouse-moved`. Specifies
+                   on which mouse event camera should rotate. Default is
+                   `:mouse-dragged`.
 
+  Accessing position information from a sketch
 
-  Accessing position information from sketch
-
-  navigation-3d uses fun-mode under the hood  so all position-related
+  [[navigation-3d]] uses [[fun-mode]] under the hood so all position-related
   information is stored in the state map. It means that you can access in
   draw/update/any handler and modify it if you need to. Position
-  information is a map which is stored under :navigation-3d key in the
-  state map. Position consists of 3 values: :position, :straight and :up.
+  information is a map which is stored under `:navigation-3d` key in the
+  state map. Position consists of 3 values: `:position`, `:straight` and `:up`.
   See \"Customization\" section above for more details.
 
-  Usage example:
-
+  Example:
+  ```
   (q/defsketch my-sketch
     ...
     :middleware [m/fun-mode m/navigation-3d])
+  ```
 
   See wiki article for more(?) details:
   https://github.com/quil/quil/wiki/Navigation-3D"

        :added "2.2.6"}
  navigation-2d
  "Enables navigation over 2D sketch. Drag mouse to change the center of the
  sketch and mouse wheel controls zoom. This middleware requires fun-mode.

  Customization

  You can customize this middleware by providing map as
  :navigation-2d option in defsketch/sketch. Map can have following
  optional keys:

  :position - vector of 2 numbers, x and y - center of the screen.
              Default is width/2, height/2.

  :zoom - number indicating current zoom level. Default is 1.

  Accessing position information from sketch

  navigation-2d uses fun-mode under the hood so all position-related
  information is stored in the state map. It means that you can access in
  draw/update/any handler and modify it if you need to. Position
  information is a map which is stored under :navigation-2d key in the
  state map. Position consists of 2 values: :position and :zoom.
  See \"Customization\" section above for more details.

  Usage example:

  (q/defsketch my-sketch
    ...
    :middleware [m/fun-mode m/navigation-2d])
"
  [options]
  (navigation-2d/navigation-2d options))

           :ns "quil.middleware"
           :added "2.2.0"}
     pause-on-error
     "Pauses sketch if any of the user-provided handlers throws an error.
  It allows to fix the error on the fly and continue sketch.
  May be good alternative to default '500ms pause if exception'
  behaviour."
