diff --git a/docs/mkdocs/docs/api/adl_serializer/from_json.md b/docs/mkdocs/docs/api/adl_serializer/from_json.md
index 72df961f4..e444bd697 100644
--- a/docs/mkdocs/docs/api/adl_serializer/from_json.md
+++ b/docs/mkdocs/docs/api/adl_serializer/from_json.md
@@ -67,7 +67,9 @@ class (either explicitly or via the conversion operators).
## See also
-- [to_json](to_json.md)
+- [`to_json`](to_json.md) - convert a C++ value to JSON
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - write your own `from_json` and `to_json` functions
+- [Converting values](../../features/conversions.md) - overview of `get`, `get_to` and implicit conversions
## Version history
diff --git a/docs/mkdocs/docs/api/adl_serializer/index.md b/docs/mkdocs/docs/api/adl_serializer/index.md
index e994a30cf..78f49f74e 100644
--- a/docs/mkdocs/docs/api/adl_serializer/index.md
+++ b/docs/mkdocs/docs/api/adl_serializer/index.md
@@ -33,10 +33,10 @@ struct adl_serializer {
## See also
- [Arbitrary type conversions](../../features/arbitrary_types.md) - how to make your types convertible
-- [**get**](../basic_json/get.md) / [**get_to**](../basic_json/get_to.md) - convert a JSON value to a C++ type
-- [**basic_json**](../basic_json/basic_json.md) - construct a JSON value from a C++ value
-- [**NLOHMANN_DEFINE_TYPE_INTRUSIVE**](../macros/nlohmann_define_type_intrusive.md) - generate the conversion functions for a type
-- [Specializing enum conversion](../../features/enum_conversion.md)
+- [`get`](../basic_json/get.md) - / [`get_to`](../basic_json/get_to.md) - convert a JSON value to a C++ type
+- [`basic_json`](../basic_json/basic_json.md) - construct a JSON value from a C++ value
+- [`NLOHMANN_DEFINE_TYPE_INTRUSIVE`](../macros/nlohmann_define_type_intrusive.md) - generate the conversion functions for a type
+- [Specializing enum conversion](../../features/enum_conversion.md) - serializing enums as JSON strings
## Version history
diff --git a/docs/mkdocs/docs/api/adl_serializer/to_json.md b/docs/mkdocs/docs/api/adl_serializer/to_json.md
index da9765186..5dcbc025f 100644
--- a/docs/mkdocs/docs/api/adl_serializer/to_json.md
+++ b/docs/mkdocs/docs/api/adl_serializer/to_json.md
@@ -36,7 +36,9 @@ This function is usually called by the constructors of the [basic_json](../basic
## See also
-- [from_json](from_json.md)
+- [`from_json`](from_json.md) - convert JSON to a C++ value
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - write your own `from_json` and `to_json` functions
+- [Converting values](../../features/conversions.md) - overview of `get`, `get_to` and implicit conversions
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/accept.md b/docs/mkdocs/docs/api/basic_json/accept.md
index 345d0d507..ad46a0ea7 100644
--- a/docs/mkdocs/docs/api/basic_json/accept.md
+++ b/docs/mkdocs/docs/api/basic_json/accept.md
@@ -148,15 +148,20 @@ outside of a string, invalid) byte; see the [FAQ entry](../../home/faq.md#nul-by
## See also
-- [parse](parse.md) - deserialize from a compatible input
-- [sax_parse](sax_parse.md) - parse input using the SAX interface
-- [operator>>](../operator_gtgt.md) - deserialize from stream
+- [`parse`](parse.md) - deserialize from a compatible input
+- [`sax_parse`](sax_parse.md) - parse input using the SAX interface
+- [`operator>>`](../operator_gtgt.md) - deserialize from stream
- [`JSON_STRICT_NUL_HANDLING`](../macros/json_strict_nul_handling.md) - opt in to rejecting a NUL byte in the input
instead of treating it as end of input
- [`JSON_DISABLE_STREAM_BULK_SCAN`](../macros/json_disable_stream_bulk_scan.md) - read a `std::istream` one character
at a time
- [`JSON_DISABLE_UNLOCKED_FILE_IO`](../macros/json_disable_unlocked_file_io.md) - read a `FILE*` with the locking stdio
functions
+- [Parsing](../../features/parsing/index.md) - overview of the parsing functions
+- [Comments](../../features/comments.md) - ignore `//` and `/* */` comments while parsing
+- [Trailing Commas](../../features/trailing_commas.md) - accept trailing commas in arrays and objects
+- [Parsing and Exceptions](../../features/parsing/parse_exceptions.md) - handling parse errors and locating them in the input
+- [Parsing Untrusted Input](../../features/parsing/untrusted_input.md) - limits and checks for input you do not control
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/array_t.md b/docs/mkdocs/docs/api/basic_json/array_t.md
index f621f7b58..f67980416 100644
--- a/docs/mkdocs/docs/api/basic_json/array_t.md
+++ b/docs/mkdocs/docs/api/basic_json/array_t.md
@@ -69,10 +69,12 @@ Arrays are stored as pointers in a `basic_json` type. That is, for any access to
## See also
-- [object_t](object_t.md) the type used to store JSON objects
-- [binary_t](binary_t.md) the type used to store binary values
-- [is_array](is_array.md) checks whether the JSON value is an array
-- [max_size](max_size.md) returns the maximum possible number of elements
+- [`object_t`](object_t.md) - the type used to store JSON objects
+- [`binary_t`](binary_t.md) - the type used to store binary values
+- [`is_array`](is_array.md) - checks whether the JSON value is an array
+- [`max_size`](max_size.md) - returns the maximum possible number of elements
+- [Types](../../features/types/index.md) - how arrays are stored
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the `ArrayType` template parameter
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/as_base_class.md b/docs/mkdocs/docs/api/basic_json/as_base_class.md
index 769707140..912976010 100644
--- a/docs/mkdocs/docs/api/basic_json/as_base_class.md
+++ b/docs/mkdocs/docs/api/basic_json/as_base_class.md
@@ -46,7 +46,8 @@ The function is equivalent to `static_cast(j)` (or `static_c
## See also
-- [json_base_class_t](json_base_class_t.md) - type of the custom base class
+- [`json_base_class_t`](json_base_class_t.md) - type of the custom base class
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the `CustomBaseClass` template parameter
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/at.md b/docs/mkdocs/docs/api/basic_json/at.md
index 194b123ce..f707b9835 100644
--- a/docs/mkdocs/docs/api/basic_json/at.md
+++ b/docs/mkdocs/docs/api/basic_json/at.md
@@ -230,10 +230,12 @@ Strong exception safety: if an exception occurs, the original value stays intact
## See also
-- documentation on [checked access](../../features/element_access/checked_access.md)
-- [`operator[]`](operator%5B%5D.md) for unchecked access by reference
-- [`value`](value.md) for access with default value
-- [basic_json_view::at](../basic_json_view/at.md) - the same access on a zero-copy view
+- [Checked access](../../features/element_access/checked_access.md) - element access with range checking
+- [`operator[]`](operator%5B%5D.md) - unchecked access by reference
+- [`value`](value.md) - access with default value
+- [`basic_json_view::at`](../basic_json_view/at.md) - the same access on a zero-copy view
+- [Element Access](../../features/element_access/index.md) - overview of all ways to access elements
+- [JSON Pointer](../../features/json_pointer.md) - access nested values with a pointer
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/back.md b/docs/mkdocs/docs/api/basic_json/back.md
index 32066d8c7..e7b505ffc 100644
--- a/docs/mkdocs/docs/api/basic_json/back.md
+++ b/docs/mkdocs/docs/api/basic_json/back.md
@@ -57,8 +57,9 @@ Constant.
## See also
-- [front](front.md) to access the first element
-- [basic_json_view::back](../basic_json_view/back.md) - the same access on a zero-copy view
+- [`front`](front.md) - to access the first element
+- [`basic_json_view::back`](../basic_json_view/back.md) - the same access on a zero-copy view
+- [Element Access](../../features/element_access/index.md) - overview of all ways to access elements
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/basic_json.md b/docs/mkdocs/docs/api/basic_json/basic_json.md
index be55b4df7..6a75d0f6a 100644
--- a/docs/mkdocs/docs/api/basic_json/basic_json.md
+++ b/docs/mkdocs/docs/api/basic_json/basic_json.md
@@ -476,12 +476,13 @@ basic_json(basic_json&& other) noexcept;
## See also
-- [array](array.md) create a JSON array value, forcing array creation from an initializer list even when it looks like
+- [`array`](array.md) - create a JSON array value, forcing array creation from an initializer list even when it looks like
an object
-- [object](object.md) create a JSON object value, forcing object creation from an initializer list
-- [binary](binary.md) create a JSON binary array value
-- [operator=](operator=.md) copy assignment operator
+- [`object`](object.md) - create a JSON object value, forcing object creation from an initializer list
+- [`binary`](binary.md) - create a JSON binary array value
+- [`operator=`](operator=.md) - copy assignment operator
- [Creating JSON values](../../features/creating_values.md) - the article on creating JSON values
+- [Converting values](../../features/conversions.md) - which C++ types can be converted
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/begin.md b/docs/mkdocs/docs/api/basic_json/begin.md
index bf16e23e5..15ca5bf32 100644
--- a/docs/mkdocs/docs/api/basic_json/begin.md
+++ b/docs/mkdocs/docs/api/basic_json/begin.md
@@ -44,12 +44,12 @@ Constant.
## See also
-- [end](end.md) returns an iterator to one past the last element
-- [cbegin](cbegin.md) returns a const iterator to the first element
-- [rbegin](rbegin.md) returns a reverse iterator to the last element
-- [items](items.md) returns an iteration proxy to access keys and values during range-based for loops
+- [`end`](end.md) - returns an iterator to one past the last element
+- [`cbegin`](cbegin.md) - returns a const iterator to the first element
+- [`rbegin`](rbegin.md) - returns a reverse iterator to the last element
+- [`items`](items.md) - returns an iteration proxy to access keys and values during range-based for loops
- [Iterators](../../features/iterators.md) - the article on iterators
-- [basic_json_view::begin](../basic_json_view/begin.md) - the same iteration on a zero-copy view (in document order,
+- [`basic_json_view::begin`](../basic_json_view/begin.md) - the same iteration on a zero-copy view (in document order,
not sorted by key)
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/binary.md b/docs/mkdocs/docs/api/basic_json/binary.md
index b19b0af27..1871c2c8f 100644
--- a/docs/mkdocs/docs/api/basic_json/binary.md
+++ b/docs/mkdocs/docs/api/basic_json/binary.md
@@ -63,10 +63,11 @@ initialization of a binary array type, for backwards compatibility and so it doe
## See also
-- [binary_t](binary_t.md) type for binary values
-- [get_binary](get_binary.md) get a reference to the stored binary value
-- [is_binary](is_binary.md) return whether the value is binary
-- [byte_container_with_subtype](../byte_container_with_subtype/index.md) container for binary values with subtype
+- [Binary formats](../../features/binary_formats/index.md) - formats that can store binary values
+- [`binary_t`](binary_t.md) - type for binary values
+- [`get_binary`](get_binary.md) - get a reference to the stored binary value
+- [`is_binary`](is_binary.md) - return whether the value is binary
+- [`byte_container_with_subtype`](../byte_container_with_subtype/index.md) - container for binary values with subtype
- [Binary Values](../../features/binary_values.md) - the article on binary values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/binary_t.md b/docs/mkdocs/docs/api/basic_json/binary_t.md
index da13c22a2..d7a1de92e 100644
--- a/docs/mkdocs/docs/api/basic_json/binary_t.md
+++ b/docs/mkdocs/docs/api/basic_json/binary_t.md
@@ -117,7 +117,9 @@ type `#!cpp binary_t*` must be dereferenced.
## See also
-- [byte_container_with_subtype](../byte_container_with_subtype/index.md)
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [Binary formats](../../features/binary_formats/index.md) - formats that can store binary values
+- [`byte_container_with_subtype`](../byte_container_with_subtype/index.md) - container type used by binary values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/boolean_t.md b/docs/mkdocs/docs/api/basic_json/boolean_t.md
index 2fd1beb4e..0690b86d6 100644
--- a/docs/mkdocs/docs/api/basic_json/boolean_t.md
+++ b/docs/mkdocs/docs/api/basic_json/boolean_t.md
@@ -47,7 +47,9 @@ Boolean values are stored directly inside a `basic_json` type.
## See also
-- [is_boolean](is_boolean.md) checks whether the JSON value is a boolean
+- [`is_boolean`](is_boolean.md) - checks whether the JSON value is a boolean
+- [Types](../../features/types/index.md) - how booleans are stored
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the `BooleanType` template parameter
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/cbegin.md b/docs/mkdocs/docs/api/basic_json/cbegin.md
index 57da3cb9a..6436e9d1a 100644
--- a/docs/mkdocs/docs/api/basic_json/cbegin.md
+++ b/docs/mkdocs/docs/api/basic_json/cbegin.md
@@ -43,11 +43,11 @@ Constant.
## See also
-- [begin](begin.md) returns an iterator to the first element
-- [cend](cend.md) returns a const iterator to one past the last element
-- [crbegin](crbegin.md) returns a const reverse iterator to the last element
+- [`begin`](begin.md) - returns an iterator to the first element
+- [`cend`](cend.md) - returns a const iterator to one past the last element
+- [`crbegin`](crbegin.md) - returns a const reverse iterator to the last element
- [Iterators](../../features/iterators.md) - the article on iterators
-- [basic_json_view::cbegin](../basic_json_view/cbegin.md) - the same iteration on a zero-copy view
+- [`basic_json_view::cbegin`](../basic_json_view/cbegin.md) - the same iteration on a zero-copy view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/cbor_tag_handler_t.md b/docs/mkdocs/docs/api/basic_json/cbor_tag_handler_t.md
index 55a7954d5..cd86a98b4 100644
--- a/docs/mkdocs/docs/api/basic_json/cbor_tag_handler_t.md
+++ b/docs/mkdocs/docs/api/basic_json/cbor_tag_handler_t.md
@@ -40,9 +40,10 @@ store
## See also
-- [from_cbor](from_cbor.md) deserializes a JSON value from CBOR
-- [input_format_t](input_format_t.md) the enumeration of supported input formats
-- [CBOR](../../features/binary_formats/cbor.md) - the article on the CBOR format
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`from_cbor`](from_cbor.md) - deserializes a JSON value from CBOR
+- [`input_format_t`](input_format_t.md) - the enumeration of supported input formats
+- [`CBOR`](../../features/binary_formats/cbor.md) - the article on the CBOR format
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/cend.md b/docs/mkdocs/docs/api/basic_json/cend.md
index cec356dd2..ea89f43ce 100644
--- a/docs/mkdocs/docs/api/basic_json/cend.md
+++ b/docs/mkdocs/docs/api/basic_json/cend.md
@@ -43,11 +43,11 @@ Constant.
## See also
-- [end](end.md) returns an iterator to one past the last element
-- [cbegin](cbegin.md) returns a const iterator to the first element
-- [crend](crend.md) returns a const reverse iterator to one before the first element
+- [`end`](end.md) - returns an iterator to one past the last element
+- [`cbegin`](cbegin.md) - returns a const iterator to the first element
+- [`crend`](crend.md) - returns a const reverse iterator to one before the first element
- [Iterators](../../features/iterators.md) - the article on iterators
-- [basic_json_view::cend](../basic_json_view/cend.md) - the same iteration on a zero-copy view
+- [`basic_json_view::cend`](../basic_json_view/cend.md) - the same iteration on a zero-copy view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/clear.md b/docs/mkdocs/docs/api/basic_json/clear.md
index 92043e978..087cd83f4 100644
--- a/docs/mkdocs/docs/api/basic_json/clear.md
+++ b/docs/mkdocs/docs/api/basic_json/clear.md
@@ -54,8 +54,9 @@ All iterators, pointers, and references related to this container are invalidate
## See also
-- [erase](erase.md) removes elements from a JSON value
-- [empty](empty.md) checks whether the JSON value has no elements
+- [`erase`](erase.md) - removes elements from a JSON value
+- [`empty`](empty.md) - checks whether the JSON value has no elements
+- [Modifying values](../../features/modifying_values.md) - the article on modifying values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/contains.md b/docs/mkdocs/docs/api/basic_json/contains.md
index c6e2e7d77..a06f37f47 100644
--- a/docs/mkdocs/docs/api/basic_json/contains.md
+++ b/docs/mkdocs/docs/api/basic_json/contains.md
@@ -134,9 +134,10 @@ Logarithmic in the size of the JSON object.
## See also
-- [find](find.md) find a value in an object
-- [count](count.md) returns the number of occurrences of a key
-- [basic_json_view::contains](../basic_json_view/contains.md) - the same check on a zero-copy view
+- [`find`](find.md) - find a value in an object
+- [`count`](count.md) - returns the number of occurrences of a key
+- [`basic_json_view::contains`](../basic_json_view/contains.md) - the same check on a zero-copy view
+- [Element Access](../../features/element_access/index.md#does-this-key-exist) - how to test whether a key exists
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/count.md b/docs/mkdocs/docs/api/basic_json/count.md
index 580b79884..1265fed90 100644
--- a/docs/mkdocs/docs/api/basic_json/count.md
+++ b/docs/mkdocs/docs/api/basic_json/count.md
@@ -85,9 +85,10 @@ Logarithmic in the size of the JSON object.
## See also
-- [find](find.md) find a value in an object
-- [contains](contains.md) checks whether a key exists
-- [basic_json_view::count](../basic_json_view/count.md) - the same check on a zero-copy view
+- [`find`](find.md) - find a value in an object
+- [`contains`](contains.md) - checks whether a key exists
+- [`basic_json_view::count`](../basic_json_view/count.md) - the same check on a zero-copy view
+- [Element Access](../../features/element_access/index.md#does-this-key-exist) - how to test whether a key exists
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/crbegin.md b/docs/mkdocs/docs/api/basic_json/crbegin.md
index c16631948..8365e4d19 100644
--- a/docs/mkdocs/docs/api/basic_json/crbegin.md
+++ b/docs/mkdocs/docs/api/basic_json/crbegin.md
@@ -44,9 +44,9 @@ Constant.
## See also
-- [crend](crend.md) returns a const reverse iterator to one before the first element
-- [rbegin](rbegin.md) returns a reverse iterator to the last element
-- [cbegin](cbegin.md) returns a const iterator to the first element
+- [`crend`](crend.md) - returns a const reverse iterator to one before the first element
+- [`rbegin`](rbegin.md) - returns a reverse iterator to the last element
+- [`cbegin`](cbegin.md) - returns a const iterator to the first element
- [Iterators](../../features/iterators.md) - the article on iterators
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/crend.md b/docs/mkdocs/docs/api/basic_json/crend.md
index 2bfcdf5c0..12c100d4b 100644
--- a/docs/mkdocs/docs/api/basic_json/crend.md
+++ b/docs/mkdocs/docs/api/basic_json/crend.md
@@ -45,9 +45,9 @@ Constant.
## See also
-- [crbegin](crbegin.md) returns a const reverse iterator to the last element
-- [rend](rend.md) returns a reverse iterator to one before the first element
-- [cend](cend.md) returns a const iterator to one past the last element
+- [`crbegin`](crbegin.md) - returns a const reverse iterator to the last element
+- [`rend`](rend.md) - returns a reverse iterator to one before the first element
+- [`cend`](cend.md) - returns a const iterator to one past the last element
- [Iterators](../../features/iterators.md) - the article on iterators
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/default_object_comparator_t.md b/docs/mkdocs/docs/api/basic_json/default_object_comparator_t.md
index 2c3a50217..9372a286d 100644
--- a/docs/mkdocs/docs/api/basic_json/default_object_comparator_t.md
+++ b/docs/mkdocs/docs/api/basic_json/default_object_comparator_t.md
@@ -32,8 +32,10 @@ The actual comparator used depends on [`object_t`](object_t.md) and can be obtai
## See also
-- [object_comparator_t](object_comparator_t.md) the comparator actually used by `object_t`
-- [object_t](object_t.md) the type used to store JSON objects
+- [`object_comparator_t`](object_comparator_t.md) - the comparator actually used by `object_t`
+- [`object_t`](object_t.md) - the type used to store JSON objects
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the `ObjectType` template parameter
+- [Object order](../../features/object_order.md) - preserve the insertion order of keys
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/diff.md b/docs/mkdocs/docs/api/basic_json/diff.md
index c4e710a7d..681134308 100644
--- a/docs/mkdocs/docs/api/basic_json/diff.md
+++ b/docs/mkdocs/docs/api/basic_json/diff.md
@@ -55,11 +55,12 @@ Currently, only `remove`, `add`, and `replace` operations are generated.
## See also
-- [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902)
-- [patch](patch.md) applies a JSON Patch
-- [patch_inplace](patch_inplace.md) applies a JSON Patch in place
-- [merge_patch](merge_patch.md) applies a JSON Merge Patch
-- [merge_diff](merge_diff.md) creates a diff as a JSON Merge Patch
+- [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) - specification of JSON Patch
+- [`patch`](patch.md) - applies a JSON Patch
+- [`patch_inplace`](patch_inplace.md) - applies a JSON Patch in place
+- [`merge_patch`](merge_patch.md) - applies a JSON Merge Patch
+- [`merge_diff`](merge_diff.md) - creates a diff as a JSON Merge Patch
+- [JSON Patch and Diff](../../features/json_patch.md) - the article on JSON Patch
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/dump.md b/docs/mkdocs/docs/api/basic_json/dump.md
index 23c34cd0c..a2fce5536 100644
--- a/docs/mkdocs/docs/api/basic_json/dump.md
+++ b/docs/mkdocs/docs/api/basic_json/dump.md
@@ -89,9 +89,9 @@ Binary values are serialized as an object containing two keys:
## See also
-- [to_string](to_string.md) returns a string representation of a JSON value
-- [operator<<](../operator_ltlt.md) serialize to stream
-- [`basic_json_view::dump`](../basic_json_view/dump.md) the corresponding function of `basic_json_view`, serializing
+- [`to_string`](to_string.md) - returns a string representation of a JSON value
+- [`operator<<`](../operator_ltlt.md) - serialize to stream
+- [`basic_json_view::dump`](../basic_json_view/dump.md) - the corresponding function of `basic_json_view`, serializing
directly from a flat index without building a `basic_json` value
- [Serialization](../../features/serialization.md) - the serialization article
diff --git a/docs/mkdocs/docs/api/basic_json/emplace.md b/docs/mkdocs/docs/api/basic_json/emplace.md
index b1fd856ae..b4c8bb0bb 100644
--- a/docs/mkdocs/docs/api/basic_json/emplace.md
+++ b/docs/mkdocs/docs/api/basic_json/emplace.md
@@ -63,8 +63,8 @@ Logarithmic in the size of the container, O(log(`size()`)).
## See also
-- [emplace_back](emplace_back.md) add a value to an array
-- [insert](insert.md) add values to an array/object
+- [`emplace_back`](emplace_back.md) - add a value to an array
+- [`insert`](insert.md) - add values to an array/object
- [Modifying values](../../features/modifying_values.md) - the article on modifying values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/emplace_back.md b/docs/mkdocs/docs/api/basic_json/emplace_back.md
index 38a6d5c3d..d6ea4cd01 100644
--- a/docs/mkdocs/docs/api/basic_json/emplace_back.md
+++ b/docs/mkdocs/docs/api/basic_json/emplace_back.md
@@ -61,8 +61,8 @@ Amortized constant.
## See also
-- [operator+=](operator+=.md) add a value to an array/object
-- [push_back](push_back.md) add a value to an array/object
+- [`operator+=`](operator+=.md) - add a value to an array/object
+- [`push_back`](push_back.md) - add a value to an array/object
- [Modifying values](../../features/modifying_values.md) - the article on modifying values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/empty.md b/docs/mkdocs/docs/api/basic_json/empty.md
index 1f096c956..fea80f948 100644
--- a/docs/mkdocs/docs/api/basic_json/empty.md
+++ b/docs/mkdocs/docs/api/basic_json/empty.md
@@ -62,9 +62,9 @@ itself is empty which is `#!cpp false` in the case of a string.
## See also
-- [size](size.md) returns the number of elements
-- [clear](clear.md) clears the content and resets the value to the default value
-- [basic_json_view::empty](../basic_json_view/empty.md) - the same check on a zero-copy view
+- [`size`](size.md) - returns the number of elements
+- [`clear`](clear.md) - clears the content and resets the value to the default value
+- [`basic_json_view::empty`](../basic_json_view/empty.md) - the same check on a zero-copy view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/end.md b/docs/mkdocs/docs/api/basic_json/end.md
index c0431b406..13459beb6 100644
--- a/docs/mkdocs/docs/api/basic_json/end.md
+++ b/docs/mkdocs/docs/api/basic_json/end.md
@@ -44,11 +44,11 @@ Constant.
## See also
-- [begin](begin.md) returns an iterator to the first element
-- [cend](cend.md) returns a const iterator to one past the last element
-- [rend](rend.md) returns a reverse iterator to one before the first element
+- [`begin`](begin.md) - returns an iterator to the first element
+- [`cend`](cend.md) - returns a const iterator to one past the last element
+- [`rend`](rend.md) - returns a reverse iterator to one before the first element
- [Iterators](../../features/iterators.md) - the article on iterators
-- [basic_json_view::end](../basic_json_view/end.md) - the same iteration on a zero-copy view
+- [`basic_json_view::end`](../basic_json_view/end.md) - the same iteration on a zero-copy view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/end_pos.md b/docs/mkdocs/docs/api/basic_json/end_pos.md
index 95b07297f..7ec88996c 100644
--- a/docs/mkdocs/docs/api/basic_json/end_pos.md
+++ b/docs/mkdocs/docs/api/basic_json/end_pos.md
@@ -60,8 +60,9 @@ Constant.
## See also
-- [start_pos](start_pos.md) to access the start position
-- [JSON_DIAGNOSTIC_POSITIONS](../macros/json_diagnostic_positions.md) for an overview of the diagnostic positions
+- [`start_pos`](start_pos.md) - to access the start position
+- [`JSON_DIAGNOSTIC_POSITIONS`](../macros/json_diagnostic_positions.md) - overview of the supported conversions
+- [Parsing and Exceptions](../../features/parsing/parse_exceptions.md) - handling parse errors and locating them in the input
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/erase.md b/docs/mkdocs/docs/api/basic_json/erase.md
index 1782b6162..68eccc5a3 100644
--- a/docs/mkdocs/docs/api/basic_json/erase.md
+++ b/docs/mkdocs/docs/api/basic_json/erase.md
@@ -204,8 +204,8 @@ Strong exception safety: if an exception occurs, the original value stays intact
## See also
-- [clear](clear.md) clears the contents
-- [insert](insert.md) add values to an array/object
+- [`clear`](clear.md) - clears the contents
+- [`insert`](insert.md) - add values to an array/object
- [Modifying values](../../features/modifying_values.md) - the article on modifying values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/error_handler_t.md b/docs/mkdocs/docs/api/basic_json/error_handler_t.md
index a80f74a55..9dd205e1d 100644
--- a/docs/mkdocs/docs/api/basic_json/error_handler_t.md
+++ b/docs/mkdocs/docs/api/basic_json/error_handler_t.md
@@ -61,7 +61,7 @@ keep
## See also
-- [dump](dump.md) serializes a JSON value, with an `error_handler_t` parameter to configure invalid UTF-8 handling
+- [`dump`](dump.md) - serializes a JSON value, with an `error_handler_t` parameter to configure invalid UTF-8 handling
- [Handling invalid UTF-8](../../features/serialization.md#handling-invalid-utf-8) - the article on handling invalid UTF-8
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/exception.md b/docs/mkdocs/docs/api/basic_json/exception.md
index 9320cdba4..7b3209e48 100644
--- a/docs/mkdocs/docs/api/basic_json/exception.md
+++ b/docs/mkdocs/docs/api/basic_json/exception.md
@@ -83,7 +83,11 @@ constructor.
## See also
-[List of exceptions](../../home/exceptions.md)
+- [List of exceptions](../../home/exceptions.md) - overview of all exceptions thrown by the library
+- [Working Without Exceptions](../../features/no_exceptions.md) - using the library without exceptions
+- [`JSON_DIAGNOSTICS`](../macros/json_diagnostics.md) - extended exception messages with the path of the failing value
+- [Parsing and Exceptions](../../features/parsing/parse_exceptions.md) - parsing alternatives that do not throw
+- [Debugging](../../home/debugging.md) - debugging aids
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/find.md b/docs/mkdocs/docs/api/basic_json/find.md
index 8883dc398..4b2018569 100644
--- a/docs/mkdocs/docs/api/basic_json/find.md
+++ b/docs/mkdocs/docs/api/basic_json/find.md
@@ -91,10 +91,11 @@ Logarithmic in the size of the JSON object.
## See also
-- [count](count.md) returns the number of occurrences of a key
-- [contains](contains.md) checks whether a key exists
-- [basic_json_view::find](../basic_json_view/find.md) - the same lookup on a zero-copy view (a duplicate key resolves
+- [`count`](count.md) - returns the number of occurrences of a key
+- [`contains`](contains.md) - checks whether a key exists
+- [`basic_json_view::find`](../basic_json_view/find.md) - the same lookup on a zero-copy view (a duplicate key resolves
to the first member, whereas `parse()` keeps the last)
+- [Element Access](../../features/element_access/index.md#does-this-key-exist) - how to test whether a key exists
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/flatten.md b/docs/mkdocs/docs/api/basic_json/flatten.md
index a232a538a..6c52010b8 100644
--- a/docs/mkdocs/docs/api/basic_json/flatten.md
+++ b/docs/mkdocs/docs/api/basic_json/flatten.md
@@ -58,7 +58,8 @@ Empty objects and arrays are flattened to `#!json null` and will not be reconstr
## See also
-- [unflatten](unflatten.md) the reverse function
+- [`unflatten`](unflatten.md) - the reverse function
+- [JSON Pointer](../../features/json_pointer.md#flatten-unflatten) - the article on JSON Pointer and flattening
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/format_as.md b/docs/mkdocs/docs/api/basic_json/format_as.md
index 1d20416c3..3c01bdf03 100644
--- a/docs/mkdocs/docs/api/basic_json/format_as.md
+++ b/docs/mkdocs/docs/api/basic_json/format_as.md
@@ -86,8 +86,8 @@ std::string format_as(const BasicJsonType& j)
## See also
-- [dump](dump.md)
-- [std::formatter](std_formatter.md) - the `std::format` (C++20) equivalent
+- [`dump`](dump.md) - serialize a JSON value to a string
+- [`std::formatter`](std_formatter.md) - the `std::format` (C++20) equivalent
- [Serialization](../../features/serialization.md) - the serialization article
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/from_bjdata.md b/docs/mkdocs/docs/api/basic_json/from_bjdata.md
index 370124c8a..42b79c497 100644
--- a/docs/mkdocs/docs/api/basic_json/from_bjdata.md
+++ b/docs/mkdocs/docs/api/basic_json/from_bjdata.md
@@ -107,12 +107,16 @@ Linear in the size of the input.
## See also
-- [to_bjdata](to_bjdata.md) create a BJData serialization of a JSON value
-- [from_cbor](from_cbor.md) create a JSON value from an input in CBOR format
-- [from_msgpack](from_msgpack.md) create a JSON value from an input in MessagePack format
-- [from_bson](from_bson.md) create a JSON value from an input in BSON format
-- [from_ubjson](from_ubjson.md) create a JSON value from an input in UBJSON format
-- [from_bon8](from_bon8.md) create a JSON value from an input in BON8 format
+- [BJData](../../features/binary_formats/bjdata.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Parsing untrusted input](../../features/parsing/untrusted_input.md) - limits and safe handling of hostile data
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`to_bjdata`](to_bjdata.md) - create a BJData serialization of a JSON value
+- [`from_cbor`](from_cbor.md) - create a JSON value from an input in CBOR format
+- [`from_msgpack`](from_msgpack.md) - create a JSON value from an input in MessagePack format
+- [`from_bson`](from_bson.md) - create a JSON value from an input in BSON format
+- [`from_ubjson`](from_ubjson.md) - create a JSON value from an input in UBJSON format
+- [`from_bon8`](from_bon8.md) - create a JSON value from an input in BON8 format
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/from_bon8.md b/docs/mkdocs/docs/api/basic_json/from_bon8.md
index e566b8688..2f60c1524 100644
--- a/docs/mkdocs/docs/api/basic_json/from_bon8.md
+++ b/docs/mkdocs/docs/api/basic_json/from_bon8.md
@@ -96,12 +96,15 @@ Linear in the size of the input.
## See also
-- [to_bon8](to_bon8.md) create a BON8 serialization of a JSON value
-- [from_cbor](from_cbor.md) create a JSON value from an input in CBOR format
-- [from_msgpack](from_msgpack.md) create a JSON value from an input in MessagePack format
-- [from_bson](from_bson.md) create a JSON value from an input in BSON format
-- [from_ubjson](from_ubjson.md) create a JSON value from an input in UBJSON format
-- [from_bjdata](from_bjdata.md) create a JSON value from an input in BJData format
+- [`BON8`](../../features/binary_formats/bon8.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Parsing untrusted input](../../features/parsing/untrusted_input.md) - limits and safe handling of hostile data
+- [`to_bon8`](to_bon8.md) - create a BON8 serialization of a JSON value
+- [`from_cbor`](from_cbor.md) - create a JSON value from an input in CBOR format
+- [`from_msgpack`](from_msgpack.md) - create a JSON value from an input in MessagePack format
+- [`from_bson`](from_bson.md) - create a JSON value from an input in BSON format
+- [`from_ubjson`](from_ubjson.md) - create a JSON value from an input in UBJSON format
+- [`from_bjdata`](from_bjdata.md) - create a JSON value from an input in BJData format
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/from_bson.md b/docs/mkdocs/docs/api/basic_json/from_bson.md
index 6e0beafce..fe3ac653f 100644
--- a/docs/mkdocs/docs/api/basic_json/from_bson.md
+++ b/docs/mkdocs/docs/api/basic_json/from_bson.md
@@ -108,13 +108,17 @@ Linear in the size of the input.
## See also
-- [BSON specification](http://bsonspec.org/spec.html)
-- [to_bson](to_bson.md) for the analogous serialization
-- [from_cbor](from_cbor.md) for the related CBOR format
-- [from_msgpack](from_msgpack.md) for the related MessagePack format
-- [from_ubjson](from_ubjson.md) for the related UBJSON format
-- [from_bjdata](from_bjdata.md) for the related BJData format
-- [from_bon8](from_bon8.md) for the related BON8 format
+- [`BSON`](../../features/binary_formats/bson.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Parsing untrusted input](../../features/parsing/untrusted_input.md) - limits and safe handling of hostile data
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [BSON specification](http://bsonspec.org/spec.html) - specification of the BSON format
+- [`to_bson`](to_bson.md) - the analogous serialization
+- [`from_cbor`](from_cbor.md) - the related CBOR format
+- [`from_msgpack`](from_msgpack.md) - the related MessagePack format
+- [`from_ubjson`](from_ubjson.md) - the related UBJSON format
+- [`from_bjdata`](from_bjdata.md) - the related BJData format
+- [`from_bon8`](from_bon8.md) - the related BON8 format
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/from_cbor.md b/docs/mkdocs/docs/api/basic_json/from_cbor.md
index 4fcd7fe98..97868a798 100644
--- a/docs/mkdocs/docs/api/basic_json/from_cbor.md
+++ b/docs/mkdocs/docs/api/basic_json/from_cbor.md
@@ -114,12 +114,16 @@ Linear in the size of the input.
## See also
-- [to_cbor](to_cbor.md) create a CBOR serialization of a JSON value
-- [from_msgpack](from_msgpack.md) create a JSON value from an input in MessagePack format
-- [from_bson](from_bson.md) create a JSON value from an input in BSON format
-- [from_ubjson](from_ubjson.md) create a JSON value from an input in UBJSON format
-- [from_bjdata](from_bjdata.md) create a JSON value from an input in BJData format
-- [from_bon8](from_bon8.md) create a JSON value from an input in BON8 format
+- [`CBOR`](../../features/binary_formats/cbor.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Parsing untrusted input](../../features/parsing/untrusted_input.md) - limits and safe handling of hostile data
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`to_cbor`](to_cbor.md) - create a CBOR serialization of a JSON value
+- [`from_msgpack`](from_msgpack.md) - create a JSON value from an input in MessagePack format
+- [`from_bson`](from_bson.md) - create a JSON value from an input in BSON format
+- [`from_ubjson`](from_ubjson.md) - create a JSON value from an input in UBJSON format
+- [`from_bjdata`](from_bjdata.md) - create a JSON value from an input in BJData format
+- [`from_bon8`](from_bon8.md) - create a JSON value from an input in BON8 format
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/from_msgpack.md b/docs/mkdocs/docs/api/basic_json/from_msgpack.md
index 51e23de7b..7ba1a4904 100644
--- a/docs/mkdocs/docs/api/basic_json/from_msgpack.md
+++ b/docs/mkdocs/docs/api/basic_json/from_msgpack.md
@@ -107,12 +107,16 @@ Linear in the size of the input.
## See also
-- [to_msgpack](to_msgpack.md) create a MessagePack serialization of a JSON value
-- [from_cbor](from_cbor.md) create a JSON value from an input in CBOR format
-- [from_bson](from_bson.md) create a JSON value from an input in BSON format
-- [from_ubjson](from_ubjson.md) create a JSON value from an input in UBJSON format
-- [from_bjdata](from_bjdata.md) create a JSON value from an input in BJData format
-- [from_bon8](from_bon8.md) create a JSON value from an input in BON8 format
+- [MessagePack](../../features/binary_formats/messagepack.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Parsing untrusted input](../../features/parsing/untrusted_input.md) - limits and safe handling of hostile data
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`to_msgpack`](to_msgpack.md) - create a MessagePack serialization of a JSON value
+- [`from_cbor`](from_cbor.md) - create a JSON value from an input in CBOR format
+- [`from_bson`](from_bson.md) - create a JSON value from an input in BSON format
+- [`from_ubjson`](from_ubjson.md) - create a JSON value from an input in UBJSON format
+- [`from_bjdata`](from_bjdata.md) - create a JSON value from an input in BJData format
+- [`from_bon8`](from_bon8.md) - create a JSON value from an input in BON8 format
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/from_ubjson.md b/docs/mkdocs/docs/api/basic_json/from_ubjson.md
index 3881f9ea4..6fbd39aa9 100644
--- a/docs/mkdocs/docs/api/basic_json/from_ubjson.md
+++ b/docs/mkdocs/docs/api/basic_json/from_ubjson.md
@@ -107,12 +107,16 @@ Linear in the size of the input.
## See also
-- [to_ubjson](to_ubjson.md) create a UBJSON serialization of a JSON value
-- [from_cbor](from_cbor.md) create a JSON value from an input in CBOR format
-- [from_msgpack](from_msgpack.md) create a JSON value from an input in MessagePack format
-- [from_bson](from_bson.md) create a JSON value from an input in BSON format
-- [from_bjdata](from_bjdata.md) create a JSON value from an input in BJData format
-- [from_bon8](from_bon8.md) create a JSON value from an input in BON8 format
+- [`UBJSON`](../../features/binary_formats/ubjson.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Parsing untrusted input](../../features/parsing/untrusted_input.md) - limits and safe handling of hostile data
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`to_ubjson`](to_ubjson.md) - create a UBJSON serialization of a JSON value
+- [`from_cbor`](from_cbor.md) - create a JSON value from an input in CBOR format
+- [`from_msgpack`](from_msgpack.md) - create a JSON value from an input in MessagePack format
+- [`from_bson`](from_bson.md) - create a JSON value from an input in BSON format
+- [`from_bjdata`](from_bjdata.md) - create a JSON value from an input in BJData format
+- [`from_bon8`](from_bon8.md) - create a JSON value from an input in BON8 format
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/front.md b/docs/mkdocs/docs/api/basic_json/front.md
index 08c871b9a..d38a5cd34 100644
--- a/docs/mkdocs/docs/api/basic_json/front.md
+++ b/docs/mkdocs/docs/api/basic_json/front.md
@@ -50,9 +50,10 @@ Constant.
## See also
-- [back](back.md) to access the last element
-- [basic_json_view::front](../basic_json_view/front.md) - the same access on a zero-copy view (document order, not
+- [`back`](back.md) - to access the last element
+- [`basic_json_view::front`](../basic_json_view/front.md) - the same access on a zero-copy view (document order, not
sorted; duplicate keys are visited)
+- [Element Access](../../features/element_access/index.md) - overview of all ways to access elements
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/get.md b/docs/mkdocs/docs/api/basic_json/get.md
index fcb5c595a..016595d5f 100644
--- a/docs/mkdocs/docs/api/basic_json/get.md
+++ b/docs/mkdocs/docs/api/basic_json/get.md
@@ -178,13 +178,14 @@ overload (3).
## See also
-- [get_to](get_to.md) convert and write into a passed value
-- [get_ptr](get_ptr.md) get a pointer to the stored value
-- [get_ref](get_ref.md) get a reference to the stored value
-- [operator ValueType](operator_ValueType.md) get a value via implicit conversion
+- [`get_to`](get_to.md) - convert and write into a passed value
+- [`get_ptr`](get_ptr.md) - get a pointer to the stored value
+- [`get_ref`](get_ref.md) - get a reference to the stored value
+- [`operator ValueType`](operator_ValueType.md) - get a value via implicit conversion
- [Converting values](../../features/conversions.md) - the type conversions article
-- [basic_json_view::get](../basic_json_view/get.md) - the same conversion on a zero-copy view (many types are
+- [`basic_json_view::get`](../basic_json_view/get.md) - the same conversion on a zero-copy view (many types are
converted without ever building a `basic_json` value)
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - make your own types usable with `get`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/get_allocator.md b/docs/mkdocs/docs/api/basic_json/get_allocator.md
index 46f71dff6..f3ca2e422 100644
--- a/docs/mkdocs/docs/api/basic_json/get_allocator.md
+++ b/docs/mkdocs/docs/api/basic_json/get_allocator.md
@@ -36,7 +36,7 @@ Constant.
## See also
-- [basic_json](index.md#template-parameters) the class template, with `AllocatorType` as one of its template parameters
+- [`basic_json`](index.md#template-parameters) - the class template, with `AllocatorType` as one of its template parameters
- [Template Parameter Requirements](../../features/types/template_parameters.md#allocatortype) - the requirements for `AllocatorType`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/get_binary.md b/docs/mkdocs/docs/api/basic_json/get_binary.md
index 569e72274..5e75c2c49 100644
--- a/docs/mkdocs/docs/api/basic_json/get_binary.md
+++ b/docs/mkdocs/docs/api/basic_json/get_binary.md
@@ -42,8 +42,11 @@ Constant.
## See also
-- [get](get.md) get a value (explicit conversion)
-- [get_ref](get_ref.md) get a reference to the stored value
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`binary`](binary.md) - create a binary value
+- [`is_binary`](is_binary.md) - check whether a value is binary
+- [`get`](get.md) - get a value (explicit conversion)
+- [`get_ref`](get_ref.md) - get a reference to the stored value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/get_ptr.md b/docs/mkdocs/docs/api/basic_json/get_ptr.md
index 1a8d87e9d..8d6943545 100644
--- a/docs/mkdocs/docs/api/basic_json/get_ptr.md
+++ b/docs/mkdocs/docs/api/basic_json/get_ptr.md
@@ -86,7 +86,8 @@ Constant.
## See also
-- [get_ref()](get_ref.md) get a reference value
+- [`get_ref()`](get_ref.md) - get a reference value
+- [Converting values](../../features/conversions.md) - getting values out, with or without copying
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/get_ref.md b/docs/mkdocs/docs/api/basic_json/get_ref.md
index 4177e7483..a91da769f 100644
--- a/docs/mkdocs/docs/api/basic_json/get_ref.md
+++ b/docs/mkdocs/docs/api/basic_json/get_ref.md
@@ -60,9 +60,10 @@ Constant.
## See also
-- [get_ptr()](get_ptr.md) get a pointer value
-- [basic_json_view::get_string](../basic_json_view/get_string.md) - the closest counterpart on a zero-copy view: a
+- [`get_ptr()`](get_ptr.md) - get a pointer value
+- [`basic_json_view::get_string`](../basic_json_view/get_string.md) - the closest counterpart on a zero-copy view: a
string without a copy, but as a view rather than a reference to a value that must already exist
+- [Converting values](../../features/conversions.md) - getting values out, with or without copying
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/get_to.md b/docs/mkdocs/docs/api/basic_json/get_to.md
index 233d151b0..24dbfb824 100644
--- a/docs/mkdocs/docs/api/basic_json/get_to.md
+++ b/docs/mkdocs/docs/api/basic_json/get_to.md
@@ -68,11 +68,12 @@ Depends on the `json_serializer::from_json()` implementation.
## See also
-- [get](get.md) get a value (explicit conversion)
-- [get_ref](get_ref.md) get a reference to the stored value
-- [get_ptr](get_ptr.md) get a pointer to the stored value
+- [`get`](get.md) - get a value (explicit conversion)
+- [`get_ref`](get_ref.md) - get a reference to the stored value
+- [`get_ptr`](get_ptr.md) - get a pointer to the stored value
- [Converting values](../../features/conversions.md) - the type conversions article
-- [basic_json_view::get_to](../basic_json_view/get_to.md) - the same conversion on a zero-copy view
+- [`basic_json_view::get_to`](../basic_json_view/get_to.md) - the same conversion on a zero-copy view
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - make your own types usable with `get_to`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/index.md b/docs/mkdocs/docs/api/basic_json/index.md
index acb67401f..182a9f1a2 100644
--- a/docs/mkdocs/docs/api/basic_json/index.md
+++ b/docs/mkdocs/docs/api/basic_json/index.md
@@ -188,7 +188,7 @@ The class satisfies the following concept requirements:
Functions to inspect the type of a JSON value.
- [**type**](type.md) - return the type of the JSON value
-- [**operator value_t**](operator_value_t.md) - return the type of the JSON value
+- [`operator value_t`](operator_value_t.md) - return the type of the JSON value
- [**type_name**](type_name.md) - return the type as string
- [**is_primitive**](is_primitive.md) - return whether the type is primitive
- [**is_structured**](is_structured.md) - return whether the type is structured
@@ -217,7 +217,7 @@ Direct access to the stored value of a JSON value.
- [**get_to**](get_to.md) - get a value and write it to a destination
- [**get_ptr**](get_ptr.md) - get a pointer value
- [**get_ref**](get_ref.md) - get a reference value
-- [**operator ValueType**](operator_ValueType.md) - get a value
+- [`operator ValueType`](operator_ValueType.md) - get a value
- [**get_binary**](get_binary.md) - get a binary value
- [**as_base_class**](as_base_class.md) - access the custom base class
@@ -358,10 +358,15 @@ Access to the JSON value
## See also
-- [RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format](https://tools.ietf.org/html/rfc8259)
-- [basic_json_document](../basic_json_document/index.md) / [basic_json_view](../basic_json_view/index.md) - parse a JSON
+- [RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format](https://tools.ietf.org/html/rfc8259) -
+ specification of the JSON data interchange format
+- [`basic_json_document`](../basic_json_document/index.md) - / [`basic_json_view`](../basic_json_view/index.md) - parse a JSON
text into a flat index and read it through a view
- [Zero-copy JSON views](../../features/json_view.md) - when to use a document and a view instead of a `basic_json`
+- [Types](../../features/types/index.md) - how JSON values are stored and which types exist
+- [Converting values](../../features/conversions.md) - get values out of a JSON value and put values in
+- [Creating JSON values](../../features/creating_values.md) - all the ways to build a JSON value
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - convert your own types to and from JSON
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/input_format_t.md b/docs/mkdocs/docs/api/basic_json/input_format_t.md
index 34a80e3f7..aa3531832 100644
--- a/docs/mkdocs/docs/api/basic_json/input_format_t.md
+++ b/docs/mkdocs/docs/api/basic_json/input_format_t.md
@@ -53,8 +53,9 @@ bon8
## See also
-- [sax_parse](sax_parse.md) generic SAX parse interface, taking an `input_format_t` to select the input format
-- [cbor_tag_handler_t](cbor_tag_handler_t.md) configures how CBOR tags are treated while parsing
+- [`sax_parse`](sax_parse.md) - generic SAX parse interface, taking an `input_format_t` to select the input format
+- [`cbor_tag_handler_t`](cbor_tag_handler_t.md) - configures how CBOR tags are treated while parsing
+- [Binary Formats](../../features/binary_formats/index.md) - CBOR, MessagePack, BSON, and other formats
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/insert.md b/docs/mkdocs/docs/api/basic_json/insert.md
index 12009fbaa..12619a2d8 100644
--- a/docs/mkdocs/docs/api/basic_json/insert.md
+++ b/docs/mkdocs/docs/api/basic_json/insert.md
@@ -185,10 +185,11 @@ Strong exception safety: if an exception occurs, the original value stays intact
## See also
-- [emplace](emplace.md) add a value to an object
-- [emplace_back](emplace_back.md) add a value to an array
-- [push_back](push_back.md) add a value to an array/object
-- [update](update.md) merges objects
+- [`emplace`](emplace.md) - add a value to an object
+- [`emplace_back`](emplace_back.md) - add a value to an array
+- [`push_back`](push_back.md) - add a value to an array/object
+- [`update`](update.md) - merges objects
+- [Modifying values](../../features/modifying_values.md) - the article on modifying values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/invalid_iterator.md b/docs/mkdocs/docs/api/basic_json/invalid_iterator.md
index 3367fd2b4..acf3f207a 100644
--- a/docs/mkdocs/docs/api/basic_json/invalid_iterator.md
+++ b/docs/mkdocs/docs/api/basic_json/invalid_iterator.md
@@ -69,12 +69,14 @@ base class, and the highlighted box is `basic_json::invalid_iterator`.
## See also
-- [`exception`](exception.md) for the base class of all exceptions thrown by the library
-- [List of iterator errors](../../home/exceptions.md#iterator-errors)
-- [`parse_error`](parse_error.md) for exceptions indicating a parse error
-- [`type_error`](type_error.md) for exceptions indicating executing a member function with a wrong type
-- [`out_of_range`](out_of_range.md) for exceptions indicating access out of the defined range
-- [`other_error`](other_error.md) for exceptions indicating other library errors
+- [`exception`](exception.md) - the base class of all exceptions thrown by the library
+- [List of iterator errors](../../home/exceptions.md#iterator-errors) - overview of iterator errors (`invalid_iterator`)
+- [`parse_error`](parse_error.md) - exceptions indicating a parse error
+- [`type_error`](type_error.md) - exceptions indicating executing a member function with a wrong type
+- [`out_of_range`](out_of_range.md) - exceptions indicating access out of the defined range
+- [`other_error`](other_error.md) - exceptions indicating other library errors
+- [Exceptions](../../home/exceptions.md) - all exceptions and their error codes
+- [`JSON_DIAGNOSTICS`](../macros/json_diagnostics.md) - extended exception messages with the path of the failing value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_array.md b/docs/mkdocs/docs/api/basic_json/is_array.md
index 9f2bfc6fc..cc6ca1469 100644
--- a/docs/mkdocs/docs/api/basic_json/is_array.md
+++ b/docs/mkdocs/docs/api/basic_json/is_array.md
@@ -36,11 +36,12 @@ Constant.
## See also
-- [is_object](is_object.md) checks whether the JSON value is an object
-- [is_structured](is_structured.md) checks whether the JSON value is structured (array or object)
-- [type](type.md) returns the type of the JSON value
-- [array_t](array_t.md) the type used to store JSON arrays
-- [basic_json_view::is_array](../basic_json_view/is_array.md) - the same check on a zero-copy view
+- [`is_object`](is_object.md) - checks whether the JSON value is an object
+- [`is_structured`](is_structured.md) - checks whether the JSON value is structured (array or object)
+- [`type`](type.md) - returns the type of the JSON value
+- [`array_t`](array_t.md) - the type used to store JSON arrays
+- [`basic_json_view::is_array`](../basic_json_view/is_array.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_binary.md b/docs/mkdocs/docs/api/basic_json/is_binary.md
index 87bb8b66c..ee52d11de 100644
--- a/docs/mkdocs/docs/api/basic_json/is_binary.md
+++ b/docs/mkdocs/docs/api/basic_json/is_binary.md
@@ -36,10 +36,11 @@ Constant.
## See also
-- [is_primitive](is_primitive.md) checks whether the JSON value is primitive
-- [binary_t](binary_t.md) the type used to store binary values
-- [get_binary](get_binary.md) returns a reference to the stored binary value
-- [basic_json_view::is_binary](../basic_json_view/is_binary.md) - the same check on a zero-copy view
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`is_primitive`](is_primitive.md) - checks whether the JSON value is primitive
+- [`binary_t`](binary_t.md) - the type used to store binary values
+- [`get_binary`](get_binary.md) - returns a reference to the stored binary value
+- [`basic_json_view::is_binary`](../basic_json_view/is_binary.md) - the same check on a zero-copy view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_boolean.md b/docs/mkdocs/docs/api/basic_json/is_boolean.md
index c7585812c..4f349e551 100644
--- a/docs/mkdocs/docs/api/basic_json/is_boolean.md
+++ b/docs/mkdocs/docs/api/basic_json/is_boolean.md
@@ -36,9 +36,10 @@ Constant.
## See also
-- [boolean_t](boolean_t.md) the type used to store JSON booleans
-- [is_primitive](is_primitive.md) checks whether the JSON value is primitive
-- [basic_json_view::is_boolean](../basic_json_view/is_boolean.md) - the same check on a zero-copy view
+- [`boolean_t`](boolean_t.md) - the type used to store JSON booleans
+- [`is_primitive`](is_primitive.md) - checks whether the JSON value is primitive
+- [`basic_json_view::is_boolean`](../basic_json_view/is_boolean.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_discarded.md b/docs/mkdocs/docs/api/basic_json/is_discarded.md
index 3d434f577..6dcd59675 100644
--- a/docs/mkdocs/docs/api/basic_json/is_discarded.md
+++ b/docs/mkdocs/docs/api/basic_json/is_discarded.md
@@ -87,8 +87,9 @@ with `allow_exceptions` set to `#!cpp false`: a parse error then yields a discar
## See also
-- [basic_json_view::is_discarded](../basic_json_view/is_discarded.md) - the corresponding check on a zero-copy view,
+- [`basic_json_view::is_discarded`](../basic_json_view/is_discarded.md) - the corresponding check on a zero-copy view,
which is `#!cpp true` if the view refers to no value
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_null.md b/docs/mkdocs/docs/api/basic_json/is_null.md
index 3823b96dd..6b7647fe0 100644
--- a/docs/mkdocs/docs/api/basic_json/is_null.md
+++ b/docs/mkdocs/docs/api/basic_json/is_null.md
@@ -36,11 +36,12 @@ Constant.
## See also
-- [is_array](is_array.md) checks whether the JSON value is an array
-- [is_object](is_object.md) checks whether the JSON value is an object
-- [type](type.md) returns the type of the JSON value
-- [value_t](value_t.md) the enumeration of JSON types
-- [basic_json_view::is_null](../basic_json_view/is_null.md) - the same check on a zero-copy view
+- [`is_array`](is_array.md) - checks whether the JSON value is an array
+- [`is_object`](is_object.md) - checks whether the JSON value is an object
+- [`type`](type.md) - returns the type of the JSON value
+- [`value_t`](value_t.md) - the enumeration of JSON types
+- [`basic_json_view::is_null`](../basic_json_view/is_null.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_number.md b/docs/mkdocs/docs/api/basic_json/is_number.md
index 5db28d3e0..7e4b2fec3 100644
--- a/docs/mkdocs/docs/api/basic_json/is_number.md
+++ b/docs/mkdocs/docs/api/basic_json/is_number.md
@@ -46,10 +46,12 @@ constexpr bool is_number() const noexcept
## See also
-- [is_number_integer()](is_number_integer.md) check if the value is an integer or unsigned integer number
-- [is_number_unsigned()](is_number_unsigned.md) check if the value is an unsigned integer number
-- [is_number_float()](is_number_float.md) check if the value is a floating-point number
-- [basic_json_view::is_number](../basic_json_view/is_number.md) - the same check on a zero-copy view
+- [`is_number_integer()`](is_number_integer.md) - check if the value is an integer or unsigned integer number
+- [`is_number_unsigned()`](is_number_unsigned.md) - check if the value is an unsigned integer number
+- [`is_number_float()`](is_number_float.md) - check if the value is a floating-point number
+- [`basic_json_view::is_number`](../basic_json_view/is_number.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
+- [Number Handling](../../features/types/number_handling.md) - how numbers are stored and converted
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_number_float.md b/docs/mkdocs/docs/api/basic_json/is_number_float.md
index c94825b41..6aad56803 100644
--- a/docs/mkdocs/docs/api/basic_json/is_number_float.md
+++ b/docs/mkdocs/docs/api/basic_json/is_number_float.md
@@ -37,10 +37,12 @@ Constant.
## See also
-- [is_number()](is_number.md) check if the value is a number
-- [is_number_integer()](is_number_integer.md) check if the value is an integer or unsigned integer number
-- [is_number_unsigned()](is_number_unsigned.md) check if the value is an unsigned integer number
-- [basic_json_view::is_number_float](../basic_json_view/is_number_float.md) - the same check on a zero-copy view
+- [`is_number()`](is_number.md) - check if the value is a number
+- [`is_number_integer()`](is_number_integer.md) - check if the value is an integer or unsigned integer number
+- [`is_number_unsigned()`](is_number_unsigned.md) - check if the value is an unsigned integer number
+- [`basic_json_view::is_number_float`](../basic_json_view/is_number_float.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
+- [Number Handling](../../features/types/number_handling.md) - how numbers are stored and converted
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_number_integer.md b/docs/mkdocs/docs/api/basic_json/is_number_integer.md
index 71e2aba20..16951e092 100644
--- a/docs/mkdocs/docs/api/basic_json/is_number_integer.md
+++ b/docs/mkdocs/docs/api/basic_json/is_number_integer.md
@@ -37,10 +37,12 @@ Constant.
## See also
-- [is_number()](is_number.md) check if the value is a number
-- [is_number_unsigned()](is_number_unsigned.md) check if the value is an unsigned integer number
-- [is_number_float()](is_number_float.md) check if the value is a floating-point number
-- [basic_json_view::is_number_integer](../basic_json_view/is_number_integer.md) - the same check on a zero-copy view
+- [`is_number()`](is_number.md) - check if the value is a number
+- [`is_number_unsigned()`](is_number_unsigned.md) - check if the value is an unsigned integer number
+- [`is_number_float()`](is_number_float.md) - check if the value is a floating-point number
+- [`basic_json_view::is_number_integer`](../basic_json_view/is_number_integer.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
+- [Number Handling](../../features/types/number_handling.md) - how numbers are stored and converted
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_number_unsigned.md b/docs/mkdocs/docs/api/basic_json/is_number_unsigned.md
index 2e94d10d6..832f778c2 100644
--- a/docs/mkdocs/docs/api/basic_json/is_number_unsigned.md
+++ b/docs/mkdocs/docs/api/basic_json/is_number_unsigned.md
@@ -40,10 +40,12 @@ Constant.
## See also
-- [is_number()](is_number.md) check if the value is a number
-- [is_number_integer()](is_number_integer.md) check if the value is an integer or unsigned integer number
-- [is_number_float()](is_number_float.md) check if the value is a floating-point number
-- [basic_json_view::is_number_unsigned](../basic_json_view/is_number_unsigned.md) - the same check on a zero-copy view
+- [`is_number()`](is_number.md) - check if the value is a number
+- [`is_number_integer()`](is_number_integer.md) - check if the value is an integer or unsigned integer number
+- [`is_number_float()`](is_number_float.md) - check if the value is a floating-point number
+- [`basic_json_view::is_number_unsigned`](../basic_json_view/is_number_unsigned.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
+- [Number Handling](../../features/types/number_handling.md) - how numbers are stored and converted
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_object.md b/docs/mkdocs/docs/api/basic_json/is_object.md
index 2105a28a7..7f7cedea4 100644
--- a/docs/mkdocs/docs/api/basic_json/is_object.md
+++ b/docs/mkdocs/docs/api/basic_json/is_object.md
@@ -36,11 +36,12 @@ Constant.
## See also
-- [is_array](is_array.md) checks whether the JSON value is an array
-- [is_structured](is_structured.md) checks whether the JSON value is structured (array or object)
-- [type](type.md) returns the type of the JSON value
-- [object_t](object_t.md) the type used to store JSON objects
-- [basic_json_view::is_object](../basic_json_view/is_object.md) - the same check on a zero-copy view
+- [`is_array`](is_array.md) - checks whether the JSON value is an array
+- [`is_structured`](is_structured.md) - checks whether the JSON value is structured (array or object)
+- [`type`](type.md) - returns the type of the JSON value
+- [`object_t`](object_t.md) - the type used to store JSON objects
+- [`basic_json_view::is_object`](../basic_json_view/is_object.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_primitive.md b/docs/mkdocs/docs/api/basic_json/is_primitive.md
index 70836ecdd..0e24c5073 100644
--- a/docs/mkdocs/docs/api/basic_json/is_primitive.md
+++ b/docs/mkdocs/docs/api/basic_json/is_primitive.md
@@ -56,13 +56,14 @@ This library extends primitive types to binary types, because binary types are r
## See also
-- [is_structured()](is_structured.md) returns whether the JSON value is structured
-- [is_null()](is_null.md) returns whether the JSON value is `null`
-- [is_string()](is_string.md) returns whether the JSON value is a string
-- [is_boolean()](is_boolean.md) returns whether the JSON value is a boolean
-- [is_number()](is_number.md) returns whether the JSON value is a number
-- [is_binary()](is_binary.md) returns whether the JSON value is a binary array
-- [basic_json_view::is_primitive](../basic_json_view/is_primitive.md) - the same check on a zero-copy view
+- [`is_structured()`](is_structured.md) - returns whether the JSON value is structured
+- [`is_null()`](is_null.md) - returns whether the JSON value is `null`
+- [`is_string()`](is_string.md) - returns whether the JSON value is a string
+- [`is_boolean()`](is_boolean.md) - returns whether the JSON value is a boolean
+- [`is_number()`](is_number.md) - returns whether the JSON value is a number
+- [`is_binary()`](is_binary.md) - returns whether the JSON value is a binary array
+- [`basic_json_view::is_primitive`](../basic_json_view/is_primitive.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_string.md b/docs/mkdocs/docs/api/basic_json/is_string.md
index a1d19c14d..e8ba09d1e 100644
--- a/docs/mkdocs/docs/api/basic_json/is_string.md
+++ b/docs/mkdocs/docs/api/basic_json/is_string.md
@@ -36,10 +36,11 @@ Constant.
## See also
-- [is_primitive](is_primitive.md) checks whether the JSON value is primitive
-- [type](type.md) returns the type of the JSON value
-- [string_t](string_t.md) the type used to store JSON strings
-- [basic_json_view::is_string](../basic_json_view/is_string.md) - the same check on a zero-copy view
+- [`is_primitive`](is_primitive.md) - checks whether the JSON value is primitive
+- [`type`](type.md) - returns the type of the JSON value
+- [`string_t`](string_t.md) - the type used to store JSON strings
+- [`basic_json_view::is_string`](../basic_json_view/is_string.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/is_structured.md b/docs/mkdocs/docs/api/basic_json/is_structured.md
index a67f2778b..0e150e2c7 100644
--- a/docs/mkdocs/docs/api/basic_json/is_structured.md
+++ b/docs/mkdocs/docs/api/basic_json/is_structured.md
@@ -54,10 +54,11 @@ Note that though strings are containers in C++, they are treated as primitive va
## See also
-- [is_primitive()](is_primitive.md) returns whether JSON value is primitive
-- [is_array()](is_array.md) returns whether the value is an array
-- [is_object()](is_object.md) returns whether the value is an object
-- [basic_json_view::is_structured](../basic_json_view/is_structured.md) - the same check on a zero-copy view
+- [`is_primitive()`](is_primitive.md) - returns whether JSON value is primitive
+- [`is_array()`](is_array.md) - returns whether the value is an array
+- [`is_object()`](is_object.md) - returns whether the value is an object
+- [`basic_json_view::is_structured`](../basic_json_view/is_structured.md) - the same check on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/items.md b/docs/mkdocs/docs/api/basic_json/items.md
index 025002e07..77ca91411 100644
--- a/docs/mkdocs/docs/api/basic_json/items.md
+++ b/docs/mkdocs/docs/api/basic_json/items.md
@@ -97,10 +97,11 @@ When iterating over an array, `key()` will return the index of the element as st
## See also
-- [begin](begin.md) returns an iterator to the first element
-- [end](end.md) returns an iterator to one past the last element
-- [basic_json_view::items](../basic_json_view/items.md) - the same range on a zero-copy view (`#!cpp const auto`,
+- [`begin`](begin.md) - returns an iterator to the first element
+- [`end`](end.md) - returns an iterator to one past the last element
+- [`basic_json_view::items`](../basic_json_view/items.md) - the same range on a zero-copy view (`#!cpp const auto`,
not `#!cpp const auto&`: items are produced on the fly; document order, not sorted; duplicate keys are visited)
+- [Iterators](../../features/iterators.md#access-object-keys-during-iteration) - the article on iterating over keys and values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/json_base_class_t.md b/docs/mkdocs/docs/api/basic_json/json_base_class_t.md
index 2beed5a22..7fa3ca913 100644
--- a/docs/mkdocs/docs/api/basic_json/json_base_class_t.md
+++ b/docs/mkdocs/docs/api/basic_json/json_base_class_t.md
@@ -57,7 +57,7 @@ same name. Hidden members remain accessible via [`as_base_class`](as_base_class.
## See also
-- [as_base_class](as_base_class.md) - access the custom base class
+- [`as_base_class`](as_base_class.md) - access the custom base class
- [Template Parameter Requirements](../../features/types/template_parameters.md#custombaseclass) - the requirements for `CustomBaseClass`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/json_serializer.md b/docs/mkdocs/docs/api/basic_json/json_serializer.md
index 011f7d113..7ded9c5fe 100644
--- a/docs/mkdocs/docs/api/basic_json/json_serializer.md
+++ b/docs/mkdocs/docs/api/basic_json/json_serializer.md
@@ -44,10 +44,11 @@ deserializes. See [Template Parameter Requirements](../../features/types/templat
## See also
-- [adl_serializer](../adl_serializer/index.md) the default `json_serializer`
-- [get](get.md) explicit type conversion using the `json_serializer`'s `from_json()` method
-- [get_to](get_to.md) explicit type conversion into a variable using the `json_serializer`'s `from_json()` method
+- [`adl_serializer`](../adl_serializer/index.md) - the default `json_serializer`
+- [`get`](get.md) - explicit type conversion using the `json_serializer`'s `from_json()` method
+- [`get_to`](get_to.md) - explicit type conversion into a variable using the `json_serializer`'s `from_json()` method
- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - the article on converting between JSON values and arbitrary types
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the `JSONSerializer` template parameter
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/max_size.md b/docs/mkdocs/docs/api/basic_json/max_size.md
index 5896a2afd..e6c819096 100644
--- a/docs/mkdocs/docs/api/basic_json/max_size.md
+++ b/docs/mkdocs/docs/api/basic_json/max_size.md
@@ -56,9 +56,9 @@ string elements the JSON value can store which is `1`.
## See also
-- [size](size.md) returns the number of elements
-- [array_t](array_t.md) the type used to store JSON arrays
-- [object_t](object_t.md) the type used to store JSON objects
+- [`size`](size.md) - returns the number of elements
+- [`array_t`](array_t.md) - the type used to store JSON arrays
+- [`object_t`](object_t.md) - the type used to store JSON objects
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/merge_diff.md b/docs/mkdocs/docs/api/basic_json/merge_diff.md
index b02ac3e54..776b84fb4 100644
--- a/docs/mkdocs/docs/api/basic_json/merge_diff.md
+++ b/docs/mkdocs/docs/api/basic_json/merge_diff.md
@@ -70,9 +70,10 @@ object operation (looking up a key, or adding one to the patch): logarithmic for
## See also
-- [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396)
-- [merge_patch](merge_patch.md) applies a JSON Merge Patch
-- [diff](diff.md) creates a diff as a JSON Patch
+- [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396) - specification of JSON Merge Patch
+- [`merge_patch`](merge_patch.md) - applies a JSON Merge Patch
+- [`diff`](diff.md) - creates a diff as a JSON Patch
+- [JSON Merge Patch](../../features/merge_patch.md) - the article on JSON Merge Patch
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/merge_patch.md b/docs/mkdocs/docs/api/basic_json/merge_patch.md
index 1fafb1ece..5d34508b9 100644
--- a/docs/mkdocs/docs/api/basic_json/merge_patch.md
+++ b/docs/mkdocs/docs/api/basic_json/merge_patch.md
@@ -65,9 +65,10 @@ returned by `#!cpp (*this)[key]`); it is read as it was when `merge_patch()` was
## See also
-- [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396)
-- [patch](patch.md) apply a JSON patch
-- [merge_diff](merge_diff.md) creates a diff as a JSON Merge Patch
+- [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396) - specification of JSON Merge Patch
+- [`patch`](patch.md) - apply a JSON patch
+- [`merge_diff`](merge_diff.md) - creates a diff as a JSON Merge Patch
+- [JSON Merge Patch](../../features/merge_patch.md) - the article on JSON Merge Patch
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/meta.md b/docs/mkdocs/docs/api/basic_json/meta.md
index 9b1ac2a4e..3f465826d 100644
--- a/docs/mkdocs/docs/api/basic_json/meta.md
+++ b/docs/mkdocs/docs/api/basic_json/meta.md
@@ -48,8 +48,11 @@ Constant.
## See also
-- [**NLOHMANN_JSON_VERSION_MAJOR**/**NLOHMANN_JSON_VERSION_MINOR**/**NLOHMANN_JSON_VERSION_PATCH**](../macros/nlohmann_json_version_major.md)
- \- library version information
+- [`NLOHMANN_JSON_VERSION_MAJOR`](../macros/nlohmann_json_version_major.md) /
+ [`NLOHMANN_JSON_VERSION_MINOR`](../macros/nlohmann_json_version_major.md) /
+ [`NLOHMANN_JSON_VERSION_PATCH`](../macros/nlohmann_json_version_major.md) - library version information
+- [Integration](../../integration/index.md) - integrate the library
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/number_float_t.md b/docs/mkdocs/docs/api/basic_json/number_float_t.md
index cf482d6f0..142f3f023 100644
--- a/docs/mkdocs/docs/api/basic_json/number_float_t.md
+++ b/docs/mkdocs/docs/api/basic_json/number_float_t.md
@@ -84,10 +84,11 @@ Floating-point number values are stored directly inside a `basic_json` type.
## See also
-- [number_integer_t](number_integer_t.md) the type used to store JSON integer numbers
-- [number_unsigned_t](number_unsigned_t.md) the type used to store JSON unsigned integer numbers
-- [is_number_float](is_number_float.md) checks whether the JSON value is a floating-point number
+- [`number_integer_t`](number_integer_t.md) - the type used to store JSON integer numbers
+- [`number_unsigned_t`](number_unsigned_t.md) - the type used to store JSON unsigned integer numbers
+- [`is_number_float`](is_number_float.md) - checks whether the JSON value is a floating-point number
- [Number Handling](../../features/types/number_handling.md) - the article on number handling
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the number template parameters
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/number_integer_t.md b/docs/mkdocs/docs/api/basic_json/number_integer_t.md
index 6bd18a74b..e8983473e 100644
--- a/docs/mkdocs/docs/api/basic_json/number_integer_t.md
+++ b/docs/mkdocs/docs/api/basic_json/number_integer_t.md
@@ -80,10 +80,11 @@ Integer number values are stored directly inside a `basic_json` type.
## See also
-- [number_unsigned_t](number_unsigned_t.md) the type used to store JSON unsigned integer numbers
-- [number_float_t](number_float_t.md) the type used to store JSON floating-point numbers
-- [is_number_integer](is_number_integer.md) checks whether the JSON value is a signed integer number
+- [`number_unsigned_t`](number_unsigned_t.md) - the type used to store JSON unsigned integer numbers
+- [`number_float_t`](number_float_t.md) - the type used to store JSON floating-point numbers
+- [`is_number_integer`](is_number_integer.md) - checks whether the JSON value is a signed integer number
- [Number Handling](../../features/types/number_handling.md) - the article on number handling
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the number template parameters
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/number_unsigned_t.md b/docs/mkdocs/docs/api/basic_json/number_unsigned_t.md
index cd8044bd3..232f9f95b 100644
--- a/docs/mkdocs/docs/api/basic_json/number_unsigned_t.md
+++ b/docs/mkdocs/docs/api/basic_json/number_unsigned_t.md
@@ -82,10 +82,11 @@ Integer number values are stored directly inside a `basic_json` type.
## See also
-- [number_integer_t](number_integer_t.md) the type used to store JSON integer numbers
-- [number_float_t](number_float_t.md) the type used to store JSON floating-point numbers
-- [is_number_unsigned](is_number_unsigned.md) checks whether the JSON value is an unsigned integer number
+- [`number_integer_t`](number_integer_t.md) - the type used to store JSON integer numbers
+- [`number_float_t`](number_float_t.md) - the type used to store JSON floating-point numbers
+- [`is_number_unsigned`](is_number_unsigned.md) - checks whether the JSON value is an unsigned integer number
- [Number Handling](../../features/types/number_handling.md) - the article on number handling
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the number template parameters
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/object_comparator_t.md b/docs/mkdocs/docs/api/basic_json/object_comparator_t.md
index 7f2982703..0ff780d7d 100644
--- a/docs/mkdocs/docs/api/basic_json/object_comparator_t.md
+++ b/docs/mkdocs/docs/api/basic_json/object_comparator_t.md
@@ -27,8 +27,10 @@ and [`default_object_comparator_t`](default_object_comparator_t.md) otherwise.
## See also
-- [object_t](object_t.md) the type used to store JSON objects
-- [default_object_comparator_t](default_object_comparator_t.md) the fallback comparator used when `object_t` has no `key_compare` member type
+- [`object_t`](object_t.md) - the type used to store JSON objects
+- [`default_object_comparator_t`](default_object_comparator_t.md) - the fallback comparator used when `object_t` has no `key_compare` member type
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the `ObjectType` template parameter
+- [Object order](../../features/object_order.md) - preserve the insertion order of keys
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/object_t.md b/docs/mkdocs/docs/api/basic_json/object_t.md
index 66fa9c110..5bdcdb42b 100644
--- a/docs/mkdocs/docs/api/basic_json/object_t.md
+++ b/docs/mkdocs/docs/api/basic_json/object_t.md
@@ -125,10 +125,12 @@ the object is silently converted as an array of key-value pairs, which is incorr
## See also
-- [array_t](array_t.md) the type used to store JSON arrays
-- [string_t](string_t.md) the type used to store JSON strings
-- [object_comparator_t](object_comparator_t.md) the comparator used to order object keys
+- [`array_t`](array_t.md) - the type used to store JSON arrays
+- [`string_t`](string_t.md) - the type used to store JSON strings
+- [`object_comparator_t`](object_comparator_t.md) - the comparator used to order object keys
- [Object Order](../../features/object_order.md) - the article on object key ordering
+- [Types](../../features/types/index.md) - how objects are stored
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the `ObjectType` template parameter
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator+=.md b/docs/mkdocs/docs/api/basic_json/operator+=.md
index 3aee3f22d..73dc0e260 100644
--- a/docs/mkdocs/docs/api/basic_json/operator+=.md
+++ b/docs/mkdocs/docs/api/basic_json/operator+=.md
@@ -123,8 +123,9 @@ interpreted as `object_t::value_type` or `std::initializer_list`, se
## See also
-- [emplace_back](emplace_back.md) add a value to an array
-- [push_back](push_back.md) add a value to an array/object
+- [`emplace_back`](emplace_back.md) - add a value to an array
+- [`push_back`](push_back.md) - add a value to an array/object
+- [Modifying values](../../features/modifying_values.md) - the article on modifying values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator=.md b/docs/mkdocs/docs/api/basic_json/operator=.md
index 4639783de..6b9fed682 100644
--- a/docs/mkdocs/docs/api/basic_json/operator=.md
+++ b/docs/mkdocs/docs/api/basic_json/operator=.md
@@ -45,8 +45,9 @@ Linear.
## See also
-- [basic_json](basic_json.md) create a JSON value
-- [swap](swap.md) exchanges the contents of two JSON values
+- [`basic_json`](basic_json.md) - create a JSON value
+- [`swap`](swap.md) - exchanges the contents of two JSON values
+- [Creating JSON values](../../features/creating_values.md) - ways to create and assign JSON values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator[].md b/docs/mkdocs/docs/api/basic_json/operator[].md
index 4356969a9..81972e0f7 100644
--- a/docs/mkdocs/docs/api/basic_json/operator[].md
+++ b/docs/mkdocs/docs/api/basic_json/operator[].md
@@ -271,13 +271,15 @@ Strong exception safety: if an exception occurs, the original value stays intact
## See also
-- documentation on [unchecked access](../../features/element_access/unchecked_access.md)
-- documentation on [runtime assertions](../../features/assertions.md)
-- see [`at`](at.md) for access by reference with range checking
-- see [`value`](value.md) for access with default value
-- [basic_json_view::operator[]](../basic_json_view/operator%5B%5D.md) - the same access on a zero-copy view (a duplicate
+- [Unchecked access](../../features/element_access/unchecked_access.md) - element access without range checking
+- [Runtime assertions](../../features/assertions.md) - assertions guarding against undefined behavior
+- [`at`](at.md) - access by reference with range checking
+- [`value`](value.md) - access with default value
+- [`basic_json_view::operator[]`](../basic_json_view/operator%5B%5D.md) - the same access on a zero-copy view (a duplicate
key resolves to the first member, whereas `parse()` keeps the last; a missing key gives a discarded view instead of
undefined behavior)
+- [Element Access](../../features/element_access/index.md) - overview of all ways to access elements
+- [JSON Pointer](../../features/json_pointer.md) - access nested values with a pointer
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_ValueType.md b/docs/mkdocs/docs/api/basic_json/operator_ValueType.md
index dca5ebfd1..945ac22fc 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_ValueType.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_ValueType.md
@@ -84,7 +84,7 @@ Linear in the size of the JSON value.
## See also
-- [get](get.md) get a value (explicit conversion)
+- [`get`](get.md) - get a value (explicit conversion)
- [Converting values](../../features/conversions.md) - the type conversions article
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_eq.md b/docs/mkdocs/docs/api/basic_json/operator_eq.md
index 85af76ff6..007d8b0c9 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_eq.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_eq.md
@@ -168,9 +168,9 @@ Linear.
## See also
-- [operator!=](operator_ne.md) compare for inequality
-- [operator<=>](operator_spaceship.md) comparison: 3-way (C++20)
-- [basic_json_view::operator==](../basic_json_view/operator_eq.md) - the same comparison on a zero-copy view, without
+- [`operator!=`](operator_ne.md) - compare for inequality
+- [`operator<=>`](operator_spaceship.md) - comparison: 3-way (C++20)
+- [`basic_json_view::operator==`](../basic_json_view/operator_eq.md) - the same comparison on a zero-copy view, without
building a `basic_json` value for it
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_ge.md b/docs/mkdocs/docs/api/basic_json/operator_ge.md
index 99949f226..54383c1e8 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_ge.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_ge.md
@@ -93,7 +93,7 @@ Linear.
## See also
-- [**operator<=>**](operator_spaceship.md) comparison: 3-way
+- [`operator<=>`](operator_spaceship.md) - comparison: 3-way
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_gt.md b/docs/mkdocs/docs/api/basic_json/operator_gt.md
index 3fcb339da..dea5ef76c 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_gt.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_gt.md
@@ -83,7 +83,7 @@ Linear.
## See also
-- [**operator<=>**](operator_spaceship.md) comparison: 3-way
+- [`operator<=>`](operator_spaceship.md) - comparison: 3-way
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_le.md b/docs/mkdocs/docs/api/basic_json/operator_le.md
index db193d0db..8818b221a 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_le.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_le.md
@@ -94,7 +94,7 @@ Linear.
## See also
-- [**operator<=>**](operator_spaceship.md) comparison: 3-way
+- [`operator<=>`](operator_spaceship.md) - comparison: 3-way
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_lt.md b/docs/mkdocs/docs/api/basic_json/operator_lt.md
index baa04964c..e18d591ca 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_lt.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_lt.md
@@ -94,7 +94,7 @@ Linear.
## See also
-- [**operator<=>**](operator_spaceship.md) comparison: 3-way
+- [`operator<=>`](operator_spaceship.md) - comparison: 3-way
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_ne.md b/docs/mkdocs/docs/api/basic_json/operator_ne.md
index e759a6327..03d4b4fc0 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_ne.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_ne.md
@@ -93,9 +93,9 @@ Linear.
## See also
-- [operator==](operator_eq.md) comparison: equal
-- [operator<=>](operator_spaceship.md) comparison: 3-way (C++20)
-- [basic_json_view::operator!=](../basic_json_view/operator_ne.md) - the same comparison on a zero-copy view, without
+- [`operator==`](operator_eq.md) - comparison: equal
+- [`operator<=>`](operator_spaceship.md) - comparison: 3-way (C++20)
+- [`basic_json_view::operator!=`](../basic_json_view/operator_ne.md) - the same comparison on a zero-copy view, without
building a `basic_json` value for it
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_spaceship.md b/docs/mkdocs/docs/api/basic_json/operator_spaceship.md
index 731372f97..7aed091ef 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_spaceship.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_spaceship.md
@@ -88,12 +88,12 @@ Linear.
## See also
-- [**operator==**](operator_eq.md) - comparison: equal
-- [**operator!=**](operator_ne.md) - comparison: not equal
-- [**operator<**](operator_lt.md) - comparison: less than
-- [**operator<=**](operator_le.md) - comparison: less than or equal
-- [**operator>**](operator_gt.md) - comparison: greater than
-- [**operator>=**](operator_ge.md) - comparison: greater than or equal
+- [`operator==`](operator_eq.md) - comparison: equal
+- [`operator!=`](operator_ne.md) - comparison: not equal
+- [`operator<`](operator_lt.md) - comparison: less than
+- [`operator<=`](operator_le.md) - comparison: less than or equal
+- [`operator>`](operator_gt.md) - comparison: greater than
+- [`operator>=`](operator_ge.md) - comparison: greater than or equal
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/operator_value_t.md b/docs/mkdocs/docs/api/basic_json/operator_value_t.md
index 04915d935..607603c66 100644
--- a/docs/mkdocs/docs/api/basic_json/operator_value_t.md
+++ b/docs/mkdocs/docs/api/basic_json/operator_value_t.md
@@ -49,8 +49,9 @@ Constant.
## See also
-- [type](type.md) named member function equivalent to this implicit conversion operator
-- [value_t](value_t.md) the enumeration of JSON types
+- [`type`](type.md) - named member function equivalent to this implicit conversion operator
+- [`value_t`](value_t.md) - the enumeration of JSON types
+- [Types](../../features/types/index.md) - the JSON value types
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/other_error.md b/docs/mkdocs/docs/api/basic_json/other_error.md
index 08b2f6669..515344feb 100644
--- a/docs/mkdocs/docs/api/basic_json/other_error.md
+++ b/docs/mkdocs/docs/api/basic_json/other_error.md
@@ -69,12 +69,14 @@ base class, and the highlighted box is `basic_json::other_error`.
## See also
-- [`exception`](exception.md) for the base class of all exceptions thrown by the library
-- [List of other errors](../../home/exceptions.md#further-exceptions)
-- [`parse_error`](parse_error.md) for exceptions indicating a parse error
-- [`invalid_iterator`](invalid_iterator.md) for exceptions indicating errors with iterators
-- [`type_error`](type_error.md) for exceptions indicating executing a member function with a wrong type
-- [`out_of_range`](out_of_range.md) for exceptions indicating access out of the defined range
+- [`exception`](exception.md) - the base class of all exceptions thrown by the library
+- [List of other errors](../../home/exceptions.md#further-exceptions) - overview of further errors (`other_error`)
+- [`parse_error`](parse_error.md) - exceptions indicating a parse error
+- [`invalid_iterator`](invalid_iterator.md) - exceptions indicating errors with iterators
+- [`type_error`](type_error.md) - exceptions indicating executing a member function with a wrong type
+- [`out_of_range`](out_of_range.md) - exceptions indicating access out of the defined range
+- [Exceptions](../../home/exceptions.md) - all exceptions and their error codes
+- [`JSON_DIAGNOSTICS`](../macros/json_diagnostics.md) - extended exception messages with the path of the failing value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/out_of_range.md b/docs/mkdocs/docs/api/basic_json/out_of_range.md
index 113bcce2a..8e489f3cd 100644
--- a/docs/mkdocs/docs/api/basic_json/out_of_range.md
+++ b/docs/mkdocs/docs/api/basic_json/out_of_range.md
@@ -70,12 +70,15 @@ base class, and the highlighted box is `basic_json::out_of_range`.
## See also
-- [`exception`](exception.md) for the base class of all exceptions thrown by the library
-- [List of out-of-range errors](../../home/exceptions.md#out-of-range)
-- [`parse_error`](parse_error.md) for exceptions indicating a parse error
-- [`invalid_iterator`](invalid_iterator.md) for exceptions indicating errors with iterators
-- [`type_error`](type_error.md) for exceptions indicating executing a member function with a wrong type
-- [`other_error`](other_error.md) for exceptions indicating other library errors
+- [`exception`](exception.md) - the base class of all exceptions thrown by the library
+- [List of out-of-range errors](../../home/exceptions.md#out-of-range) - overview of out-of-range errors
+ (`out_of_range`)
+- [`parse_error`](parse_error.md) - exceptions indicating a parse error
+- [`invalid_iterator`](invalid_iterator.md) - exceptions indicating errors with iterators
+- [`type_error`](type_error.md) - exceptions indicating executing a member function with a wrong type
+- [`other_error`](other_error.md) - exceptions indicating other library errors
+- [Exceptions](../../home/exceptions.md) - all exceptions and their error codes
+- [`JSON_DIAGNOSTICS`](../macros/json_diagnostics.md) - extended exception messages with the path of the failing value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/parse.md b/docs/mkdocs/docs/api/basic_json/parse.md
index a069f2086..cf7a29d95 100644
--- a/docs/mkdocs/docs/api/basic_json/parse.md
+++ b/docs/mkdocs/docs/api/basic_json/parse.md
@@ -282,15 +282,21 @@ outside of a string, invalid) byte; see the [FAQ entry](../../home/faq.md#nul-by
## See also
-- [accept](accept.md) - check if the input is valid JSON
-- [sax_parse](sax_parse.md) - parse input using the SAX interface
-- [operator>>](../operator_gtgt.md) - deserialize from stream
+- [`accept`](accept.md) - check if the input is valid JSON
+- [`sax_parse`](sax_parse.md) - parse input using the SAX interface
+- [`operator>>`](../operator_gtgt.md) - deserialize from stream
- [`JSON_STRICT_NUL_HANDLING`](../macros/json_strict_nul_handling.md) - opt in to rejecting a NUL byte in the input
instead of treating it as end of input
- [`JSON_DISABLE_STREAM_BULK_SCAN`](../macros/json_disable_stream_bulk_scan.md) - read a `std::istream` one character
at a time
- [`JSON_DISABLE_UNLOCKED_FILE_IO`](../macros/json_disable_unlocked_file_io.md) - read a `FILE*` with the locking stdio
functions
+- [Parsing](../../features/parsing/index.md) - overview of the parsing functions
+- [Comments](../../features/comments.md) - ignore `//` and `/* */` comments while parsing
+- [Trailing Commas](../../features/trailing_commas.md) - accept trailing commas in arrays and objects
+- [Parser Callbacks](../../features/parsing/parser_callbacks.md) - filter or inspect values while parsing
+- [Parsing and Exceptions](../../features/parsing/parse_exceptions.md) - handling parse errors and locating them in the input
+- [Parsing Untrusted Input](../../features/parsing/untrusted_input.md) - limits and checks for input you do not control
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/parse_error.md b/docs/mkdocs/docs/api/basic_json/parse_error.md
index 234bf6fc4..e9b8b1980 100644
--- a/docs/mkdocs/docs/api/basic_json/parse_error.md
+++ b/docs/mkdocs/docs/api/basic_json/parse_error.md
@@ -78,12 +78,14 @@ or the end of file. This also holds true when reading a byte vector for binary f
## See also
-- [`exception`](exception.md) for the base class of all exceptions thrown by the library
-- [List of parse errors](../../home/exceptions.md#parse-errors)
-- [`invalid_iterator`](invalid_iterator.md) for exceptions indicating errors with iterators
-- [`type_error`](type_error.md) for exceptions indicating executing a member function with a wrong type
-- [`out_of_range`](out_of_range.md) for exceptions indicating access out of the defined range
-- [`other_error`](other_error.md) for exceptions indicating other library errors
+- [`exception`](exception.md) - the base class of all exceptions thrown by the library
+- [List of parse errors](../../home/exceptions.md#parse-errors) - overview of parse errors (`parse_error`)
+- [`invalid_iterator`](invalid_iterator.md) - exceptions indicating errors with iterators
+- [`type_error`](type_error.md) - exceptions indicating executing a member function with a wrong type
+- [`out_of_range`](out_of_range.md) - exceptions indicating access out of the defined range
+- [`other_error`](other_error.md) - exceptions indicating other library errors
+- [Parsing and Exceptions](../../features/parsing/parse_exceptions.md) - handling parse errors and locating them in the input
+- [Working Without Exceptions](../../features/no_exceptions.md) - error handling when exceptions are disabled
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/parse_event_t.md b/docs/mkdocs/docs/api/basic_json/parse_event_t.md
index a880cd571..44c372a89 100644
--- a/docs/mkdocs/docs/api/basic_json/parse_event_t.md
+++ b/docs/mkdocs/docs/api/basic_json/parse_event_t.md
@@ -46,8 +46,9 @@ the JSON text on the left; the legend on the right names the event per colour.
## See also
-- [parser_callback_t](parser_callback_t.md) callback function type for the parser
-- [parse](parse.md) deserialize from a compatible input
+- [`parser_callback_t`](parser_callback_t.md) - callback function type for the parser
+- [`parse`](parse.md) - deserialize from a compatible input
+- [Parser Callbacks](../../features/parsing/parser_callbacks.md) - filter or inspect values while parsing
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/parser_callback_t.md b/docs/mkdocs/docs/api/basic_json/parser_callback_t.md
index 8014f6f0c..a12634b9d 100644
--- a/docs/mkdocs/docs/api/basic_json/parser_callback_t.md
+++ b/docs/mkdocs/docs/api/basic_json/parser_callback_t.md
@@ -97,8 +97,9 @@ the latter case, it is skipped completely, or replaced by `null` if it is the to
## See also
-- [parse](parse.md) deserialize from a compatible input
-- [parse_event_t](parse_event_t.md) enumeration of parser events
+- [`parse`](parse.md) - deserialize from a compatible input
+- [`parse_event_t`](parse_event_t.md) - enumeration of parser events
+- [Parser Callbacks](../../features/parsing/parser_callbacks.md) - filter or inspect values while parsing
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/patch.md b/docs/mkdocs/docs/api/basic_json/patch.md
index ed26135a9..4bb63a59d 100644
--- a/docs/mkdocs/docs/api/basic_json/patch.md
+++ b/docs/mkdocs/docs/api/basic_json/patch.md
@@ -98,10 +98,12 @@ is thrown. In any case, the original value is not changed: the patch is applied
## See also
-- [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902)
-- [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901)
-- [patch_inplace](patch_inplace.md) applies a JSON Patch without creating a copy of the document
-- [merge_patch](merge_patch.md) applies a JSON Merge Patch
+- [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) - specification of JSON Patch
+- [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901) - specification of JSON Pointer
+- [`patch_inplace`](patch_inplace.md) - applies a JSON Patch without creating a copy of the document
+- [`merge_patch`](merge_patch.md) - applies a JSON Merge Patch
+- [JSON Patch and Diff](../../features/json_patch.md) - the article on JSON Patch
+- [JSON Pointer](../../features/json_pointer.md) - the addressing scheme used for patch paths
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/patch_inplace.md b/docs/mkdocs/docs/api/basic_json/patch_inplace.md
index 5b0d501bb..56b1bb329 100644
--- a/docs/mkdocs/docs/api/basic_json/patch_inplace.md
+++ b/docs/mkdocs/docs/api/basic_json/patch_inplace.md
@@ -96,10 +96,11 @@ function throws an exception.
## See also
-- [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902)
-- [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901)
-- [patch](patch.md) applies a JSON Patch
-- [merge_patch](merge_patch.md) applies a JSON Merge Patch
+- [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) - specification of JSON Patch
+- [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901) - specification of JSON Pointer
+- [`patch`](patch.md) - applies a JSON Patch
+- [`merge_patch`](merge_patch.md) - applies a JSON Merge Patch
+- [JSON Patch and Diff](../../features/json_patch.md) - the article on JSON Patch
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/push_back.md b/docs/mkdocs/docs/api/basic_json/push_back.md
index f6ed6a426..4bc885277 100644
--- a/docs/mkdocs/docs/api/basic_json/push_back.md
+++ b/docs/mkdocs/docs/api/basic_json/push_back.md
@@ -119,8 +119,8 @@ throws.
## See also
-- [emplace_back](emplace_back.md) add a value to an array
-- [operator+=](operator+=.md) add a value to an array/object
+- [`emplace_back`](emplace_back.md) - add a value to an array
+- [`operator+=`](operator+=.md) - add a value to an array/object
- [Modifying values](../../features/modifying_values.md) - the article on modifying values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/rbegin.md b/docs/mkdocs/docs/api/basic_json/rbegin.md
index ec95cfe68..ea3be945c 100644
--- a/docs/mkdocs/docs/api/basic_json/rbegin.md
+++ b/docs/mkdocs/docs/api/basic_json/rbegin.md
@@ -45,9 +45,9 @@ Constant.
## See also
-- [rend](rend.md) returns a reverse iterator to one before the first element
-- [crbegin](crbegin.md) returns a const reverse iterator to the last element
-- [begin](begin.md) returns an iterator to the first element
+- [`rend`](rend.md) - returns a reverse iterator to one before the first element
+- [`crbegin`](crbegin.md) - returns a const reverse iterator to the last element
+- [`begin`](begin.md) - returns an iterator to the first element
- [Iterators](../../features/iterators.md) - the article on iterators
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/rend.md b/docs/mkdocs/docs/api/basic_json/rend.md
index 357c7f4b7..90026fa6c 100644
--- a/docs/mkdocs/docs/api/basic_json/rend.md
+++ b/docs/mkdocs/docs/api/basic_json/rend.md
@@ -46,9 +46,9 @@ Constant.
## See also
-- [rbegin](rbegin.md) returns a reverse iterator to the last element
-- [crend](crend.md) returns a const reverse iterator to one before the first element
-- [end](end.md) returns an iterator to one past the last element
+- [`rbegin`](rbegin.md) - returns a reverse iterator to the last element
+- [`crend`](crend.md) - returns a const reverse iterator to one before the first element
+- [`end`](end.md) - returns an iterator to one past the last element
- [Iterators](../../features/iterators.md) - the article on iterators
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/sax_parse.md b/docs/mkdocs/docs/api/basic_json/sax_parse.md
index 0b0f1dee2..af2480e53 100644
--- a/docs/mkdocs/docs/api/basic_json/sax_parse.md
+++ b/docs/mkdocs/docs/api/basic_json/sax_parse.md
@@ -147,12 +147,14 @@ use the same file with stdio functions, but it must not wait for another thread
## See also
-- [parse](parse.md) - deserialize from a compatible input
-- [accept](accept.md) - check if the input is valid JSON
+- [`parse`](parse.md) - deserialize from a compatible input
+- [`accept`](accept.md) - check if the input is valid JSON
- [`JSON_DISABLE_STREAM_BULK_SCAN`](../macros/json_disable_stream_bulk_scan.md) - read a `std::istream` one character
at a time
- [`JSON_DISABLE_UNLOCKED_FILE_IO`](../macros/json_disable_unlocked_file_io.md) - read a `FILE*` with the locking stdio
functions
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
+- [Large, Streamed, and Partial Input](../../features/parsing/large_and_partial_input.md) - chunked, concatenated, and very large input
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/size.md b/docs/mkdocs/docs/api/basic_json/size.md
index 8fe553bd3..793b08653 100644
--- a/docs/mkdocs/docs/api/basic_json/size.md
+++ b/docs/mkdocs/docs/api/basic_json/size.md
@@ -53,9 +53,9 @@ JSON value which is `1` in the case of a string.
## See also
-- [empty](empty.md) checks whether the JSON value has no elements
-- [max_size](max_size.md) returns the maximum possible number of elements
-- [basic_json_view::size](../basic_json_view/size.md) - the same function on a zero-copy view
+- [`empty`](empty.md) - checks whether the JSON value has no elements
+- [`max_size`](max_size.md) - returns the maximum possible number of elements
+- [`basic_json_view::size`](../basic_json_view/size.md) - the same function on a zero-copy view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/start_pos.md b/docs/mkdocs/docs/api/basic_json/start_pos.md
index 19a31df15..fb43fb52b 100644
--- a/docs/mkdocs/docs/api/basic_json/start_pos.md
+++ b/docs/mkdocs/docs/api/basic_json/start_pos.md
@@ -60,8 +60,9 @@ Constant.
## See also
-- [end_pos](end_pos.md) to access the end position
-- [JSON_DIAGNOSTIC_POSITIONS](../macros/json_diagnostic_positions.md) for an overview of the diagnostic positions
+- [`end_pos`](end_pos.md) - to access the end position
+- [`JSON_DIAGNOSTIC_POSITIONS`](../macros/json_diagnostic_positions.md) - overview of the supported conversions
+- [Parsing and Exceptions](../../features/parsing/parse_exceptions.md) - handling parse errors and locating them in the input
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/std_formatter.md b/docs/mkdocs/docs/api/basic_json/std_formatter.md
index e7e889aee..5afe221f0 100644
--- a/docs/mkdocs/docs/api/basic_json/std_formatter.md
+++ b/docs/mkdocs/docs/api/basic_json/std_formatter.md
@@ -47,9 +47,9 @@ provides ``, controlled by the [`JSON_HAS_STD_FORMAT`](../macros/json_ha
## See also
-- [dump](dump.md) - serialization
-- [operator<<(std::ostream&)](../operator_ltlt.md) - serialize to stream
-- [format_as](format_as.md) - customization point used by `fmt::format` (fmtlib)
+- [`dump`](dump.md) - serialization
+- [`operator<<(std::ostream&)`](../operator_ltlt.md) - serialize to stream
+- [`format_as`](format_as.md) - customization point used by `fmt::format` (fmtlib)
- [Serialization](../../features/serialization.md) - the serialization article
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/std_hash.md b/docs/mkdocs/docs/api/basic_json/std_hash.md
index 7be7772cc..6f5453e22 100644
--- a/docs/mkdocs/docs/api/basic_json/std_hash.md
+++ b/docs/mkdocs/docs/api/basic_json/std_hash.md
@@ -37,7 +37,8 @@ large integers that convert to the same `number_float_t`.
## See also
-- [operator==](operator_eq.md) compares two JSON values for equality, consistent with equal hash values
+- [`operator==`](operator_eq.md) - compares two JSON values for equality, consistent with equal hash values
+- [Types](../../features/types/index.md) - the JSON value types and how they compare
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/std_swap.md b/docs/mkdocs/docs/api/basic_json/std_swap.md
index f93830ff4..995d08af6 100644
--- a/docs/mkdocs/docs/api/basic_json/std_swap.md
+++ b/docs/mkdocs/docs/api/basic_json/std_swap.md
@@ -51,7 +51,7 @@ void swap(nlohmann::basic_json& j1, nlohmann::basic_json& j2)
## See also
-- [swap](swap.md)
+- [`swap`](swap.md) - exchange the contents of two JSON values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/string_t.md b/docs/mkdocs/docs/api/basic_json/string_t.md
index b65e95508..8e1cc7314 100644
--- a/docs/mkdocs/docs/api/basic_json/string_t.md
+++ b/docs/mkdocs/docs/api/basic_json/string_t.md
@@ -82,9 +82,11 @@ and an example.
## See also
-- [object_t](object_t.md) the type used to store JSON objects (and their keys, which are also `string_t`)
-- [binary_t](binary_t.md) the type used to store binary values
-- [get_ptr](get_ptr.md) returns a pointer to the stored string value
+- [`object_t`](object_t.md) - the type used to store JSON objects (and their keys, which are also `string_t`)
+- [`binary_t`](binary_t.md) - the type used to store binary values
+- [`get_ptr`](get_ptr.md) - returns a pointer to the stored string value
+- [Types](../../features/types/index.md) - how strings are stored
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the `StringType` template parameter
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/swap.md b/docs/mkdocs/docs/api/basic_json/swap.md
index 4bc36b125..8da743d1f 100644
--- a/docs/mkdocs/docs/api/basic_json/swap.md
+++ b/docs/mkdocs/docs/api/basic_json/swap.md
@@ -176,9 +176,9 @@ Constant.
## See also
-- [std::swap](std_swap.md)
-- [operator=](operator=.md) copy assignment
-- [basic_json](basic_json.md) create a JSON value
+- [`std::swap`](std_swap.md) - specialization of `std::swap` for JSON values
+- [`operator=`](operator=.md) - copy assignment
+- [`basic_json`](basic_json.md) - create a JSON value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/to_bjdata.md b/docs/mkdocs/docs/api/basic_json/to_bjdata.md
index a85d8ff8a..26b7e512c 100644
--- a/docs/mkdocs/docs/api/basic_json/to_bjdata.md
+++ b/docs/mkdocs/docs/api/basic_json/to_bjdata.md
@@ -108,12 +108,15 @@ Linear in the size of the JSON value `j`.
## See also
-- [from_bjdata](from_bjdata.md) create a JSON value from an input in BJData format
-- [to_cbor](to_cbor.md) create a CBOR serialization of a JSON value
-- [to_msgpack](to_msgpack.md) create a MessagePack serialization of a JSON value
-- [to_bson](to_bson.md) create a BSON serialization of a JSON value
-- [to_ubjson](to_ubjson.md) create a UBJSON serialization of a JSON value
-- [to_bon8](to_bon8.md) create a BON8 serialization of a JSON value
+- [BJData](../../features/binary_formats/bjdata.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`from_bjdata`](from_bjdata.md) - create a JSON value from an input in BJData format
+- [`to_cbor`](to_cbor.md) - create a CBOR serialization of a JSON value
+- [`to_msgpack`](to_msgpack.md) - create a MessagePack serialization of a JSON value
+- [`to_bson`](to_bson.md) - create a BSON serialization of a JSON value
+- [`to_ubjson`](to_ubjson.md) - create a UBJSON serialization of a JSON value
+- [`to_bon8`](to_bon8.md) - create a BON8 serialization of a JSON value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/to_bon8.md b/docs/mkdocs/docs/api/basic_json/to_bon8.md
index debbb6ef0..731f24724 100644
--- a/docs/mkdocs/docs/api/basic_json/to_bon8.md
+++ b/docs/mkdocs/docs/api/basic_json/to_bon8.md
@@ -82,12 +82,14 @@ Linear in the size of the JSON value `j`.
## See also
-- [from_bon8](from_bon8.md) create a JSON value from an input in BON8 format
-- [to_cbor](to_cbor.md) create a CBOR serialization of a JSON value
-- [to_msgpack](to_msgpack.md) create a MessagePack serialization of a JSON value
-- [to_bson](to_bson.md) create a BSON serialization of a JSON value
-- [to_ubjson](to_ubjson.md) create a UBJSON serialization of a JSON value
-- [to_bjdata](to_bjdata.md) create a BJData serialization of a JSON value
+- [`BON8`](../../features/binary_formats/bon8.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [`from_bon8`](from_bon8.md) - create a JSON value from an input in BON8 format
+- [`to_cbor`](to_cbor.md) - create a CBOR serialization of a JSON value
+- [`to_msgpack`](to_msgpack.md) - create a MessagePack serialization of a JSON value
+- [`to_bson`](to_bson.md) - create a BSON serialization of a JSON value
+- [`to_ubjson`](to_ubjson.md) - create a UBJSON serialization of a JSON value
+- [`to_bjdata`](to_bjdata.md) - create a BJData serialization of a JSON value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/to_bson.md b/docs/mkdocs/docs/api/basic_json/to_bson.md
index 315477e19..91ee8e4ab 100644
--- a/docs/mkdocs/docs/api/basic_json/to_bson.md
+++ b/docs/mkdocs/docs/api/basic_json/to_bson.md
@@ -104,12 +104,15 @@ pass before anything is written.
## See also
-- [from_bson](from_bson.md) create a JSON value from an input in BSON format
-- [to_cbor](to_cbor.md) create a CBOR serialization of a JSON value
-- [to_msgpack](to_msgpack.md) create a MessagePack serialization of a JSON value
-- [to_ubjson](to_ubjson.md) create a UBJSON serialization of a JSON value
-- [to_bjdata](to_bjdata.md) create a BJData serialization of a JSON value
-- [to_bon8](to_bon8.md) create a BON8 serialization of a JSON value
+- [`BSON`](../../features/binary_formats/bson.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`from_bson`](from_bson.md) - create a JSON value from an input in BSON format
+- [`to_cbor`](to_cbor.md) - create a CBOR serialization of a JSON value
+- [`to_msgpack`](to_msgpack.md) - create a MessagePack serialization of a JSON value
+- [`to_ubjson`](to_ubjson.md) - create a UBJSON serialization of a JSON value
+- [`to_bjdata`](to_bjdata.md) - create a BJData serialization of a JSON value
+- [`to_bon8`](to_bon8.md) - create a BON8 serialization of a JSON value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/to_cbor.md b/docs/mkdocs/docs/api/basic_json/to_cbor.md
index 6508864e1..31e5db6af 100644
--- a/docs/mkdocs/docs/api/basic_json/to_cbor.md
+++ b/docs/mkdocs/docs/api/basic_json/to_cbor.md
@@ -77,12 +77,15 @@ Linear in the size of the JSON value `j`.
## See also
-- [from_cbor](from_cbor.md) create a JSON value from an input in CBOR format
-- [to_msgpack](to_msgpack.md) create a MessagePack serialization of a JSON value
-- [to_bson](to_bson.md) create a BSON serialization of a JSON value
-- [to_ubjson](to_ubjson.md) create a UBJSON serialization of a JSON value
-- [to_bjdata](to_bjdata.md) create a BJData serialization of a JSON value
-- [to_bon8](to_bon8.md) create a BON8 serialization of a JSON value
+- [`CBOR`](../../features/binary_formats/cbor.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`from_cbor`](from_cbor.md) - create a JSON value from an input in CBOR format
+- [`to_msgpack`](to_msgpack.md) - create a MessagePack serialization of a JSON value
+- [`to_bson`](to_bson.md) - create a BSON serialization of a JSON value
+- [`to_ubjson`](to_ubjson.md) - create a UBJSON serialization of a JSON value
+- [`to_bjdata`](to_bjdata.md) - create a BJData serialization of a JSON value
+- [`to_bon8`](to_bon8.md) - create a BON8 serialization of a JSON value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/to_msgpack.md b/docs/mkdocs/docs/api/basic_json/to_msgpack.md
index dca66271d..c7adc6a5f 100644
--- a/docs/mkdocs/docs/api/basic_json/to_msgpack.md
+++ b/docs/mkdocs/docs/api/basic_json/to_msgpack.md
@@ -97,12 +97,15 @@ Linear in the size of the JSON value `j`.
## See also
-- [from_msgpack](from_msgpack.md) create a JSON value from an input in MessagePack format
-- [to_cbor](to_cbor.md) create a CBOR serialization of a JSON value
-- [to_bson](to_bson.md) create a BSON serialization of a JSON value
-- [to_ubjson](to_ubjson.md) create a UBJSON serialization of a JSON value
-- [to_bjdata](to_bjdata.md) create a BJData serialization of a JSON value
-- [to_bon8](to_bon8.md) create a BON8 serialization of a JSON value
+- [MessagePack](../../features/binary_formats/messagepack.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`from_msgpack`](from_msgpack.md) - create a JSON value from an input in MessagePack format
+- [`to_cbor`](to_cbor.md) - create a CBOR serialization of a JSON value
+- [`to_bson`](to_bson.md) - create a BSON serialization of a JSON value
+- [`to_ubjson`](to_ubjson.md) - create a UBJSON serialization of a JSON value
+- [`to_bjdata`](to_bjdata.md) - create a BJData serialization of a JSON value
+- [`to_bon8`](to_bon8.md) - create a BON8 serialization of a JSON value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/to_string.md b/docs/mkdocs/docs/api/basic_json/to_string.md
index 8c75db84c..a4e7bf090 100644
--- a/docs/mkdocs/docs/api/basic_json/to_string.md
+++ b/docs/mkdocs/docs/api/basic_json/to_string.md
@@ -59,7 +59,7 @@ std::string to_string(const BasicJsonType& j)
## See also
-- [dump](dump.md)
+- [`dump`](dump.md) - serialize a JSON value to a string
- [Serialization](../../features/serialization.md) - the serialization article
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/to_ubjson.md b/docs/mkdocs/docs/api/basic_json/to_ubjson.md
index 6aad86683..d2267b2c8 100644
--- a/docs/mkdocs/docs/api/basic_json/to_ubjson.md
+++ b/docs/mkdocs/docs/api/basic_json/to_ubjson.md
@@ -101,12 +101,15 @@ Linear in the size of the JSON value `j`.
## See also
-- [from_ubjson](from_ubjson.md) create a JSON value from an input in UBJSON format
-- [to_cbor](to_cbor.md) create a CBOR serialization of a JSON value
-- [to_msgpack](to_msgpack.md) create a MessagePack serialization of a JSON value
-- [to_bson](to_bson.md) create a BSON serialization of a JSON value
-- [to_bjdata](to_bjdata.md) create a BJData serialization of a JSON value
-- [to_bon8](to_bon8.md) create a BON8 serialization of a JSON value
+- [`UBJSON`](../../features/binary_formats/ubjson.md) - the format, its byte layout and how values are mapped
+- [Binary formats](../../features/binary_formats/index.md) - overview and comparison of the supported binary formats
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`from_ubjson`](from_ubjson.md) - create a JSON value from an input in UBJSON format
+- [`to_cbor`](to_cbor.md) - create a CBOR serialization of a JSON value
+- [`to_msgpack`](to_msgpack.md) - create a MessagePack serialization of a JSON value
+- [`to_bson`](to_bson.md) - create a BSON serialization of a JSON value
+- [`to_bjdata`](to_bjdata.md) - create a BJData serialization of a JSON value
+- [`to_bon8`](to_bon8.md) - create a BON8 serialization of a JSON value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/type.md b/docs/mkdocs/docs/api/basic_json/type.md
index 6ed2aaeda..0ae61926c 100644
--- a/docs/mkdocs/docs/api/basic_json/type.md
+++ b/docs/mkdocs/docs/api/basic_json/type.md
@@ -49,10 +49,11 @@ Constant.
## See also
-- [operator value_t](operator_value_t.md) implicit conversion operator equivalent to this named member function
-- [type_name](type_name.md) returns the type as a string, for use in error messages
-- [value_t](value_t.md) the enumeration of JSON types
-- [basic_json_view::type](../basic_json_view/type.md) - the same function on a zero-copy view
+- [`operator value_t`](operator_value_t.md) - implicit conversion operator equivalent to this named member function
+- [`type_name`](type_name.md) - returns the type as a string, for use in error messages
+- [`value_t`](value_t.md) - the enumeration of JSON types
+- [`basic_json_view::type`](../basic_json_view/type.md) - the same function on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/type_error.md b/docs/mkdocs/docs/api/basic_json/type_error.md
index b19d5c65f..1dbb543f8 100644
--- a/docs/mkdocs/docs/api/basic_json/type_error.md
+++ b/docs/mkdocs/docs/api/basic_json/type_error.md
@@ -70,12 +70,14 @@ base class, and the highlighted box is `basic_json::type_error`.
## See also
-- [`exception`](exception.md) for the base class of all exceptions thrown by the library
-- [List of type errors](../../home/exceptions.md#type-errors)
-- [`parse_error`](parse_error.md) for exceptions indicating a parse error
-- [`invalid_iterator`](invalid_iterator.md) for exceptions indicating errors with iterators
-- [`out_of_range`](out_of_range.md) for exceptions indicating access out of the defined range
-- [`other_error`](other_error.md) for exceptions indicating other library errors
+- [`exception`](exception.md) - the base class of all exceptions thrown by the library
+- [List of type errors](../../home/exceptions.md#type-errors) - overview of type errors (`type_error`)
+- [`parse_error`](parse_error.md) - exceptions indicating a parse error
+- [`invalid_iterator`](invalid_iterator.md) - exceptions indicating errors with iterators
+- [`out_of_range`](out_of_range.md) - exceptions indicating access out of the defined range
+- [`other_error`](other_error.md) - exceptions indicating other library errors
+- [Exceptions](../../home/exceptions.md) - all exceptions and their error codes
+- [`JSON_DIAGNOSTICS`](../macros/json_diagnostics.md) - extended exception messages with the path of the failing value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/type_name.md b/docs/mkdocs/docs/api/basic_json/type_name.md
index d43ed4d71..40e541c7a 100644
--- a/docs/mkdocs/docs/api/basic_json/type_name.md
+++ b/docs/mkdocs/docs/api/basic_json/type_name.md
@@ -54,9 +54,10 @@ Constant.
## See also
-- [type](type.md) returns the type of the JSON value
-- [value_t](value_t.md) the enumeration of JSON types
-- [basic_json_view::type_name](../basic_json_view/type_name.md) - the same function on a zero-copy view
+- [`type`](type.md) - returns the type of the JSON value
+- [`value_t`](value_t.md) - the enumeration of JSON types
+- [`basic_json_view::type_name`](../basic_json_view/type_name.md) - the same function on a zero-copy view
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/unflatten.md b/docs/mkdocs/docs/api/basic_json/unflatten.md
index 661ffa3e8..cae2723b0 100644
--- a/docs/mkdocs/docs/api/basic_json/unflatten.md
+++ b/docs/mkdocs/docs/api/basic_json/unflatten.md
@@ -75,7 +75,8 @@ Apart from these two cases, for a JSON value `j`, the following is always true:
## See also
-- [flatten](flatten.md) the reverse function
+- [`flatten`](flatten.md) - the reverse function
+- [JSON Pointer](../../features/json_pointer.md#flatten-unflatten) - the article on JSON Pointer and flattening
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/update.md b/docs/mkdocs/docs/api/basic_json/update.md
index d641b38d5..698c68399 100644
--- a/docs/mkdocs/docs/api/basic_json/update.md
+++ b/docs/mkdocs/docs/api/basic_json/update.md
@@ -153,8 +153,8 @@ contained in `#!cpp *this` (for example, a subobject returned by `#!cpp (*this)[
## See also
-- [insert](insert.md) add values to an array/object
-- [merge_patch](merge_patch.md) applies a JSON Merge Patch
+- [`insert`](insert.md) - add values to an array/object
+- [`merge_patch`](merge_patch.md) - applies a JSON Merge Patch
- [Modifying values](../../features/modifying_values.md) - the article on modifying values
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/value.md b/docs/mkdocs/docs/api/basic_json/value.md
index aee09a537..164ea70ae 100644
--- a/docs/mkdocs/docs/api/basic_json/value.md
+++ b/docs/mkdocs/docs/api/basic_json/value.md
@@ -222,9 +222,11 @@ changes to any JSON value.
## See also
-- see [`at`](at.md) for access by reference with range checking
-- see [`operator[]`](operator%5B%5D.md) for unchecked access by reference
-- [basic_json_view::value](../basic_json_view/value.md) - the same access on a zero-copy view
+- [`at`](at.md) - access by reference with range checking
+- [`operator[]`](operator%5B%5D.md) - unchecked access by reference
+- [`basic_json_view::value`](../basic_json_view/value.md) - the same access on a zero-copy view
+- [Access with default value: value](../../features/element_access/default_value.md) - the article on `value`
+- [JSON Pointer](../../features/json_pointer.md) - access nested values with a pointer
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/value_t.md b/docs/mkdocs/docs/api/basic_json/value_t.md
index 0aa82d0d1..e38a27370 100644
--- a/docs/mkdocs/docs/api/basic_json/value_t.md
+++ b/docs/mkdocs/docs/api/basic_json/value_t.md
@@ -89,11 +89,12 @@ functions [`is_null`](is_null.md), [`is_object`](is_object.md), [`is_array`](is_
## See also
-- [type](type.md) return the type of the JSON value
-- [type_name](type_name.md) return the type as string
-- [operator value_t](operator_value_t.md) return the type of the JSON value
-- [is_primitive](is_primitive.md) return whether the type is primitive
-- [is_structured](is_structured.md) return whether the type is structured
+- [`type`](type.md) - return the type of the JSON value
+- [`type_name`](type_name.md) - return the type as string
+- [`operator value_t`](operator_value_t.md) - return the type of the JSON value
+- [`is_primitive`](is_primitive.md) - return whether the type is primitive
+- [`is_structured`](is_structured.md) - return whether the type is structured
+- [Types](../../features/types/index.md) - the JSON value types and how they are stored
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/with_t.md b/docs/mkdocs/docs/api/basic_json/with_t.md
index 2e8fee663..f98b071d3 100644
--- a/docs/mkdocs/docs/api/basic_json/with_t.md
+++ b/docs/mkdocs/docs/api/basic_json/with_t.md
@@ -128,8 +128,9 @@ matter. For instance, `nlohmann::json::with_object_t` is
## See also
-- [basic_json](index.md#template-parameters) - the template parameters that can be replaced
-- [json_base_class_t](json_base_class_t.md) - the type used for `CustomBaseClass`
+- [`basic_json`](index.md#template-parameters) - the template parameters that can be replaced
+- [`json_base_class_t`](json_base_class_t.md) - the type used for `CustomBaseClass`
+- [Template Parameter Requirements](../../features/types/template_parameters.md) - requirements on the template parameters
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json/~basic_json.md b/docs/mkdocs/docs/api/basic_json/~basic_json.md
index e5b957d51..e10a16b85 100644
--- a/docs/mkdocs/docs/api/basic_json/~basic_json.md
+++ b/docs/mkdocs/docs/api/basic_json/~basic_json.md
@@ -18,8 +18,8 @@ Linear.
## See also
-- [basic_json](basic_json.md) constructs a JSON value
-- [clear](clear.md) clears the content of a JSON value without destroying it
+- [`basic_json`](basic_json.md) - constructs a JSON value
+- [`clear`](clear.md) - clears the content of a JSON value without destroying it
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/accept.md b/docs/mkdocs/docs/api/basic_json_document/accept.md
index d2eb3862a..65436e5c3 100644
--- a/docs/mkdocs/docs/api/basic_json_document/accept.md
+++ b/docs/mkdocs/docs/api/basic_json_document/accept.md
@@ -69,8 +69,9 @@ compile; see [`parse`](parse.md#notes).
## See also
-- [parse](parse.md) - deserialize from a compatible input
+- [`parse`](parse.md) - deserialize from a compatible input
- [`BasicJsonType::accept`](../basic_json/accept.md) - the corresponding function of `basic_json`
+- [Zero-copy JSON views](../../features/json_view.md#what-is-the-same-as-parse) - how parsing a document differs from, and matches, basic_json::parse
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/basic_json_document.md b/docs/mkdocs/docs/api/basic_json_document/basic_json_document.md
index c4bf1c3b6..c0cd5d0ad 100644
--- a/docs/mkdocs/docs/api/basic_json_document/basic_json_document.md
+++ b/docs/mkdocs/docs/api/basic_json_document/basic_json_document.md
@@ -50,8 +50,9 @@ Constant.
## See also
-- [parse](parse.md) - deserialize from a compatible input
-- [is_discarded](is_discarded.md) - return whether the last parse failed
+- [`parse`](parse.md) - deserialize from a compatible input
+- [`is_discarded`](is_discarded.md) - return whether the last parse failed
+- [Zero-copy JSON views](../../features/json_view.md#ownership-and-lifetime) - who owns the source text and for how long
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/erase.md b/docs/mkdocs/docs/api/basic_json_document/erase.md
index 4cbc50d19..43458b9c5 100644
--- a/docs/mkdocs/docs/api/basic_json_document/erase.md
+++ b/docs/mkdocs/docs/api/basic_json_document/erase.md
@@ -117,12 +117,13 @@ by an erase, not only those at or after the removed element, since the container
## See also
-- [insert](insert.md) - insert an element into an array
-- [set](set.md) - replace a value, or set an object member, an array element, or the value a JSON pointer refers to
-- [push_back](push_back.md) - append to an array
-- [root](root.md) - the view of the root value, the starting point of overload 3
+- [`insert`](insert.md) - insert an element into an array
+- [`set`](set.md) - replace a value, or set an object member, an array element, or the value a JSON pointer refers to
+- [`push_back`](push_back.md) - append to an array
+- [`root`](root.md) - the view of the root value, the starting point of overload 3
- [`BasicJsonType::erase`](../basic_json/erase.md) - the corresponding function of `basic_json`
- [Edits](index.md#edits) - what an edit guarantees, for every overload
+- [Zero-copy JSON views](../../features/json_view.md#editing-a-document) - what an edit guarantees and costs
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/index.md b/docs/mkdocs/docs/api/basic_json_document/index.md
index ea5f449db..daa7d64b8 100644
--- a/docs/mkdocs/docs/api/basic_json_document/index.md
+++ b/docs/mkdocs/docs/api/basic_json_document/index.md
@@ -118,9 +118,9 @@ points apply to every edit:
## See also
- [Zero-copy JSON views](../../features/json_view.md) - guide to documents and views
-- [**basic_json_view**](../basic_json_view/index.md) - the non-owning handle to a value in a document
-- [**json_document**](../json_document.md) and [**json_editable_document**](../json_editable_document.md) - the default specializations
-- [**materialize**](../basic_json_view/materialize.md) - build a `basic_json` value from a view
+- [`basic_json_view`](../basic_json_view/index.md) - the non-owning handle to a value in a document
+- [`json_document`](../json_document.md) - and [`json_editable_document`](../json_editable_document.md) - the default specializations
+- [`materialize`](../basic_json_view/materialize.md) - build a `basic_json` value from a view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/insert.md b/docs/mkdocs/docs/api/basic_json_document/insert.md
index b513dfc0d..a406487d9 100644
--- a/docs/mkdocs/docs/api/basic_json_document/insert.md
+++ b/docs/mkdocs/docs/api/basic_json_document/insert.md
@@ -103,11 +103,12 @@ an edit in general.
## See also
-- [push_back](push_back.md) - append to an array
-- [erase](erase.md) - remove an object member, an array element, or the value a JSON pointer refers to
-- [set](set.md) - replace a value, or set an object member, an array element, or the value a JSON pointer refers to
+- [`push_back`](push_back.md) - append to an array
+- [`erase`](erase.md) - remove an object member, an array element, or the value a JSON pointer refers to
+- [`set`](set.md) - replace a value, or set an object member, an array element, or the value a JSON pointer refers to
- [`BasicJsonType::insert`](../basic_json/insert.md) - the corresponding function of `basic_json`
- [Edits](index.md#edits) - what an edit guarantees, for every overload
+- [Zero-copy JSON views](../../features/json_view.md#editing-a-document) - what an edit guarantees and costs
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/is_discarded.md b/docs/mkdocs/docs/api/basic_json_document/is_discarded.md
index 3c062dddd..4e86a9748 100644
--- a/docs/mkdocs/docs/api/basic_json_document/is_discarded.md
+++ b/docs/mkdocs/docs/api/basic_json_document/is_discarded.md
@@ -41,8 +41,9 @@ When the document is discarded, [`root()`](root.md) returns a discarded view (it
## See also
-- [parse](parse.md) - deserialize from a compatible input
-- [is_discarded (basic_json_view)](../basic_json_view/is_discarded.md) - return whether a view is invalid
+- [`parse`](parse.md) - deserialize from a compatible input
+- [`basic_json_view::is_discarded`](../basic_json_view/is_discarded.md) - return whether a view is invalid
+- [Zero-copy JSON views](../../features/json_view.md#what-is-the-same-as-parse) - how a discarded document arises
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/load.md b/docs/mkdocs/docs/api/basic_json_document/load.md
index 36223f63c..46a657caf 100644
--- a/docs/mkdocs/docs/api/basic_json_document/load.md
+++ b/docs/mkdocs/docs/api/basic_json_document/load.md
@@ -169,9 +169,9 @@ returned document, and any [view](../basic_json_view/index.md) taken from it, is
## See also
-- [save](save.md) - write the document as an image
-- [owns_source](owns_source.md) - return whether the document holds its own copy of the text
-- [parse](parse.md) - deserialize from JSON text instead of an image
+- [`save`](save.md) - write the document as an image
+- [`owns_source`](owns_source.md) - return whether the document holds its own copy of the text
+- [`parse`](parse.md) - deserialize from JSON text instead of an image
- [Images](../../features/json_view.md#images) - why and when to use images
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/memory_usage.md b/docs/mkdocs/docs/api/basic_json_document/memory_usage.md
index 5ad25911b..22828dd94 100644
--- a/docs/mkdocs/docs/api/basic_json_document/memory_usage.md
+++ b/docs/mkdocs/docs/api/basic_json_document/memory_usage.md
@@ -42,8 +42,9 @@ to observe the effect of [`shrink_to_fit()`](shrink_to_fit.md).
## See also
-- [node_count](node_count.md) - the number of index entries
-- [shrink_to_fit](shrink_to_fit.md) - release unused index capacity
+- [`node_count`](node_count.md) - the number of index entries
+- [`shrink_to_fit`](shrink_to_fit.md) - release unused index capacity
+- [Zero-copy JSON views](../../features/json_view.md#the-idea) - the flat node index and its memory
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/node_count.md b/docs/mkdocs/docs/api/basic_json_document/node_count.md
index 61923f8cd..5bb63a40d 100644
--- a/docs/mkdocs/docs/api/basic_json_document/node_count.md
+++ b/docs/mkdocs/docs/api/basic_json_document/node_count.md
@@ -41,8 +41,9 @@ strings and, for an owned document, the text).
## See also
-- [memory_usage](memory_usage.md) - the number of bytes held by the document
-- [shrink_to_fit](shrink_to_fit.md) - release unused index capacity
+- [`memory_usage`](memory_usage.md) - the number of bytes held by the document
+- [`shrink_to_fit`](shrink_to_fit.md) - release unused index capacity
+- [Zero-copy JSON views](../../features/json_view.md#the-idea) - the flat node index and its memory
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/owns_source.md b/docs/mkdocs/docs/api/basic_json_document/owns_source.md
index ede04e369..f4068cab5 100644
--- a/docs/mkdocs/docs/api/basic_json_document/owns_source.md
+++ b/docs/mkdocs/docs/api/basic_json_document/owns_source.md
@@ -40,9 +40,10 @@ document (`#!cpp owns_source() == false`) is only valid while the buffer it was
## See also
-- [parse](parse.md) - deserialize from a compatible input
-- [parse_copy](parse_copy.md) - deserialize a copy of a compatible input, always owned
-- [source](source.md) - the parsed text
+- [`parse`](parse.md) - deserialize from a compatible input
+- [`parse_copy`](parse_copy.md) - deserialize a copy of a compatible input, always owned
+- [`source`](source.md) - the parsed text
+- [Zero-copy JSON views](../../features/json_view.md#ownership-and-lifetime) - who owns the source text and for how long
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/parse.md b/docs/mkdocs/docs/api/basic_json_document/parse.md
index 3f39f3485..da58a98bb 100644
--- a/docs/mkdocs/docs/api/basic_json_document/parse.md
+++ b/docs/mkdocs/docs/api/basic_json_document/parse.md
@@ -151,11 +151,11 @@ buffer of a given length, pass a pair of pointers: `#!cpp parse(ptr, ptr + len)`
## See also
-- [parse_copy](parse_copy.md) - deserialize a copy of a compatible input
-- [accept](accept.md) - check whether the input is valid JSON
-- [read](read.md) - (re-)parse into this document, reusing its memory
-- [owns_source](owns_source.md) - return whether the document holds its own copy of the text
-- [load](load.md) - read a document from an image instead of parsing JSON text
+- [`parse_copy`](parse_copy.md) - deserialize a copy of a compatible input
+- [`accept`](accept.md) - check whether the input is valid JSON
+- [`read`](read.md) - (re-)parse into this document, reusing its memory
+- [`owns_source`](owns_source.md) - return whether the document holds its own copy of the text
+- [`load`](load.md) - read a document from an image instead of parsing JSON text
- [`BasicJsonType::parse`](../basic_json/parse.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/parse_copy.md b/docs/mkdocs/docs/api/basic_json_document/parse_copy.md
index 7cb51ad02..f9110207b 100644
--- a/docs/mkdocs/docs/api/basic_json_document/parse_copy.md
+++ b/docs/mkdocs/docs/api/basic_json_document/parse_copy.md
@@ -72,8 +72,9 @@ compile; see [`parse`](parse.md#notes).
## See also
-- [parse](parse.md) - deserialize from a compatible input, borrowing it where possible
-- [owns_source](owns_source.md) - return whether the document holds its own copy of the text
+- [`parse`](parse.md) - deserialize from a compatible input, borrowing it where possible
+- [`owns_source`](owns_source.md) - return whether the document holds its own copy of the text
+- [Zero-copy JSON views](../../features/json_view.md#ownership-and-lifetime) - borrowing or copying the source text
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/push_back.md b/docs/mkdocs/docs/api/basic_json_document/push_back.md
index 37ce10bc5..bc23bfd4c 100644
--- a/docs/mkdocs/docs/api/basic_json_document/push_back.md
+++ b/docs/mkdocs/docs/api/basic_json_document/push_back.md
@@ -90,12 +90,13 @@ Like [`set`](set.md) on a member or an element, `push_back` never moves an exist
## See also
-- [set](set.md) - replace a value, or set an object member, an array element, or the value a JSON pointer refers to
-- [insert](insert.md) - insert an element into an array before a given position
-- [erase](erase.md) - remove an object member, an array element, or the value a JSON pointer refers to
-- [root](root.md) - the view of the root value
+- [`set`](set.md) - replace a value, or set an object member, an array element, or the value a JSON pointer refers to
+- [`insert`](insert.md) - insert an element into an array before a given position
+- [`erase`](erase.md) - remove an object member, an array element, or the value a JSON pointer refers to
+- [`root`](root.md) - the view of the root value
- [`BasicJsonType::push_back`](../basic_json/push_back.md) - the corresponding function of `basic_json`
- [Edits](index.md#edits) - what an edit guarantees, for every overload
+- [Zero-copy JSON views](../../features/json_view.md#editing-a-document) - what an edit guarantees and costs
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/read.md b/docs/mkdocs/docs/api/basic_json_document/read.md
index 174fcc477..4086f24dd 100644
--- a/docs/mkdocs/docs/api/basic_json_document/read.md
+++ b/docs/mkdocs/docs/api/basic_json_document/read.md
@@ -78,9 +78,10 @@ compile; see [`parse`](parse.md#notes).
## See also
-- [parse](parse.md) - deserialize from a compatible input
-- [root](root.md) - the view of the root value
-- [load](load.md) - read a document from an image instead of parsing JSON text
+- [`parse`](parse.md) - deserialize from a compatible input
+- [`root`](root.md) - the view of the root value
+- [`load`](load.md) - read a document from an image instead of parsing JSON text
+- [Zero-copy JSON views](../../features/json_view.md#ownership-and-lifetime) - reusing a document and what it invalidates
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/root.md b/docs/mkdocs/docs/api/basic_json_document/root.md
index a8f0c0ded..b6a86797b 100644
--- a/docs/mkdocs/docs/api/basic_json_document/root.md
+++ b/docs/mkdocs/docs/api/basic_json_document/root.md
@@ -58,8 +58,8 @@ returned view is valid under the same conditions as any other view of the docume
## See also
-- [is_discarded](is_discarded.md) - return whether the last parse failed
-- [materialize](../basic_json_view/materialize.md) - build the `BasicJsonType` value of a subtree
+- [`is_discarded`](is_discarded.md) - return whether the last parse failed
+- [`materialize`](../basic_json_view/materialize.md) - build the `BasicJsonType` value of a subtree
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/save.md b/docs/mkdocs/docs/api/basic_json_document/save.md
index f69d5c9f8..5b455be31 100644
--- a/docs/mkdocs/docs/api/basic_json_document/save.md
+++ b/docs/mkdocs/docs/api/basic_json_document/save.md
@@ -94,8 +94,8 @@ reader could not interpret correctly.
## See also
-- [load](load.md) - read an image written by `save()`
-- [owns_source](owns_source.md) - return whether the document holds its own copy of the text
+- [`load`](load.md) - read an image written by `save()`
+- [`owns_source`](owns_source.md) - return whether the document holds its own copy of the text
- [`basic_json_view::dump`](../basic_json_view/dump.md) - serialize the document to JSON text instead of an image
- [Images](../../features/json_view.md#images) - why and when to use images
diff --git a/docs/mkdocs/docs/api/basic_json_document/set.md b/docs/mkdocs/docs/api/basic_json_document/set.md
index ae26ed516..f227bf42c 100644
--- a/docs/mkdocs/docs/api/basic_json_document/set.md
+++ b/docs/mkdocs/docs/api/basic_json_document/set.md
@@ -188,10 +188,10 @@ one-node scalar.
## See also
-- [push_back](push_back.md) - append to an array
-- [insert](insert.md) - insert an element into an array
-- [erase](erase.md) - remove an object member, an array element, or the value a JSON pointer refers to
-- [root](root.md) - the view of the root value, the starting point of overload 4
+- [`push_back`](push_back.md) - append to an array
+- [`insert`](insert.md) - insert an element into an array
+- [`erase`](erase.md) - remove an object member, an array element, or the value a JSON pointer refers to
+- [`root`](root.md) - the view of the root value, the starting point of overload 4
- [`basic_json_view::dump`](../basic_json_view/dump.md) - serialize the document, keeping an untouched number's
spelling with `#!cpp number_format::source`
- [Edits](index.md#edits) - what an edit guarantees, for every overload
diff --git a/docs/mkdocs/docs/api/basic_json_document/shrink_to_fit.md b/docs/mkdocs/docs/api/basic_json_document/shrink_to_fit.md
index f8f8a4312..47ab7801d 100644
--- a/docs/mkdocs/docs/api/basic_json_document/shrink_to_fit.md
+++ b/docs/mkdocs/docs/api/basic_json_document/shrink_to_fit.md
@@ -49,9 +49,10 @@ possible would be an internal optimization only, not a guarantee to rely on.
## See also
-- [node_count](node_count.md) - the number of index entries
-- [memory_usage](memory_usage.md) - the number of bytes held by the document
-- [root](root.md) - the view of the root value
+- [`node_count`](node_count.md) - the number of index entries
+- [`memory_usage`](memory_usage.md) - the number of bytes held by the document
+- [`root`](root.md) - the view of the root value
+- [Zero-copy JSON views](../../features/json_view.md#ownership-and-lifetime) - what releasing memory invalidates
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_document/source.md b/docs/mkdocs/docs/api/basic_json_document/source.md
index dcefb88a9..688bb6bf3 100644
--- a/docs/mkdocs/docs/api/basic_json_document/source.md
+++ b/docs/mkdocs/docs/api/basic_json_document/source.md
@@ -40,8 +40,9 @@ is; see [`owns_source`](owns_source.md).
## See also
-- [owns_source](owns_source.md) - return whether the document holds its own copy of the text
-- [source_offset](../basic_json_view/source_offset.md) - byte offset of a value in the source text
+- [`owns_source`](owns_source.md) - return whether the document holds its own copy of the text
+- [`source_offset`](../basic_json_view/source_offset.md) - byte offset of a value in the source text
+- [Zero-copy JSON views](../../features/json_view.md#ownership-and-lifetime) - who owns the source text and for how long
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/at.md b/docs/mkdocs/docs/api/basic_json_view/at.md
index afbf81620..45b198b95 100644
--- a/docs/mkdocs/docs/api/basic_json_view/at.md
+++ b/docs/mkdocs/docs/api/basic_json_view/at.md
@@ -135,8 +135,8 @@ for a missing key or an out-of-range index, `at` throws for those too (`out_of_r
## See also
-- [operator[]](operator[].md) - access specified element (returns a discarded view instead of throwing)
-- [front](front.md), [back](back.md) - access the first or last element
+- [`operator[]`](operator[].md) - access specified element (returns a discarded view instead of throwing)
+- [`front`](front.md), [`back`](back.md) - access the first or last element
- [`BasicJsonType::at`](../basic_json/at.md) - the corresponding function of `basic_json`
- [`json_pointer`](../json_pointer/index.md) - JSON pointer type used by overload 3
diff --git a/docs/mkdocs/docs/api/basic_json_view/back.md b/docs/mkdocs/docs/api/basic_json_view/back.md
index acb6ebd65..473502f0a 100644
--- a/docs/mkdocs/docs/api/basic_json_view/back.md
+++ b/docs/mkdocs/docs/api/basic_json_view/back.md
@@ -56,7 +56,7 @@ Unlike [`BasicJsonType::back()`](../basic_json/back.md), which has undefined beh
## See also
-- [front](front.md) - access the first element
+- [`front`](front.md) - access the first element
- [`BasicJsonType::back`](../basic_json/back.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/basic_json_view.md b/docs/mkdocs/docs/api/basic_json_view/basic_json_view.md
index df1e939fa..59acf3b03 100644
--- a/docs/mkdocs/docs/api/basic_json_view/basic_json_view.md
+++ b/docs/mkdocs/docs/api/basic_json_view/basic_json_view.md
@@ -43,8 +43,9 @@ placeholder for "no value yet" and later be assigned a real view.
## See also
-- [is_discarded](is_discarded.md) - return whether the view is invalid
-- [root](../basic_json_document/root.md) - the view of a document's root value
+- [`is_discarded`](is_discarded.md) - return whether the view is invalid
+- [`root`](../basic_json_document/root.md) - the view of a document's root value
+- [Zero-copy JSON views](../../features/json_view.md#ownership-and-lifetime) - how long a view stays valid
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/begin.md b/docs/mkdocs/docs/api/basic_json_view/begin.md
index a294fd46d..ac1b0fda8 100644
--- a/docs/mkdocs/docs/api/basic_json_view/begin.md
+++ b/docs/mkdocs/docs/api/basic_json_view/begin.md
@@ -55,9 +55,9 @@ the duplicates.
## See also
-- [end](end.md) - returns an iterator to one past the last element
-- [cbegin](cbegin.md) - returns a const iterator to the first element
-- [items](items.md) - access iterator member functions in range-based for
+- [`end`](end.md) - returns an iterator to one past the last element
+- [`cbegin`](cbegin.md) - returns a const iterator to the first element
+- [`items`](items.md) - access iterator member functions in range-based for
- [`BasicJsonType::begin`](../basic_json/begin.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/cbegin.md b/docs/mkdocs/docs/api/basic_json_view/cbegin.md
index 25d17bdad..19d431dbd 100644
--- a/docs/mkdocs/docs/api/basic_json_view/cbegin.md
+++ b/docs/mkdocs/docs/api/basic_json_view/cbegin.md
@@ -40,8 +40,8 @@ Constant.
## See also
-- [begin](begin.md) - returns an iterator to the first element
-- [cend](cend.md) - returns a const iterator to one past the last element
+- [`begin`](begin.md) - returns an iterator to the first element
+- [`cend`](cend.md) - returns a const iterator to one past the last element
- [`BasicJsonType::cbegin`](../basic_json/cbegin.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/cend.md b/docs/mkdocs/docs/api/basic_json_view/cend.md
index 6d19530ce..8f41ce201 100644
--- a/docs/mkdocs/docs/api/basic_json_view/cend.md
+++ b/docs/mkdocs/docs/api/basic_json_view/cend.md
@@ -40,8 +40,8 @@ Constant.
## See also
-- [end](end.md) - returns an iterator to one past the last element
-- [cbegin](cbegin.md) - returns a const iterator to the first element
+- [`end`](end.md) - returns an iterator to one past the last element
+- [`cbegin`](cbegin.md) - returns a const iterator to the first element
- [`BasicJsonType::cend`](../basic_json/cend.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/contains.md b/docs/mkdocs/docs/api/basic_json_view/contains.md
index 5f15adf11..f7c87c808 100644
--- a/docs/mkdocs/docs/api/basic_json_view/contains.md
+++ b/docs/mkdocs/docs/api/basic_json_view/contains.md
@@ -101,9 +101,9 @@ view.
## See also
-- [find](find.md) - find a value in an object
-- [count](count.md) - returns the number of occurrences of a key
-- [at](at.md), [operator[]](operator[].md) - resolve a JSON pointer and throw, or return a discarded view
+- [`find`](find.md) - find a value in an object
+- [`count`](count.md) - returns the number of occurrences of a key
+- [`at`](at.md), [`operator[]`](operator[].md) - resolve a JSON pointer and throw, or return a discarded view
- [`BasicJsonType::contains`](../basic_json/contains.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/count.md b/docs/mkdocs/docs/api/basic_json_view/count.md
index 7d6769e0d..eba34b912 100644
--- a/docs/mkdocs/docs/api/basic_json_view/count.md
+++ b/docs/mkdocs/docs/api/basic_json_view/count.md
@@ -62,8 +62,8 @@ If the source text repeats a key, `count()` returns more than `#!cpp 1` for it,
## See also
-- [find](find.md) - find a value in an object
-- [contains](contains.md) - checks whether a key exists
+- [`find`](find.md) - find a value in an object
+- [`contains`](contains.md) - checks whether a key exists
- [`BasicJsonType::count`](../basic_json/count.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/dump.md b/docs/mkdocs/docs/api/basic_json_view/dump.md
index aa9a023bb..7d829d422 100644
--- a/docs/mkdocs/docs/api/basic_json_view/dump.md
+++ b/docs/mkdocs/docs/api/basic_json_view/dump.md
@@ -95,9 +95,10 @@ parsing already reduces every number to its parsed value.
## See also
- [`number_format`](number_format.md) - how `dump()` writes numbers
-- [operator<<](operator_ltlt.md) - serialize this value to a stream
-- [materialize](materialize.md) - build a `BasicJsonType` value, e.g. to use `BasicJsonType::dump`'s `error_handler`
+- [`operator<<`](operator_ltlt.md) - serialize this value to a stream
+- [`materialize`](materialize.md) - build a `BasicJsonType` value, e.g. to use `BasicJsonType::dump`'s `error_handler`
- [`BasicJsonType::dump`](../basic_json/dump.md) - the corresponding function of `basic_json`
+- [Zero-copy JSON views](../../features/json_view.md#writing-a-view-back) - writing a view back without building a tree
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/empty.md b/docs/mkdocs/docs/api/basic_json_view/empty.md
index 0d57fe9e7..5c9cf73e5 100644
--- a/docs/mkdocs/docs/api/basic_json_view/empty.md
+++ b/docs/mkdocs/docs/api/basic_json_view/empty.md
@@ -53,7 +53,7 @@ is `#!cpp false` for any string, regardless of its length.
## See also
-- [size](size.md) - return the number of elements
+- [`size`](size.md) - return the number of elements
- [`BasicJsonType::empty`](../basic_json/empty.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/end.md b/docs/mkdocs/docs/api/basic_json_view/end.md
index ceac53b69..f449608ec 100644
--- a/docs/mkdocs/docs/api/basic_json_view/end.md
+++ b/docs/mkdocs/docs/api/basic_json_view/end.md
@@ -44,8 +44,8 @@ way to reach the last element by stepping back from `end()`. Use [`back()`](back
## See also
-- [begin](begin.md) - returns an iterator to the first element
-- [cend](cend.md) - returns a const iterator to one past the last element
+- [`begin`](begin.md) - returns an iterator to the first element
+- [`cend`](cend.md) - returns a const iterator to one past the last element
- [`BasicJsonType::end`](../basic_json/end.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/find.md b/docs/mkdocs/docs/api/basic_json_view/find.md
index 8345dee59..d61cfd661 100644
--- a/docs/mkdocs/docs/api/basic_json_view/find.md
+++ b/docs/mkdocs/docs/api/basic_json_view/find.md
@@ -63,8 +63,8 @@ also does so for a [discarded](is_discarded.md) view -- there is no separate "in
## See also
-- [count](count.md) - returns the number of occurrences of a key
-- [contains](contains.md) - checks whether a key exists
+- [`count`](count.md) - returns the number of occurrences of a key
+- [`contains`](contains.md) - checks whether a key exists
- [`BasicJsonType::find`](../basic_json/find.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/front.md b/docs/mkdocs/docs/api/basic_json_view/front.md
index e47f5d01e..4cefcbd33 100644
--- a/docs/mkdocs/docs/api/basic_json_view/front.md
+++ b/docs/mkdocs/docs/api/basic_json_view/front.md
@@ -53,7 +53,7 @@ view.
## See also
-- [back](back.md) - access the last element
+- [`back`](back.md) - access the last element
- [`BasicJsonType::front`](../basic_json/front.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/get.md b/docs/mkdocs/docs/api/basic_json_view/get.md
index 7fe30ca7f..765980882 100644
--- a/docs/mkdocs/docs/api/basic_json_view/get.md
+++ b/docs/mkdocs/docs/api/basic_json_view/get.md
@@ -122,11 +122,12 @@ document.
## See also
-- [get_to](get_to.md) - convert and write into a passed value
-- [get_string](get_string.md) - the string, without a copy
-- [number_token](number_token.md) - a number's token text, without a copy
-- [materialize](materialize.md) - build the `BasicJsonType` value of this subtree
+- [`get_to`](get_to.md) - convert and write into a passed value
+- [`get_string`](get_string.md) - the string, without a copy
+- [`number_token`](number_token.md) - a number's token text, without a copy
+- [`materialize`](materialize.md) - build the `BasicJsonType` value of this subtree
- [`BasicJsonType::get`](../basic_json/get.md) - the corresponding function of `basic_json`
+- [Zero-copy JSON views](../../features/json_view.md#getting-values-out-without-copying) - which conversions avoid building a basic_json value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/get_string.md b/docs/mkdocs/docs/api/basic_json_view/get_string.md
index 7c9aec2a4..c68ac6442 100644
--- a/docs/mkdocs/docs/api/basic_json_view/get_string.md
+++ b/docs/mkdocs/docs/api/basic_json_view/get_string.md
@@ -67,9 +67,10 @@ since floating-point values and unescaped strings are read from the source lazil
## See also
-- [get](get.md) - convert the value to a given type (`#!cpp get()` is equivalent to this function)
-- [number_token](number_token.md) - a number's token text, without a copy
+- [`get`](get.md) - convert the value to a given type (`#!cpp get()` is equivalent to this function)
+- [`number_token`](number_token.md) - a number's token text, without a copy
- [`BasicJsonType::get_ref`](../basic_json/get_ref.md) - the closest counterpart of `basic_json`
+- [Zero-copy JSON views](../../features/json_view.md#getting-values-out-without-copying) - borrowing strings instead of copying them
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/get_to.md b/docs/mkdocs/docs/api/basic_json_view/get_to.md
index 4f1c6a5d9..1e1ad9d71 100644
--- a/docs/mkdocs/docs/api/basic_json_view/get_to.md
+++ b/docs/mkdocs/docs/api/basic_json_view/get_to.md
@@ -72,8 +72,9 @@ them with those of a default-constructed `T`.
## See also
-- [get](get.md) - convert the value to a given type
+- [`get`](get.md) - convert the value to a given type
- [`BasicJsonType::get_to`](../basic_json/get_to.md) - the corresponding function of `basic_json`
+- [Zero-copy JSON views](../../features/json_view.md#getting-values-out-without-copying) - which conversions avoid building a basic_json value
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/index.md b/docs/mkdocs/docs/api/basic_json_view/index.md
index 5f0d90694..84c09afb4 100644
--- a/docs/mkdocs/docs/api/basic_json_view/index.md
+++ b/docs/mkdocs/docs/api/basic_json_view/index.md
@@ -146,9 +146,9 @@ still refers to it -- including ones taken before the change -- reads the new va
## See also
- [Zero-copy JSON views](../../features/json_view.md) - guide to documents and views
-- [**basic_json_document**](../basic_json_document/index.md) - the document that owns the parsed data
-- [**json_view**](../json_view.md) and [**json_editable_view**](../json_editable_view.md) - the default specializations
-- [**materialize**](materialize.md) - build a `basic_json` value from a view
+- [`basic_json_document`](../basic_json_document/index.md) - the document that owns the parsed data
+- [`json_view`](../json_view.md) - and [`json_editable_view`](../json_editable_view.md) - the default specializations
+- [`materialize`](materialize.md) - build a `basic_json` value from a view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_array.md b/docs/mkdocs/docs/api/basic_json_view/is_array.md
index 1149c80e5..0bfeffc41 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_array.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_array.md
@@ -37,9 +37,9 @@ Constant.
## See also
-- [is_structured](is_structured.md) - return whether the type is structured
-- [size](size.md) - the number of elements
-- [empty](empty.md) - whether there are no elements
+- [`is_structured`](is_structured.md) - return whether the type is structured
+- [`size`](size.md) - the number of elements
+- [`empty`](empty.md) - whether there are no elements
- [`BasicJsonType::is_array`](../basic_json/is_array.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_binary.md b/docs/mkdocs/docs/api/basic_json_view/is_binary.md
index 3122051f3..06a2f0c7c 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_binary.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_binary.md
@@ -39,7 +39,7 @@ Constant.
## See also
-- [type](type.md) - return the type of the value
+- [`type`](type.md) - return the type of the value
- [`BasicJsonType::is_binary`](../basic_json/is_binary.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_boolean.md b/docs/mkdocs/docs/api/basic_json_view/is_boolean.md
index 148fe2a61..8e909e6d2 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_boolean.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_boolean.md
@@ -37,7 +37,7 @@ Constant.
## See also
-- [type](type.md) - return the type of the value
+- [`type`](type.md) - return the type of the value
- [`BasicJsonType::is_boolean`](../basic_json/is_boolean.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_discarded.md b/docs/mkdocs/docs/api/basic_json_view/is_discarded.md
index d9a9fc756..049019aff 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_discarded.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_discarded.md
@@ -50,10 +50,11 @@ A `basic_json_view` is not convertible to `#!cpp bool`: such a conversion would
## See also
-- [operator[]](operator[].md) - access specified element; yields a discarded view where an element is missing
-- [(constructor)](basic_json_view.md) - the default constructor creates a discarded view
-- [is_discarded (basic_json_document)](../basic_json_document/is_discarded.md) - return whether the last parse failed
+- [`operator[]`](operator[].md) - access specified element; yields a discarded view where an element is missing
+- [`(constructor)`](basic_json_view.md) - the default constructor creates a discarded view
+- [`basic_json_document::is_discarded`](../basic_json_document/is_discarded.md) - return whether the last parse failed
- [`BasicJsonType::is_discarded`](../basic_json/is_discarded.md) - the corresponding function of `basic_json`
+- [Zero-copy JSON views](../../features/json_view.md#what-is-different) - how views differ from basic_json
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_null.md b/docs/mkdocs/docs/api/basic_json_view/is_null.md
index fffaa836b..322526393 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_null.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_null.md
@@ -37,7 +37,7 @@ Constant.
## See also
-- [type](type.md) - return the type of the value
+- [`type`](type.md) - return the type of the value
- [`BasicJsonType::is_null`](../basic_json/is_null.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_number.md b/docs/mkdocs/docs/api/basic_json_view/is_number.md
index 158734364..31207e34a 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_number.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_number.md
@@ -37,9 +37,9 @@ Constant.
## See also
-- [is_number_integer](is_number_integer.md) - return whether the value is an integer or unsigned integer number
-- [is_number_unsigned](is_number_unsigned.md) - return whether the value is an unsigned integer number
-- [is_number_float](is_number_float.md) - return whether the value is a floating-point number
+- [`is_number_integer`](is_number_integer.md) - return whether the value is an integer or unsigned integer number
+- [`is_number_unsigned`](is_number_unsigned.md) - return whether the value is an unsigned integer number
+- [`is_number_float`](is_number_float.md) - return whether the value is a floating-point number
- [`BasicJsonType::is_number`](../basic_json/is_number.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_number_float.md b/docs/mkdocs/docs/api/basic_json_view/is_number_float.md
index 52bb43f20..19c78ebfe 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_number_float.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_number_float.md
@@ -43,7 +43,7 @@ integer-looking token in the source text.
## See also
-- [is_number](is_number.md) - return whether the value is a number
+- [`is_number`](is_number.md) - return whether the value is a number
- [`BasicJsonType::is_number_float`](../basic_json/is_number_float.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_number_integer.md b/docs/mkdocs/docs/api/basic_json_view/is_number_integer.md
index fda0c29c9..33dc48b45 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_number_integer.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_number_integer.md
@@ -42,8 +42,8 @@ values; use [`is_number_unsigned`](is_number_unsigned.md) to test for those spec
## See also
-- [is_number](is_number.md) - return whether the value is a number
-- [is_number_unsigned](is_number_unsigned.md) - return whether the value is an unsigned integer number
+- [`is_number`](is_number.md) - return whether the value is a number
+- [`is_number_unsigned`](is_number_unsigned.md) - return whether the value is an unsigned integer number
- [`BasicJsonType::is_number_integer`](../basic_json/is_number_integer.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_number_unsigned.md b/docs/mkdocs/docs/api/basic_json_view/is_number_unsigned.md
index d2cf10ebe..4348547ce 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_number_unsigned.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_number_unsigned.md
@@ -37,7 +37,7 @@ Constant.
## See also
-- [is_number_integer](is_number_integer.md) - return whether the value is an integer or unsigned integer number
+- [`is_number_integer`](is_number_integer.md) - return whether the value is an integer or unsigned integer number
- [`BasicJsonType::is_number_unsigned`](../basic_json/is_number_unsigned.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_object.md b/docs/mkdocs/docs/api/basic_json_view/is_object.md
index 0aea2b55d..6c2ea3906 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_object.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_object.md
@@ -37,9 +37,9 @@ Constant.
## See also
-- [is_structured](is_structured.md) - return whether the type is structured
-- [size](size.md) - the number of elements
-- [empty](empty.md) - whether there are no elements
+- [`is_structured`](is_structured.md) - return whether the type is structured
+- [`size`](size.md) - the number of elements
+- [`empty`](empty.md) - whether there are no elements
- [`BasicJsonType::is_object`](../basic_json/is_object.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_primitive.md b/docs/mkdocs/docs/api/basic_json_view/is_primitive.md
index a28b478f0..6203d91df 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_primitive.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_primitive.md
@@ -37,7 +37,7 @@ Constant.
## See also
-- [is_structured](is_structured.md) - return whether the type is structured (the complement of this function, for a
+- [`is_structured`](is_structured.md) - return whether the type is structured (the complement of this function, for a
non-discarded view)
- [`BasicJsonType::is_primitive`](../basic_json/is_primitive.md) - the corresponding function of `basic_json`
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_string.md b/docs/mkdocs/docs/api/basic_json_view/is_string.md
index 2425100b2..ff8a10a2c 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_string.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_string.md
@@ -37,7 +37,7 @@ Constant.
## See also
-- [source_offset](source_offset.md) - byte offset of this value in the source text, which differs for strings: an
+- [`source_offset`](source_offset.md) - byte offset of this value in the source text, which differs for strings: an
escaped string has none
- [`BasicJsonType::is_string`](../basic_json/is_string.md) - the corresponding function of `basic_json`
diff --git a/docs/mkdocs/docs/api/basic_json_view/is_structured.md b/docs/mkdocs/docs/api/basic_json_view/is_structured.md
index de5dd5f7e..2e0c6f8d4 100644
--- a/docs/mkdocs/docs/api/basic_json_view/is_structured.md
+++ b/docs/mkdocs/docs/api/basic_json_view/is_structured.md
@@ -37,8 +37,8 @@ Constant.
## See also
-- [is_primitive](is_primitive.md) - return whether the type is primitive
-- [size](size.md), [empty](empty.md) - the number of elements, and whether there are none
+- [`is_primitive`](is_primitive.md) - return whether the type is primitive
+- [`size`](size.md), [`empty`](empty.md) - the number of elements, and whether there are none
- [`BasicJsonType::is_structured`](../basic_json/is_structured.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/items.md b/docs/mkdocs/docs/api/basic_json_view/items.md
index 1e2a1b802..36de65272 100644
--- a/docs/mkdocs/docs/api/basic_json_view/items.md
+++ b/docs/mkdocs/docs/api/basic_json_view/items.md
@@ -78,7 +78,7 @@ and [`contains`](contains.md), which resolve to the *first* member with a given
## See also
-- [begin](begin.md), [end](end.md) - the iterators `items()` is built on
+- [`begin`](begin.md), [`end`](end.md) - the iterators `items()` is built on
- [`BasicJsonType::items`](../basic_json/items.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/materialize.md b/docs/mkdocs/docs/api/basic_json_view/materialize.md
index 5ff007b11..72dcdcd97 100644
--- a/docs/mkdocs/docs/api/basic_json_view/materialize.md
+++ b/docs/mkdocs/docs/api/basic_json_view/materialize.md
@@ -60,10 +60,11 @@ never caches the result.
## See also
-- [root](../basic_json_document/root.md) - the view of a document's root value
+- [`root`](../basic_json_document/root.md) - the view of a document's root value
- [`BasicJsonType::parse`](../basic_json/parse.md) - build a `BasicJsonType` value directly from a JSON text
- [`JSON_DIAGNOSTIC_POSITIONS`](../macros/json_diagnostic_positions.md) - source positions on parsed values (not
produced by `materialize()`)
+- [Zero-copy JSON views](../../features/json_view.md#getting-values-out-without-copying) - when to build a basic_json value from a view
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/number_format.md b/docs/mkdocs/docs/api/basic_json_view/number_format.md
index 6b8c6805d..711e74544 100644
--- a/docs/mkdocs/docs/api/basic_json_view/number_format.md
+++ b/docs/mkdocs/docs/api/basic_json_view/number_format.md
@@ -41,10 +41,11 @@ source
## See also
-- [dump](dump.md) - serialize to a JSON-formatted string
-- [number_token](number_token.md) - get a single number's token text without dumping the whole value
+- [`dump`](dump.md) - serialize to a JSON-formatted string
+- [`number_token`](number_token.md) - get a single number's token text without dumping the whole value
- [`BasicJsonType::error_handler_t`](../basic_json/error_handler_t.md) - the analogous enumeration for
`BasicJsonType::dump`'s decoding-error behavior
+- [Zero-copy JSON views](../../features/json_view.md#writing-a-view-back) - writing numbers as they appeared in the source
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/number_token.md b/docs/mkdocs/docs/api/basic_json_view/number_token.md
index d7c56c22b..1236c35a7 100644
--- a/docs/mkdocs/docs/api/basic_json_view/number_token.md
+++ b/docs/mkdocs/docs/api/basic_json_view/number_token.md
@@ -63,11 +63,12 @@ buffer -- and is valid exactly as long as that text is, see the [validity rules]
## See also
-- [get](get.md) - convert the value to a given type
-- [get_string](get_string.md) - the string, without a copy
+- [`get`](get.md) - convert the value to a given type
+- [`get_string`](get_string.md) - the string, without a copy
- [`BasicJsonType::number_integer_t`](../basic_json/number_integer_t.md),
[`number_unsigned_t`](../basic_json/number_unsigned_t.md), [`number_float_t`](../basic_json/number_float_t.md) - the
number types `#!cpp get()` and `materialize()` convert into
+- [Zero-copy JSON views](../../features/json_view.md#getting-values-out-without-copying) - reading a number exactly as written
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/operator[].md b/docs/mkdocs/docs/api/basic_json_view/operator[].md
index 8aacf94c9..74d1e356b 100644
--- a/docs/mkdocs/docs/api/basic_json_view/operator[].md
+++ b/docs/mkdocs/docs/api/basic_json_view/operator[].md
@@ -168,9 +168,9 @@ document.
## See also
-- [at](at.md) - access specified element with bounds checking (throws instead of returning a discarded view)
-- [front](front.md), [back](back.md) - access the first or last element
-- [find](find.md), [contains](contains.md) - look up a member without throwing
+- [`at`](at.md) - access specified element with bounds checking (throws instead of returning a discarded view)
+- [`front`](front.md), [`back`](back.md) - access the first or last element
+- [`find`](find.md), [`contains`](contains.md) - look up a member without throwing
- [`BasicJsonType::operator[]`](../basic_json/operator%5B%5D.md) - the corresponding function of `basic_json`
- [`json_pointer`](../json_pointer/index.md) - JSON pointer type used by overload 3
diff --git a/docs/mkdocs/docs/api/basic_json_view/operator_eq.md b/docs/mkdocs/docs/api/basic_json_view/operator_eq.md
index b43f5c633..7cfe8d443 100644
--- a/docs/mkdocs/docs/api/basic_json_view/operator_eq.md
+++ b/docs/mkdocs/docs/api/basic_json_view/operator_eq.md
@@ -100,8 +100,8 @@ the way to get a `BasicJsonType` value that supports it.
## See also
-- [operator!=](operator_ne.md) - compare for inequality
-- [materialize](materialize.md) - build a `BasicJsonType` value, e.g. to keep comparing after the document is gone
+- [`operator!=`](operator_ne.md) - compare for inequality
+- [`materialize`](materialize.md) - build a `BasicJsonType` value, e.g. to keep comparing after the document is gone
- [`BasicJsonType::operator==`](../basic_json/operator_eq.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/operator_ltlt.md b/docs/mkdocs/docs/api/basic_json_view/operator_ltlt.md
index c2735b360..47516525b 100644
--- a/docs/mkdocs/docs/api/basic_json_view/operator_ltlt.md
+++ b/docs/mkdocs/docs/api/basic_json_view/operator_ltlt.md
@@ -65,9 +65,10 @@ Linear, as [`dump`](dump.md#complexity).
## See also
-- [dump](dump.md) - serialize to a JSON-formatted string
+- [`dump`](dump.md) - serialize to a JSON-formatted string
- [`operator<<(std::ostream&)`](../operator_ltlt.md) - the corresponding operator for `basic_json`
- [`JSON_NO_IO`](../macros/json_no_io.md) - switch off functions relying on certain C++ I/O headers
+- [Zero-copy JSON views](../../features/json_view.md#writing-a-view-back) - writing a view back without building a tree
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/operator_ne.md b/docs/mkdocs/docs/api/basic_json_view/operator_ne.md
index 2e85f8abe..5d1950ac6 100644
--- a/docs/mkdocs/docs/api/basic_json_view/operator_ne.md
+++ b/docs/mkdocs/docs/api/basic_json_view/operator_ne.md
@@ -73,8 +73,8 @@ the way to get a `BasicJsonType` value that supports it.
## See also
-- [operator==](operator_eq.md) - compare for equality
-- [materialize](materialize.md) - build a `BasicJsonType` value, e.g. to keep comparing after the document is gone
+- [`operator==`](operator_eq.md) - compare for equality
+- [`materialize`](materialize.md) - build a `BasicJsonType` value, e.g. to keep comparing after the document is gone
- [`BasicJsonType::operator!=`](../basic_json/operator_ne.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/size.md b/docs/mkdocs/docs/api/basic_json_view/size.md
index 466cbd704..1c8c4f645 100644
--- a/docs/mkdocs/docs/api/basic_json_view/size.md
+++ b/docs/mkdocs/docs/api/basic_json_view/size.md
@@ -58,7 +58,7 @@ members there are.
## See also
-- [empty](empty.md) - return whether the value has no elements
+- [`empty`](empty.md) - return whether the value has no elements
- [`BasicJsonType::size`](../basic_json/size.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/source_offset.md b/docs/mkdocs/docs/api/basic_json_view/source_offset.md
index 5f7e06221..b9c6fb1eb 100644
--- a/docs/mkdocs/docs/api/basic_json_view/source_offset.md
+++ b/docs/mkdocs/docs/api/basic_json_view/source_offset.md
@@ -47,8 +47,9 @@ string, whose token length is not the same as its decoded [`size()`](size.md).
## See also
-- [source](../basic_json_document/source.md) - the parsed text
-- [is_string](is_string.md) - return whether the value is a string
+- [`source`](../basic_json_document/source.md) - the parsed text
+- [`is_string`](is_string.md) - return whether the value is a string
+- [Zero-copy JSON views](../../features/json_view.md#images) - images and the source text
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/type.md b/docs/mkdocs/docs/api/basic_json_view/type.md
index 17dbc3c34..db875a1ce 100644
--- a/docs/mkdocs/docs/api/basic_json_view/type.md
+++ b/docs/mkdocs/docs/api/basic_json_view/type.md
@@ -44,8 +44,8 @@ JSON text has no binary values, so `type()` only distinguishes the eight ordinar
## See also
-- [is_null](is_null.md), [is_boolean](is_boolean.md), [is_number](is_number.md), [is_string](is_string.md),
- [is_array](is_array.md), [is_object](is_object.md) - type-specific predicates built on `type()`
+- [`is_null`](is_null.md), [`is_boolean`](is_boolean.md), [`is_number`](is_number.md), [`is_string`](is_string.md),
+ [`is_array`](is_array.md), [`is_object`](is_object.md) - type-specific predicates built on `type()`
- [`BasicJsonType::type`](../basic_json/type.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/type_name.md b/docs/mkdocs/docs/api/basic_json_view/type_name.md
index d30132886..44644c6f5 100644
--- a/docs/mkdocs/docs/api/basic_json_view/type_name.md
+++ b/docs/mkdocs/docs/api/basic_json_view/type_name.md
@@ -55,7 +55,7 @@ Constant.
## See also
-- [type](type.md) - return the type of the value
+- [`type`](type.md) - return the type of the value
- [`BasicJsonType::type_name`](../basic_json/type_name.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/basic_json_view/value.md b/docs/mkdocs/docs/api/basic_json_view/value.md
index 47e7b0bbb..cc4db8060 100644
--- a/docs/mkdocs/docs/api/basic_json_view/value.md
+++ b/docs/mkdocs/docs/api/basic_json_view/value.md
@@ -131,8 +131,8 @@ None of these exceptions carry a [`JSON_DIAGNOSTICS`](../macros/json_diagnostics
## See also
-- [at](at.md) - access specified element with bounds checking (throws instead of returning a default value)
-- [operator[]](operator[].md) - access specified element (returns a discarded view instead of a default value)
+- [`at`](at.md) - access specified element with bounds checking (throws instead of returning a default value)
+- [`operator[]`](operator[].md) - access specified element (returns a discarded view instead of a default value)
- [`BasicJsonType::value`](../basic_json/value.md) - the corresponding function of `basic_json`
## Version history
diff --git a/docs/mkdocs/docs/api/byte_container_with_subtype/byte_container_with_subtype.md b/docs/mkdocs/docs/api/byte_container_with_subtype/byte_container_with_subtype.md
index 62b0e24fc..825999c29 100644
--- a/docs/mkdocs/docs/api/byte_container_with_subtype/byte_container_with_subtype.md
+++ b/docs/mkdocs/docs/api/byte_container_with_subtype/byte_container_with_subtype.md
@@ -43,10 +43,10 @@ byte_container_with_subtype(container_type&& container, subtype_type subtype);
## See also
-- [set_subtype](set_subtype.md) sets the binary subtype
-- [subtype](subtype.md) return the binary subtype
-- [has_subtype](has_subtype.md) return whether the value has a subtype
-- [binary](../basic_json/binary.md) create a binary JSON value
+- [`set_subtype`](set_subtype.md) - sets the binary subtype
+- [`subtype`](subtype.md) - return the binary subtype
+- [`has_subtype`](has_subtype.md) - return whether the value has a subtype
+- [`binary`](../basic_json/binary.md) - create a binary JSON value
- [Binary Values](../../features/binary_values.md) - the article on binary values
## Version history
diff --git a/docs/mkdocs/docs/api/byte_container_with_subtype/clear_subtype.md b/docs/mkdocs/docs/api/byte_container_with_subtype/clear_subtype.md
index ec2e61760..7045a342f 100644
--- a/docs/mkdocs/docs/api/byte_container_with_subtype/clear_subtype.md
+++ b/docs/mkdocs/docs/api/byte_container_with_subtype/clear_subtype.md
@@ -33,9 +33,10 @@ Constant.
## See also
-- [set_subtype](set_subtype.md) sets the binary subtype
-- [has_subtype](has_subtype.md) return whether the value has a subtype
-- [subtype](subtype.md) return the binary subtype
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`set_subtype`](set_subtype.md) - sets the binary subtype
+- [`has_subtype`](has_subtype.md) - return whether the value has a subtype
+- [`subtype`](subtype.md) - return the binary subtype
## Version history
diff --git a/docs/mkdocs/docs/api/byte_container_with_subtype/has_subtype.md b/docs/mkdocs/docs/api/byte_container_with_subtype/has_subtype.md
index e22429f9c..9ffc8c6e0 100644
--- a/docs/mkdocs/docs/api/byte_container_with_subtype/has_subtype.md
+++ b/docs/mkdocs/docs/api/byte_container_with_subtype/has_subtype.md
@@ -36,9 +36,10 @@ Constant.
## See also
-- [set_subtype](set_subtype.md) sets the binary subtype
-- [clear_subtype](clear_subtype.md) clears the binary subtype
-- [subtype](subtype.md) return the binary subtype
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`set_subtype`](set_subtype.md) - sets the binary subtype
+- [`clear_subtype`](clear_subtype.md) - clears the binary subtype
+- [`subtype`](subtype.md) - return the binary subtype
## Version history
diff --git a/docs/mkdocs/docs/api/byte_container_with_subtype/index.md b/docs/mkdocs/docs/api/byte_container_with_subtype/index.md
index b184d8496..ea09880bd 100644
--- a/docs/mkdocs/docs/api/byte_container_with_subtype/index.md
+++ b/docs/mkdocs/docs/api/byte_container_with_subtype/index.md
@@ -32,9 +32,9 @@ specific naming scheme in order to override the binary type.
## See also
- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
-- [**binary**](../basic_json/binary.md) - create a binary array value
-- [**get_binary**](../basic_json/get_binary.md) - get a reference to the stored binary value
-- [**binary_t**](../basic_json/binary_t.md) - type for binary arrays
+- [`binary`](../basic_json/binary.md) - create a binary array value
+- [`get_binary`](../basic_json/get_binary.md) - get a reference to the stored binary value
+- [`binary_t`](../basic_json/binary_t.md) - type for binary arrays
- [Binary formats](../../features/binary_formats/index.md) - formats that can store binary values
## Version history
diff --git a/docs/mkdocs/docs/api/byte_container_with_subtype/operator_eq.md b/docs/mkdocs/docs/api/byte_container_with_subtype/operator_eq.md
index 0676ee5e7..6219cd0b7 100644
--- a/docs/mkdocs/docs/api/byte_container_with_subtype/operator_eq.md
+++ b/docs/mkdocs/docs/api/byte_container_with_subtype/operator_eq.md
@@ -39,9 +39,10 @@ Linear in the size of the compared containers.
## See also
-- [operator!=](operator_ne.md) comparison: not equal
-- [has_subtype](has_subtype.md) return whether the value has a subtype
-- [subtype](subtype.md) return the binary subtype
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`operator!=`](operator_ne.md) - comparison: not equal
+- [`has_subtype`](has_subtype.md) - return whether the value has a subtype
+- [`subtype`](subtype.md) - return the binary subtype
## Version history
diff --git a/docs/mkdocs/docs/api/byte_container_with_subtype/operator_ne.md b/docs/mkdocs/docs/api/byte_container_with_subtype/operator_ne.md
index 5adb5cd39..62c5df792 100644
--- a/docs/mkdocs/docs/api/byte_container_with_subtype/operator_ne.md
+++ b/docs/mkdocs/docs/api/byte_container_with_subtype/operator_ne.md
@@ -38,9 +38,10 @@ Linear in the size of the compared containers.
## See also
-- [operator==](operator_eq.md) comparison: equal
-- [has_subtype](has_subtype.md) return whether the value has a subtype
-- [subtype](subtype.md) return the binary subtype
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`operator==`](operator_eq.md) - comparison: equal
+- [`has_subtype`](has_subtype.md) - return whether the value has a subtype
+- [`subtype`](subtype.md) - return the binary subtype
## Version history
diff --git a/docs/mkdocs/docs/api/byte_container_with_subtype/set_subtype.md b/docs/mkdocs/docs/api/byte_container_with_subtype/set_subtype.md
index 281de5aef..2d4b20733 100644
--- a/docs/mkdocs/docs/api/byte_container_with_subtype/set_subtype.md
+++ b/docs/mkdocs/docs/api/byte_container_with_subtype/set_subtype.md
@@ -38,9 +38,10 @@ Constant.
## See also
-- [subtype](subtype.md) return the binary subtype
-- [has_subtype](has_subtype.md) return whether the value has a subtype
-- [clear_subtype](clear_subtype.md) clears the binary subtype
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`subtype`](subtype.md) - return the binary subtype
+- [`has_subtype`](has_subtype.md) - return whether the value has a subtype
+- [`clear_subtype`](clear_subtype.md) - clears the binary subtype
## Version history
diff --git a/docs/mkdocs/docs/api/byte_container_with_subtype/subtype.md b/docs/mkdocs/docs/api/byte_container_with_subtype/subtype.md
index 0f00cc803..3a91ed8f3 100644
--- a/docs/mkdocs/docs/api/byte_container_with_subtype/subtype.md
+++ b/docs/mkdocs/docs/api/byte_container_with_subtype/subtype.md
@@ -38,9 +38,10 @@ Constant.
## See also
-- [set_subtype](set_subtype.md) sets the binary subtype
-- [has_subtype](has_subtype.md) return whether the value has a subtype
-- [clear_subtype](clear_subtype.md) clears the binary subtype
+- [Binary values](../../features/binary_values.md) - how binary values and subtypes are handled
+- [`set_subtype`](set_subtype.md) - sets the binary subtype
+- [`has_subtype`](has_subtype.md) - return whether the value has a subtype
+- [`clear_subtype`](clear_subtype.md) - clears the binary subtype
## Version history
diff --git a/docs/mkdocs/docs/api/json.md b/docs/mkdocs/docs/api/json.md
index b41b691ac..edc608c47 100644
--- a/docs/mkdocs/docs/api/json.md
+++ b/docs/mkdocs/docs/api/json.md
@@ -25,8 +25,11 @@ types.
## See also
-- [basic_json](basic_json/index.md) - the underlying class template
-- [ordered_json](ordered_json.md) - specialization that preserves the insertion order of object keys
+- [`basic_json`](basic_json/index.md) - the underlying class template
+- [`ordered_json`](ordered_json.md) - specialization that preserves the insertion order of object keys
+- [Types](../features/types/index.md) - the JSON value types and how they are stored
+- [Converting values](../features/conversions.md) - get values out of a JSON value and put values in
+- [Creating JSON values](../features/creating_values.md) - all the ways to build a JSON value
## Version history
diff --git a/docs/mkdocs/docs/api/json_document.md b/docs/mkdocs/docs/api/json_document.md
index cfa22e80b..e21136fd9 100644
--- a/docs/mkdocs/docs/api/json_document.md
+++ b/docs/mkdocs/docs/api/json_document.md
@@ -27,8 +27,9 @@ specialization.
## See also
-- [json_view](json_view.md) - a view of a value of a `json_document`
-- [ordered_json_document](ordered_json_document.md) - the corresponding document for `ordered_json`
+- [`json_view`](json_view.md) - a view of a value of a `json_document`
+- [`ordered_json_document`](ordered_json_document.md) - the corresponding document for `ordered_json`
+- [Zero-copy JSON views](../features/json_view.md) - how to parse, inspect and edit a document without building a tree
## Version history
diff --git a/docs/mkdocs/docs/api/json_editable_document.md b/docs/mkdocs/docs/api/json_editable_document.md
index ec5226b78..b17c548af 100644
--- a/docs/mkdocs/docs/api/json_editable_document.md
+++ b/docs/mkdocs/docs/api/json_editable_document.md
@@ -32,9 +32,9 @@ parsing, without ever rewriting the source text -- see [Edits](basic_json_docume
## See also
-- [json_editable_view](json_editable_view.md) - a view of a value of a `json_editable_document`
-- [json_document](json_document.md) - the read-only document this type adds edits to
-- [ordered_json_editable_document](ordered_json_editable_document.md) - the corresponding editable document for
+- [`json_editable_view`](json_editable_view.md) - a view of a value of a `json_editable_document`
+- [`json_document`](json_document.md) - the read-only document this type adds edits to
+- [`ordered_json_editable_document`](ordered_json_editable_document.md) - the corresponding editable document for
`ordered_json`
- [Edits](basic_json_document/index.md#edits) - what an edit guarantees
diff --git a/docs/mkdocs/docs/api/json_editable_view.md b/docs/mkdocs/docs/api/json_editable_view.md
index ddee4e372..fc347e3bc 100644
--- a/docs/mkdocs/docs/api/json_editable_view.md
+++ b/docs/mkdocs/docs/api/json_editable_view.md
@@ -31,10 +31,11 @@ still referring to it seeing the change, see [Edits](basic_json_document/index.m
## See also
-- [json_editable_document](json_editable_document.md) - the document type this view refers into
-- [json_view](json_view.md) - the corresponding read-only view
-- [ordered_json_editable_view](ordered_json_editable_view.md) - the corresponding view for
+- [`json_editable_document`](json_editable_document.md) - the document type this view refers into
+- [`json_view`](json_view.md) - the corresponding read-only view
+- [`ordered_json_editable_view`](ordered_json_editable_view.md) - the corresponding view for
`ordered_json_editable_document`
+- [Zero-copy JSON views](../features/json_view.md#editing-a-document) - editing a document in place and writing it back
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/back.md b/docs/mkdocs/docs/api/json_pointer/back.md
index b8f0432af..2cf1d830a 100644
--- a/docs/mkdocs/docs/api/json_pointer/back.md
+++ b/docs/mkdocs/docs/api/json_pointer/back.md
@@ -40,10 +40,10 @@ Constant.
## See also
-- [front](front.md) return first reference token
-- [pop_back](pop_back.md) remove the last reference token
-- [push_back](push_back.md) append an unescaped token at the end of the pointer
-- [parent_pointer](parent_pointer.md) returns the parent of this JSON pointer
+- [`front`](front.md) - return first reference token
+- [`pop_back`](pop_back.md) - remove the last reference token
+- [`push_back`](push_back.md) - append an unescaped token at the end of the pointer
+- [`parent_pointer`](parent_pointer.md) - returns the parent of this JSON pointer
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/empty.md b/docs/mkdocs/docs/api/json_pointer/empty.md
index 6c8fd542e..84a113b7e 100644
--- a/docs/mkdocs/docs/api/json_pointer/empty.md
+++ b/docs/mkdocs/docs/api/json_pointer/empty.md
@@ -36,9 +36,9 @@ Constant.
## See also
-- [front](front.md) return first reference token
-- [back](back.md) return last reference token
-- [to_string](to_string.md) return a string representation of the JSON pointer
+- [`front`](front.md) - return first reference token
+- [`back`](back.md) - return last reference token
+- [`to_string`](to_string.md) - return a string representation of the JSON pointer
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/front.md b/docs/mkdocs/docs/api/json_pointer/front.md
index 247abd188..a80e26bf2 100644
--- a/docs/mkdocs/docs/api/json_pointer/front.md
+++ b/docs/mkdocs/docs/api/json_pointer/front.md
@@ -40,9 +40,9 @@ Constant.
## See also
-- [back](back.md) return last reference token
-- [pop_front](pop_front.md) remove the first reference token
-- [push_front](push_front.md) append an unescaped token at the start of the pointer
+- [`back`](back.md) - return last reference token
+- [`pop_front`](pop_front.md) - remove the first reference token
+- [`push_front`](push_front.md) - append an unescaped token at the start of the pointer
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/index.md b/docs/mkdocs/docs/api/json_pointer/index.md
index cdcf35bf9..944b949ef 100644
--- a/docs/mkdocs/docs/api/json_pointer/index.md
+++ b/docs/mkdocs/docs/api/json_pointer/index.md
@@ -49,7 +49,7 @@ The diagram shows the reference tokens of the JSON pointer `/a/b/c`.
- [(constructor)](json_pointer.md)
- [**to_string**](to_string.md) - return a string representation of the JSON pointer
-- [**operator string_t**](operator_string_t.md) - return a string representation of the JSON pointer (deprecated)
+- [`operator string_t`](operator_string_t.md) - return a string representation of the JSON pointer (deprecated)
- [**operator==**](operator_eq.md) - compare: equal
- [**operator!=**](operator_ne.md) - compare: not equal
- [**operator<=>**](operator_spaceship.md) - compare: 3-way (C++20)
@@ -70,7 +70,9 @@ The diagram shows the reference tokens of the JSON pointer `/a/b/c`.
## See also
-- [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901)
+- [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901) - specification of JSON Pointer
+- [JSON Pointer](../../features/json_pointer.md) - the article on JSON Pointer support
+- [JSON Patch and Diff](../../features/json_patch.md) - patch paths are JSON pointers
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/json_pointer.md b/docs/mkdocs/docs/api/json_pointer/json_pointer.md
index 0fce6f43c..d667da15d 100644
--- a/docs/mkdocs/docs/api/json_pointer/json_pointer.md
+++ b/docs/mkdocs/docs/api/json_pointer/json_pointer.md
@@ -46,7 +46,7 @@ Linear in the length of `s`.
## See also
- [JSON Pointer](../../features/json_pointer.md) - the article on JSON Pointer support
-- [operator""_json_pointer](../operator_literal_json_pointer.md) user-defined string literal for JSON pointers
+- [`operator""_json_pointer`](../operator_literal_json_pointer.md) - user-defined string literal for JSON pointers
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/operator_eq.md b/docs/mkdocs/docs/api/json_pointer/operator_eq.md
index 44cda4354..d7e45c773 100644
--- a/docs/mkdocs/docs/api/json_pointer/operator_eq.md
+++ b/docs/mkdocs/docs/api/json_pointer/operator_eq.md
@@ -109,8 +109,8 @@ tokens.
## See also
-- [operator!=](operator_ne.md) compare for inequality
-- [operator<=>](operator_spaceship.md) comparison: 3-way (C++20)
+- [`operator!=`](operator_ne.md) - compare for inequality
+- [`operator<=>`](operator_spaceship.md) - comparison: 3-way (C++20)
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/operator_ne.md b/docs/mkdocs/docs/api/json_pointer/operator_ne.md
index 77e6b92c8..827c58e3e 100644
--- a/docs/mkdocs/docs/api/json_pointer/operator_ne.md
+++ b/docs/mkdocs/docs/api/json_pointer/operator_ne.md
@@ -107,8 +107,8 @@ tokens.
## See also
-- [operator==](operator_eq.md) compare for equality
-- [operator<=>](operator_spaceship.md) comparison: 3-way (C++20)
+- [`operator==`](operator_eq.md) - compare for equality
+- [`operator<=>`](operator_spaceship.md) - comparison: 3-way (C++20)
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/operator_slash.md b/docs/mkdocs/docs/api/json_pointer/operator_slash.md
index e91f8a119..ae01dd599 100644
--- a/docs/mkdocs/docs/api/json_pointer/operator_slash.md
+++ b/docs/mkdocs/docs/api/json_pointer/operator_slash.md
@@ -64,8 +64,9 @@ a new JSON pointer is built from a copy of `lhs`.
## See also
-- [operator/=](operator_slasheq.md) append to the end of the JSON pointer
-- [push_back](push_back.md) append an unescaped token at the end of the pointer
+- [`operator/=`](operator_slasheq.md) - append to the end of the JSON pointer
+- [`push_back`](push_back.md) - append an unescaped token at the end of the pointer
+- [JSON Pointer](../../features/json_pointer.md) - the article on JSON Pointer support
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/operator_slasheq.md b/docs/mkdocs/docs/api/json_pointer/operator_slasheq.md
index 05e8ccbcf..e0d4560ec 100644
--- a/docs/mkdocs/docs/api/json_pointer/operator_slasheq.md
+++ b/docs/mkdocs/docs/api/json_pointer/operator_slasheq.md
@@ -63,8 +63,9 @@ json_pointer& operator/=(std::size_t array_idx)
## See also
-- [operator/](operator_slash.md) create JSON Pointer by appending
-- [push_back](push_back.md) append an unescaped token at the end of the pointer
+- [`operator/`](operator_slash.md) - create JSON Pointer by appending
+- [`push_back`](push_back.md) - append an unescaped token at the end of the pointer
+- [JSON Pointer](../../features/json_pointer.md) - the article on JSON Pointer support
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/operator_spaceship.md b/docs/mkdocs/docs/api/json_pointer/operator_spaceship.md
index ffc3f0e93..1c97ce569 100644
--- a/docs/mkdocs/docs/api/json_pointer/operator_spaceship.md
+++ b/docs/mkdocs/docs/api/json_pointer/operator_spaceship.md
@@ -64,8 +64,8 @@ Linear in the number of reference tokens.
## See also
-- [operator==](operator_eq.md) compare: equal
-- [operator!=](operator_ne.md) compare: not equal
+- [`operator==`](operator_eq.md) - compare: equal
+- [`operator!=`](operator_ne.md) - compare: not equal
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/operator_string_t.md b/docs/mkdocs/docs/api/json_pointer/operator_string_t.md
index 44dde733d..4818f7c5c 100644
--- a/docs/mkdocs/docs/api/json_pointer/operator_string_t.md
+++ b/docs/mkdocs/docs/api/json_pointer/operator_string_t.md
@@ -46,8 +46,8 @@ operator string_t() const
## See also
-- [to_string](to_string.md) return a string representation of the JSON pointer
-- [string_t](../basic_json/string_t.md) - type for strings
+- [`to_string`](to_string.md) - return a string representation of the JSON pointer
+- [`string_t`](../basic_json/string_t.md) - type for strings
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/parent_pointer.md b/docs/mkdocs/docs/api/json_pointer/parent_pointer.md
index d37889e7e..fdc4a35fd 100644
--- a/docs/mkdocs/docs/api/json_pointer/parent_pointer.md
+++ b/docs/mkdocs/docs/api/json_pointer/parent_pointer.md
@@ -36,8 +36,8 @@ Linear in the length of the JSON pointer.
## See also
-- [pop_back](pop_back.md) remove the last reference token
-- [back](back.md) return the last reference token
+- [`pop_back`](pop_back.md) - remove the last reference token
+- [`back`](back.md) - return the last reference token
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/pop_back.md b/docs/mkdocs/docs/api/json_pointer/pop_back.md
index 6646be44a..07e1f33ce 100644
--- a/docs/mkdocs/docs/api/json_pointer/pop_back.md
+++ b/docs/mkdocs/docs/api/json_pointer/pop_back.md
@@ -36,9 +36,9 @@ Constant.
## See also
-- [back](back.md) return last reference token
-- [push_back](push_back.md) append an unescaped token at the end of the pointer
-- [parent_pointer](parent_pointer.md) returns the parent of this JSON pointer
+- [`back`](back.md) - return last reference token
+- [`push_back`](push_back.md) - append an unescaped token at the end of the pointer
+- [`parent_pointer`](parent_pointer.md) - returns the parent of this JSON pointer
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/pop_front.md b/docs/mkdocs/docs/api/json_pointer/pop_front.md
index 308a3cbdc..ec3d984ec 100644
--- a/docs/mkdocs/docs/api/json_pointer/pop_front.md
+++ b/docs/mkdocs/docs/api/json_pointer/pop_front.md
@@ -36,8 +36,8 @@ Linear in the number of reference tokens in the `json_pointer`.
## See also
-- [front](front.md) return first reference token
-- [push_front](push_front.md) append an unescaped token at the start of the pointer
+- [`front`](front.md) - return first reference token
+- [`push_front`](push_front.md) - append an unescaped token at the start of the pointer
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/push_back.md b/docs/mkdocs/docs/api/json_pointer/push_back.md
index f50f10924..c2c950027 100644
--- a/docs/mkdocs/docs/api/json_pointer/push_back.md
+++ b/docs/mkdocs/docs/api/json_pointer/push_back.md
@@ -39,10 +39,10 @@ Amortized constant.
## See also
-- [back](back.md) return last reference token
-- [pop_back](pop_back.md) remove the last reference token
-- [operator/=](operator_slasheq.md) append to the end of the JSON pointer
-- [operator/](operator_slash.md) create JSON Pointer by appending
+- [`back`](back.md) - return last reference token
+- [`pop_back`](pop_back.md) - remove the last reference token
+- [`operator/=`](operator_slasheq.md) - append to the end of the JSON pointer
+- [`operator/`](operator_slash.md) - create JSON Pointer by appending
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/push_front.md b/docs/mkdocs/docs/api/json_pointer/push_front.md
index 67dd87384..e68516f1c 100644
--- a/docs/mkdocs/docs/api/json_pointer/push_front.md
+++ b/docs/mkdocs/docs/api/json_pointer/push_front.md
@@ -40,8 +40,8 @@ Linear in the number of reference tokens in the `json_pointer`.
## See also
-- [front](front.md) return first reference token
-- [pop_front](pop_front.md) remove the first reference token
+- [`front`](front.md) - return first reference token
+- [`pop_front`](pop_front.md) - remove the first reference token
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/string_t.md b/docs/mkdocs/docs/api/json_pointer/string_t.md
index 6808ae540..468c8446a 100644
--- a/docs/mkdocs/docs/api/json_pointer/string_t.md
+++ b/docs/mkdocs/docs/api/json_pointer/string_t.md
@@ -25,8 +25,8 @@ See [`basic_json::string_t`](../basic_json/string_t.md) for more information.
## See also
-- [basic_json::string_t](../basic_json/string_t.md) type used to store JSON strings
-- [to_string](to_string.md) return a string representation of the JSON pointer
+- [`basic_json::string_t`](../basic_json/string_t.md) - type used to store JSON strings
+- [`to_string`](to_string.md) - return a string representation of the JSON pointer
## Version history
diff --git a/docs/mkdocs/docs/api/json_pointer/to_string.md b/docs/mkdocs/docs/api/json_pointer/to_string.md
index b994ff80e..2a3f7f2db 100644
--- a/docs/mkdocs/docs/api/json_pointer/to_string.md
+++ b/docs/mkdocs/docs/api/json_pointer/to_string.md
@@ -44,8 +44,8 @@ ptr == json_pointer(ptr.to_string());
## See also
-- [operator string_t](operator_string_t.md) return a string representation of the JSON pointer (deprecated)
-- [operator<<](../operator_ltlt.md) write a JSON pointer to a stream
+- [`operator string_t`](operator_string_t.md) - return a string representation of the JSON pointer (deprecated)
+- [`operator<<`](../operator_ltlt.md) - write a JSON pointer to a stream
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/binary.md b/docs/mkdocs/docs/api/json_sax/binary.md
index f5310390e..617fd76fc 100644
--- a/docs/mkdocs/docs/api/json_sax/binary.md
+++ b/docs/mkdocs/docs/api/json_sax/binary.md
@@ -37,7 +37,7 @@ It is safe to move the passed binary value.
## See also
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
- [SAX Interface](../../features/parsing/sax_interface.md) - the SAX interface article
- [Binary Values](../../features/binary_values.md) - the article on binary values
diff --git a/docs/mkdocs/docs/api/json_sax/boolean.md b/docs/mkdocs/docs/api/json_sax/boolean.md
index 89abb67ba..abac5dd38 100644
--- a/docs/mkdocs/docs/api/json_sax/boolean.md
+++ b/docs/mkdocs/docs/api/json_sax/boolean.md
@@ -33,7 +33,7 @@ Whether parsing should proceed.
## See also
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
- [SAX Interface](../../features/parsing/sax_interface.md) - the SAX interface article
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/end_array.md b/docs/mkdocs/docs/api/json_sax/end_array.md
index 7010e7259..599f951e5 100644
--- a/docs/mkdocs/docs/api/json_sax/end_array.md
+++ b/docs/mkdocs/docs/api/json_sax/end_array.md
@@ -28,8 +28,9 @@ Whether parsing should proceed.
## See also
-- [start_array](start_array.md) - the beginning of an array was read
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`start_array`](start_array.md) - the beginning of an array was read
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/end_object.md b/docs/mkdocs/docs/api/json_sax/end_object.md
index aaaec6d22..b5f020dc7 100644
--- a/docs/mkdocs/docs/api/json_sax/end_object.md
+++ b/docs/mkdocs/docs/api/json_sax/end_object.md
@@ -28,9 +28,10 @@ Whether parsing should proceed.
## See also
-- [start_object](start_object.md) - the beginning of an object was read
-- [key](key.md) - an object key was read
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`start_object`](start_object.md) - the beginning of an object was read
+- [`key`](key.md) - an object key was read
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/index.md b/docs/mkdocs/docs/api/json_sax/index.md
index d005170cb..c63fadaa1 100644
--- a/docs/mkdocs/docs/api/json_sax/index.md
+++ b/docs/mkdocs/docs/api/json_sax/index.md
@@ -65,9 +65,9 @@ leading `-` sign.
## See also
- [SAX interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
-- [**sax_parse**](../basic_json/sax_parse.md) - generate SAX events from an input
-- [**parse**](../basic_json/parse.md) - DOM parsing, with optional [parser callbacks](../../features/parsing/parser_callbacks.md)
-- [Parse exceptions](../../features/parsing/parse_exceptions.md)
+- [`sax_parse`](../basic_json/sax_parse.md) - generate SAX events from an input
+- [`parse`](../basic_json/parse.md) - DOM parsing, with optional [parser callbacks](../../features/parsing/parser_callbacks.md)
+- [Parse exceptions](../../features/parsing/parse_exceptions.md) - how parse errors are reported
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/key.md b/docs/mkdocs/docs/api/json_sax/key.md
index 5ecea20f9..591f590e0 100644
--- a/docs/mkdocs/docs/api/json_sax/key.md
+++ b/docs/mkdocs/docs/api/json_sax/key.md
@@ -37,9 +37,10 @@ It is safe to move the passed object key value.
## See also
-- [start_object](start_object.md) - the beginning of an object was read
-- [end_object](end_object.md) - the end of an object was read
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`start_object`](start_object.md) - the beginning of an object was read
+- [`end_object`](end_object.md) - the end of an object was read
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/null.md b/docs/mkdocs/docs/api/json_sax/null.md
index ef5771094..8b049d26b 100644
--- a/docs/mkdocs/docs/api/json_sax/null.md
+++ b/docs/mkdocs/docs/api/json_sax/null.md
@@ -28,7 +28,7 @@ Whether parsing should proceed.
## See also
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
- [SAX Interface](../../features/parsing/sax_interface.md) - the SAX interface article
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/number_float.md b/docs/mkdocs/docs/api/json_sax/number_float.md
index d9c37c257..fa28a64b8 100644
--- a/docs/mkdocs/docs/api/json_sax/number_float.md
+++ b/docs/mkdocs/docs/api/json_sax/number_float.md
@@ -36,9 +36,10 @@ Whether parsing should proceed.
## See also
-- [number_integer](number_integer.md) - an integer number was read
-- [number_unsigned](number_unsigned.md) - an unsigned integer number was read
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`number_integer`](number_integer.md) - an integer number was read
+- [`number_unsigned`](number_unsigned.md) - an unsigned integer number was read
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/number_integer.md b/docs/mkdocs/docs/api/json_sax/number_integer.md
index c67f9a410..6e7426016 100644
--- a/docs/mkdocs/docs/api/json_sax/number_integer.md
+++ b/docs/mkdocs/docs/api/json_sax/number_integer.md
@@ -33,9 +33,10 @@ Whether parsing should proceed.
## See also
-- [number_unsigned](number_unsigned.md) - an unsigned integer number was read
-- [number_float](number_float.md) - a floating-point number was read
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`number_unsigned`](number_unsigned.md) - an unsigned integer number was read
+- [`number_float`](number_float.md) - a floating-point number was read
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/number_unsigned.md b/docs/mkdocs/docs/api/json_sax/number_unsigned.md
index edb40d402..730bf73d6 100644
--- a/docs/mkdocs/docs/api/json_sax/number_unsigned.md
+++ b/docs/mkdocs/docs/api/json_sax/number_unsigned.md
@@ -33,9 +33,10 @@ Whether parsing should proceed.
## See also
-- [number_integer](number_integer.md) - an integer number was read
-- [number_float](number_float.md) - a floating-point number was read
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`number_integer`](number_integer.md) - an integer number was read
+- [`number_float`](number_float.md) - a floating-point number was read
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/parse_error.md b/docs/mkdocs/docs/api/json_sax/parse_error.md
index ce90f4448..cad7b5a91 100644
--- a/docs/mkdocs/docs/api/json_sax/parse_error.md
+++ b/docs/mkdocs/docs/api/json_sax/parse_error.md
@@ -41,9 +41,10 @@ Whether parsing should proceed (**must return `#!cpp false`**).
## See also
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
- [Parsing and Exceptions](../../features/parsing/parse_exceptions.md) - the article on handling parse errors without
exceptions
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/start_array.md b/docs/mkdocs/docs/api/json_sax/start_array.md
index 48557fa48..c470a330f 100644
--- a/docs/mkdocs/docs/api/json_sax/start_array.md
+++ b/docs/mkdocs/docs/api/json_sax/start_array.md
@@ -37,8 +37,9 @@ Binary formats may report the number of elements.
## See also
-- [end_array](end_array.md) - the end of an array was read
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`end_array`](end_array.md) - the end of an array was read
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/start_object.md b/docs/mkdocs/docs/api/json_sax/start_object.md
index 3a569878f..0f1c89554 100644
--- a/docs/mkdocs/docs/api/json_sax/start_object.md
+++ b/docs/mkdocs/docs/api/json_sax/start_object.md
@@ -37,9 +37,10 @@ Binary formats may report the number of elements.
## See also
-- [end_object](end_object.md) - the end of an object was read
-- [key](key.md) - an object key was read
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`end_object`](end_object.md) - the end of an object was read
+- [`key`](key.md) - an object key was read
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
+- [SAX Interface](../../features/parsing/sax_interface.md) - guide to event-based parsing
## Version history
diff --git a/docs/mkdocs/docs/api/json_sax/string.md b/docs/mkdocs/docs/api/json_sax/string.md
index 7e742ebcb..6c9575443 100644
--- a/docs/mkdocs/docs/api/json_sax/string.md
+++ b/docs/mkdocs/docs/api/json_sax/string.md
@@ -37,7 +37,7 @@ It is safe to move the passed string value.
## See also
-- [sax_parse](../basic_json/sax_parse.md) - SAX parser
+- [`sax_parse`](../basic_json/sax_parse.md) - SAX parser
- [SAX Interface](../../features/parsing/sax_interface.md) - the SAX interface article
## Version history
diff --git a/docs/mkdocs/docs/api/json_view.md b/docs/mkdocs/docs/api/json_view.md
index 89229ed6f..4f155fb36 100644
--- a/docs/mkdocs/docs/api/json_view.md
+++ b/docs/mkdocs/docs/api/json_view.md
@@ -26,8 +26,9 @@ This type is a [`basic_json_view`](basic_json_view/index.md) of a value of a [`j
## See also
-- [json_document](json_document.md) - the document type this view refers into
-- [ordered_json_view](ordered_json_view.md) - the corresponding view for `ordered_json_document`
+- [`json_document`](json_document.md) - the document type this view refers into
+- [`ordered_json_view`](ordered_json_view.md) - the corresponding view for `ordered_json_document`
+- [Zero-copy JSON views](../features/json_view.md) - how to parse, inspect and edit a document without building a tree
## Version history
diff --git a/docs/mkdocs/docs/api/macros/index.md b/docs/mkdocs/docs/api/macros/index.md
index ae11a6084..b30e9b081 100644
--- a/docs/mkdocs/docs/api/macros/index.md
+++ b/docs/mkdocs/docs/api/macros/index.md
@@ -142,8 +142,12 @@ header. See also the [macro overview page](../../features/macros.md).
## See also
- [Macros](../../features/macros.md) - guide to the supported macros
-- [Runtime assertions](../../features/assertions.md)
+- [Runtime assertions](../../features/assertions.md) - assertions guarding against undefined behavior
- [Arbitrary type conversions](../../features/arbitrary_types.md) - using the `NLOHMANN_DEFINE_TYPE_*` macros
- [Enum conversion](../../features/enum_conversion.md) - using `NLOHMANN_JSON_SERIALIZE_ENUM`
-- [The `nlohmann` namespace](../../features/namespace.md)
+- [The `nlohmann` namespace](../../features/namespace.md) - how the library's namespace is defined and versioned
- [CMake integration](../../integration/cmake.md) - setting macros from the build system
+- [Integration](../../integration/index.md) - integrate the library and set macros
+- [Modules](../../features/modules.md) - macros and C++20 modules
+- [Working Without Exceptions](../../features/no_exceptions.md) - using the library without exceptions
+- [Architecture](../../home/architecture.md) - how the library is put together
diff --git a/docs/mkdocs/docs/api/macros/json_assert.md b/docs/mkdocs/docs/api/macros/json_assert.md
index a8f198a7a..158fe7a68 100644
--- a/docs/mkdocs/docs/api/macros/json_assert.md
+++ b/docs/mkdocs/docs/api/macros/json_assert.md
@@ -82,6 +82,7 @@ Therefore, assertions can be switched off by defining `NDEBUG`.
## See also
- [Runtime Assertions](../../features/assertions.md) - overview documentation
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_brace_init_copy_semantics.md b/docs/mkdocs/docs/api/macros/json_brace_init_copy_semantics.md
index adab0769a..796b20c6b 100644
--- a/docs/mkdocs/docs/api/macros/json_brace_init_copy_semantics.md
+++ b/docs/mkdocs/docs/api/macros/json_brace_init_copy_semantics.md
@@ -111,8 +111,10 @@ The default value is `0` (disabled — existing behavior is preserved).
## See also
-- [FAQ: Brace initialization yields arrays](../../home/faq.md#brace-initialization-yields-arrays)
-- [**basic_json(initializer_list_t)**](../basic_json/basic_json.md) - the affected constructor
+- [FAQ: Brace initialization yields arrays](../../home/faq.md#brace-initialization-yields-arrays) - why brace
+ initialization may create arrays
+- [`basic_json(initializer_list_t)`](../basic_json/basic_json.md) - the affected constructor
+- [Creating JSON values](../../features/creating_values.md) - initializer lists and braces
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_delete_deprecated_functions.md b/docs/mkdocs/docs/api/macros/json_delete_deprecated_functions.md
index bae89d52a..122f40116 100644
--- a/docs/mkdocs/docs/api/macros/json_delete_deprecated_functions.md
+++ b/docs/mkdocs/docs/api/macros/json_delete_deprecated_functions.md
@@ -88,6 +88,8 @@ The default value is `0` (disabled, the deprecated functions can still be called
deprecated functions and the version they were deprecated in
- [Migration guide: replace deprecated functions](../../integration/migration_guide.md#replace-deprecated-functions) -
how to replace each deprecated function
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [CMake](../../integration/cmake.md) - the corresponding CMake option
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_diagnostic_positions.md b/docs/mkdocs/docs/api/macros/json_diagnostic_positions.md
index 486f3f34e..56886ba86 100644
--- a/docs/mkdocs/docs/api/macros/json_diagnostic_positions.md
+++ b/docs/mkdocs/docs/api/macros/json_diagnostic_positions.md
@@ -112,7 +112,8 @@ When the macro is not defined, the library will define it to its default value.
## See also
- [:simple-cmake: JSON_Diagnostic_Positions](../../integration/cmake.md#json_diagnostic_positions) - CMake option to control the macro
-- [JSON_DIAGNOSTICS](json_diagnostics.md) - macro to control extended diagnostics
+- [`JSON_DIAGNOSTICS`](json_diagnostics.md) - macro to control extended diagnostics
+- [Parsing and Exceptions](../../features/parsing/parse_exceptions.md) - handling parse errors and locating them in the input
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_diagnostics.md b/docs/mkdocs/docs/api/macros/json_diagnostics.md
index c68b4380b..a900574d6 100644
--- a/docs/mkdocs/docs/api/macros/json_diagnostics.md
+++ b/docs/mkdocs/docs/api/macros/json_diagnostics.md
@@ -87,7 +87,11 @@ When the macro is not defined, the library will define it to its default value.
## See also
- [:simple-cmake: JSON_Diagnostics](../../integration/cmake.md#json_diagnostics) - CMake option to control the macro
-- [JSON_DIAGNOSTIC_POSITIONS](json_diagnostic_positions.md) - macro to access positions of elements
+- [`JSON_DIAGNOSTIC_POSITIONS`](json_diagnostic_positions.md) - macro to access positions of elements
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Exceptions: extended diagnostic messages](../../home/exceptions.md#extended-diagnostic-messages) - how extended diagnostics change the messages
+- [Debugging](../../home/debugging.md) - debugging aids
+- [`exception`](../basic_json/exception.md) - base class of all exceptions thrown by the library
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_disable_enum_serialization.md b/docs/mkdocs/docs/api/macros/json_disable_enum_serialization.md
index a0024d81a..297815e7b 100644
--- a/docs/mkdocs/docs/api/macros/json_disable_enum_serialization.md
+++ b/docs/mkdocs/docs/api/macros/json_disable_enum_serialization.md
@@ -147,6 +147,7 @@ The default value is `0`.
- [:simple-cmake: JSON_DisableEnumSerialization](../../integration/cmake.md#json_disableenumserialization) - CMake option to control
the macro
- [`NLOHMANN_JSON_SERIALIZE_ENUM`](nlohmann_json_serialize_enum.md) - serialize/deserialize an enum
+- [Specializing enum conversion](../../features/enum_conversion.md) - map enums to JSON strings instead of integers
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_disable_stream_bulk_scan.md b/docs/mkdocs/docs/api/macros/json_disable_stream_bulk_scan.md
index 6b45a0056..7befb6cde 100644
--- a/docs/mkdocs/docs/api/macros/json_disable_stream_bulk_scan.md
+++ b/docs/mkdocs/docs/api/macros/json_disable_stream_bulk_scan.md
@@ -130,14 +130,16 @@ The default value is `0`: streams are scanned in bulk.
## See also
-- [**parse**](../basic_json/parse.md) - deserialize from a compatible input
-- [**operator>>**](../operator_gtgt.md) - deserialize from stream
-- [**sax_parse**](../basic_json/sax_parse.md) - generate SAX events
-- [**JSON_PRECISE_STREAM_POSITION**](json_precise_stream_position.md) - leave an input stream positioned right after a
+- [`parse`](../basic_json/parse.md) - deserialize from a compatible input
+- [`operator>>`](../operator_gtgt.md) - deserialize from stream
+- [`sax_parse`](../basic_json/sax_parse.md) - generate SAX events
+- [`JSON_PRECISE_STREAM_POSITION`](json_precise_stream_position.md) - leave an input stream positioned right after a
parsed number
-- [**JSON_DISABLE_UNLOCKED_FILE_IO**](json_disable_unlocked_file_io.md) - read a `FILE*` with the locking stdio
+- [`JSON_DISABLE_UNLOCKED_FILE_IO`](json_disable_unlocked_file_io.md) - read a `FILE*` with the locking stdio
functions
-- [Parsing: input sources and performance](../../features/parsing/index.md#input-sources-and-performance)
+- [Parsing: input sources and performance](../../features/parsing/index.md#input-sources-and-performance) - how input
+ sources affect parsing performance
+- [Large, Streamed, and Partial Input](../../features/parsing/large_and_partial_input.md) - chunked, concatenated, and very large input
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_disable_tuple_reference_conversion.md b/docs/mkdocs/docs/api/macros/json_disable_tuple_reference_conversion.md
index 6d3aa003b..94accb1e8 100644
--- a/docs/mkdocs/docs/api/macros/json_disable_tuple_reference_conversion.md
+++ b/docs/mkdocs/docs/api/macros/json_disable_tuple_reference_conversion.md
@@ -105,9 +105,11 @@ The default value is `0` (disabled — existing behavior is preserved).
## See also
-- [**basic_json(CompatibleType&&)**](../basic_json/basic_json.md) - the affected constructor
+- [`basic_json(CompatibleType&&)`](../basic_json/basic_json.md) - the affected constructor
- [:simple-cmake: JSON_DisableTupleReferenceConversion](../../integration/cmake.md#json_disabletuplereferenceconversion) -
CMake option to control the macro
+- [Converting values](../../features/conversions.md) - getting values out
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - converting your own types
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_disable_unlocked_file_io.md b/docs/mkdocs/docs/api/macros/json_disable_unlocked_file_io.md
index f0aa40b65..2c266ba2d 100644
--- a/docs/mkdocs/docs/api/macros/json_disable_unlocked_file_io.md
+++ b/docs/mkdocs/docs/api/macros/json_disable_unlocked_file_io.md
@@ -104,11 +104,13 @@ The default value is `0`: the file is locked once and read with the unlocked std
## See also
-- [**parse**](../basic_json/parse.md) - deserialize from a compatible input
-- [**sax_parse**](../basic_json/sax_parse.md) - generate SAX events
-- [**JSON_DISABLE_STREAM_BULK_SCAN**](json_disable_stream_bulk_scan.md) - read a `std::istream` one character at a
+- [`parse`](../basic_json/parse.md) - deserialize from a compatible input
+- [`sax_parse`](../basic_json/sax_parse.md) - generate SAX events
+- [`JSON_DISABLE_STREAM_BULK_SCAN`](json_disable_stream_bulk_scan.md) - read a `std::istream` one character at a
time
-- [Parsing: input sources and performance](../../features/parsing/index.md#input-sources-and-performance)
+- [Parsing: input sources and performance](../../features/parsing/index.md#input-sources-and-performance) - how input
+ sources affect parsing performance
+- [Large, Streamed, and Partial Input](../../features/parsing/large_and_partial_input.md) - chunked, concatenated, and very large input
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_has_cpp_11.md b/docs/mkdocs/docs/api/macros/json_has_cpp_11.md
index f32fe0277..a2c20900b 100644
--- a/docs/mkdocs/docs/api/macros/json_has_cpp_11.md
+++ b/docs/mkdocs/docs/api/macros/json_has_cpp_11.md
@@ -42,10 +42,11 @@ The default value is detected based on preprocessor macros such as `#!cpp __cplu
## See also
-- [JSON_HAS_FILESYSTEM / JSON_HAS_EXPERIMENTAL_FILESYSTEM](json_has_filesystem.md) - control `std::filesystem` support
-- [JSON_HAS_RANGES](json_has_ranges.md) - control `std::ranges` support
-- [JSON_HAS_THREE_WAY_COMPARISON](json_has_three_way_comparison.md) - control 3-way comparison support
-- [JSON_HAS_STD_FORMAT](json_has_std_format.md) - control `std::format`/`std::formatter` support
+- [`JSON_HAS_FILESYSTEM` / `JSON_HAS_EXPERIMENTAL_FILESYSTEM`](json_has_filesystem.md) - control `std::filesystem` support
+- [`JSON_HAS_RANGES`](json_has_ranges.md) - control `std::ranges` support
+- [`JSON_HAS_THREE_WAY_COMPARISON`](json_has_three_way_comparison.md) - control 3-way comparison support
+- [`JSON_HAS_STD_FORMAT`](json_has_std_format.md) - control `std::format`/`std::formatter` support
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_has_filesystem.md b/docs/mkdocs/docs/api/macros/json_has_filesystem.md
index fe843e5c1..1e0255ffa 100644
--- a/docs/mkdocs/docs/api/macros/json_has_filesystem.md
+++ b/docs/mkdocs/docs/api/macros/json_has_filesystem.md
@@ -54,8 +54,10 @@ The default value is detected based on the preprocessor macros `#!cpp __cpp_lib_
## See also
-- [JSON_HAS_CPP_11 / JSON_HAS_CPP_14 / JSON_HAS_CPP_17 / JSON_HAS_CPP_20 / JSON_HAS_CPP_23 /
- JSON_HAS_CPP_26](json_has_cpp_11.md) - set supported C++ standard
+- [`JSON_HAS_CPP_11` / `JSON_HAS_CPP_14` / `JSON_HAS_CPP_17` / `JSON_HAS_CPP_20` / `JSON_HAS_CPP_23` /
+ `JSON_HAS_CPP_26`](json_has_cpp_11.md) - set supported C++ standard
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Converting values](../../features/conversions.md) - conversions of values
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_has_range_view_conversion.md b/docs/mkdocs/docs/api/macros/json_has_range_view_conversion.md
index 6392170c9..5aa3059dc 100644
--- a/docs/mkdocs/docs/api/macros/json_has_range_view_conversion.md
+++ b/docs/mkdocs/docs/api/macros/json_has_range_view_conversion.md
@@ -35,7 +35,7 @@ When the macro is not defined, the library will define it to its default value.
## See also
-- [JSON_HAS_RANGES](json_has_ranges.md) - control `std::ranges` support
+- [`JSON_HAS_RANGES`](json_has_ranges.md) - control `std::ranges` support
- [Constructing from a C++20 range view](../../features/conversions.md#putting-values-in) - usage of the feature
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_has_ranges.md b/docs/mkdocs/docs/api/macros/json_has_ranges.md
index b22e816ad..a8864fb27 100644
--- a/docs/mkdocs/docs/api/macros/json_has_ranges.md
+++ b/docs/mkdocs/docs/api/macros/json_has_ranges.md
@@ -42,11 +42,12 @@ When the macro is not defined, the library will define it to its default value.
## See also
-- [JSON_HAS_CPP_11 / JSON_HAS_CPP_14 / JSON_HAS_CPP_17 / JSON_HAS_CPP_20 / JSON_HAS_CPP_23 /
- JSON_HAS_CPP_26](json_has_cpp_11.md) - set supported C++ standard
-- [JSON_HAS_RANGE_VIEW_CONVERSION](json_has_range_view_conversion.md) - control construction from `std::ranges` views
-- [JSON_HAS_STD_FORMAT](json_has_std_format.md) - a similar feature-detection macro, for `std::format`/`std::formatter`
+- [`JSON_HAS_CPP_11` / `JSON_HAS_CPP_14` / `JSON_HAS_CPP_17` / `JSON_HAS_CPP_20` / `JSON_HAS_CPP_23` /
+ `JSON_HAS_CPP_26`](json_has_cpp_11.md) - set supported C++ standard
+- [`JSON_HAS_RANGE_VIEW_CONVERSION`](json_has_range_view_conversion.md) - control construction from `std::ranges` views
+- [`JSON_HAS_STD_FORMAT`](json_has_std_format.md) - a similar feature-detection macro, for `std::format`/`std::formatter`
support
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_has_static_rtti.md b/docs/mkdocs/docs/api/macros/json_has_static_rtti.md
index a44a7c224..cf5ca4068 100644
--- a/docs/mkdocs/docs/api/macros/json_has_static_rtti.md
+++ b/docs/mkdocs/docs/api/macros/json_has_static_rtti.md
@@ -28,8 +28,10 @@ When the macro is not defined, the library will define it to its default value.
## See also
-- [**operator ValueType**](../basic_json/operator_ValueType.md) - get a value (implicit); on C++17, this macro
+- [`operator ValueType`](../basic_json/operator_ValueType.md) - get a value (implicit); on C++17, this macro
controls whether `std::any` is excluded from its candidate types
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Converting values](../../features/conversions.md) - conversions of values
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_has_std_format.md b/docs/mkdocs/docs/api/macros/json_has_std_format.md
index 0691fe3cd..a4a262fe8 100644
--- a/docs/mkdocs/docs/api/macros/json_has_std_format.md
+++ b/docs/mkdocs/docs/api/macros/json_has_std_format.md
@@ -39,6 +39,8 @@ When the macro is not defined, the library will define it to its default value.
## See also
- [`std::formatter`](../basic_json/std_formatter.md) - format JSON values with `std::format`
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Serialization](../../features/serialization.md) - serialize values to text
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_has_three_way_comparison.md b/docs/mkdocs/docs/api/macros/json_has_three_way_comparison.md
index a1c2cdb58..5876f9982 100644
--- a/docs/mkdocs/docs/api/macros/json_has_three_way_comparison.md
+++ b/docs/mkdocs/docs/api/macros/json_has_three_way_comparison.md
@@ -29,8 +29,8 @@ When the macro is not defined, the library will define it to its default value.
## See also
-- [**operator<=>**](../basic_json/operator_spaceship.md) - 3-way compare JSON values
-- [**operator==**](../json_pointer/operator_eq.md) - compare JSON pointers for equality
+- [`operator<=>`](../basic_json/operator_spaceship.md) - 3-way compare JSON values
+- [`operator==`](../json_pointer/operator_eq.md) - compare JSON pointers for equality
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_no_automatic_udls.md b/docs/mkdocs/docs/api/macros/json_no_automatic_udls.md
index 1235d634d..9b8a0e8b5 100644
--- a/docs/mkdocs/docs/api/macros/json_no_automatic_udls.md
+++ b/docs/mkdocs/docs/api/macros/json_no_automatic_udls.md
@@ -59,10 +59,11 @@ By default, `#!cpp JSON_NO_AUTOMATIC_UDLS` is not defined, and `>**](../operator_gtgt.md) - deserialize from stream
+- [`operator<<`](../operator_ltlt.md) - serialize to stream
+- [`operator>>`](../operator_gtgt.md) - deserialize from stream
+- [Serialization](../../features/serialization.md) - pretty-printing, UTF-8 handling, and number output
+- [Parsing](../../features/parsing/index.md) - overview of the parsing functions
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_no_simd.md b/docs/mkdocs/docs/api/macros/json_no_simd.md
index 9c92fcc1d..824cd4c22 100644
--- a/docs/mkdocs/docs/api/macros/json_no_simd.md
+++ b/docs/mkdocs/docs/api/macros/json_no_simd.md
@@ -72,11 +72,13 @@ By default, `#!cpp JSON_NO_SIMD` is not defined, and vector instructions are use
## See also
-- [**parse**](../basic_json/parse.md) - deserialize from a compatible input
-- [**dump**](../basic_json/dump.md) - serialization
-- [**JSON_USE_SIMDUTF**](json_use_simdutf.md) - use the simdutf library to accelerate UTF-8 validation
-- [**JSON_DISABLE_STREAM_BULK_SCAN**](json_disable_stream_bulk_scan.md) - read a `std::istream` one character at a time
-- [Parsing: input sources and performance](../../features/parsing/index.md#input-sources-and-performance)
+- [`parse`](../basic_json/parse.md) - deserialize from a compatible input
+- [`dump`](../basic_json/dump.md) - serialization
+- [`JSON_USE_SIMDUTF`](json_use_simdutf.md) - use the simdutf library to accelerate UTF-8 validation
+- [`JSON_DISABLE_STREAM_BULK_SCAN`](json_disable_stream_bulk_scan.md) - read a `std::istream` one character at a time
+- [Parsing: input sources and performance](../../features/parsing/index.md#input-sources-and-performance) - how input
+ sources affect parsing performance
+- [Serialization](../../features/serialization.md) - pretty-printing, UTF-8 handling, and number output
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_no_thread_local.md b/docs/mkdocs/docs/api/macros/json_no_thread_local.md
index f4fb28dbb..400d8fab7 100644
--- a/docs/mkdocs/docs/api/macros/json_no_thread_local.md
+++ b/docs/mkdocs/docs/api/macros/json_no_thread_local.md
@@ -45,7 +45,8 @@ Copying and comparing fall back to working without the call stack there, as they
## See also
-- [FAQ: Thread safety](../../home/faq.md#thread-safety)
+- [FAQ: Thread safety](../../home/faq.md#thread-safety) - thread-safety guarantees of the library
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_noexception.md b/docs/mkdocs/docs/api/macros/json_noexception.md
index c801b8567..69af6b740 100644
--- a/docs/mkdocs/docs/api/macros/json_noexception.md
+++ b/docs/mkdocs/docs/api/macros/json_noexception.md
@@ -38,7 +38,12 @@ available for MSVC if exceptions are disabled, see [#2824](https://github.com/nl
## See also
-- [Switch off exceptions](../../home/exceptions.md#switch-off-exceptions) for more information how to switch off exceptions
+- [Switch off exceptions](../../home/exceptions.md#switch-off-exceptions) - more information how to switch off
+ exceptions
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Working Without Exceptions](../../features/no_exceptions.md) - using the library without exceptions
+- [Exceptions](../../home/exceptions.md) - all exceptions and their error codes
+- [`exception`](../basic_json/exception.md) - base class of all exceptions thrown by the library
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_precise_stream_position.md b/docs/mkdocs/docs/api/macros/json_precise_stream_position.md
index f641a737a..2292ef36c 100644
--- a/docs/mkdocs/docs/api/macros/json_precise_stream_position.md
+++ b/docs/mkdocs/docs/api/macros/json_precise_stream_position.md
@@ -128,8 +128,9 @@ The default value is `0` (disabled — existing behavior is preserved).
## See also
-- [**operator>>**](../operator_gtgt.md) - deserialize from stream
-- [**sax_parse**](../basic_json/sax_parse.md) - generate SAX events
+- [`operator>>`](../operator_gtgt.md) - deserialize from stream
+- [`sax_parse`](../basic_json/sax_parse.md) - generate SAX events
+- [Large, Streamed, and Partial Input](../../features/parsing/large_and_partial_input.md) - chunked, concatenated, and very large input
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_skip_library_version_check.md b/docs/mkdocs/docs/api/macros/json_skip_library_version_check.md
index 88f272334..271d2c596 100644
--- a/docs/mkdocs/docs/api/macros/json_skip_library_version_check.md
+++ b/docs/mkdocs/docs/api/macros/json_skip_library_version_check.md
@@ -45,8 +45,10 @@ By default, the macro is not defined.
## See also
-- [NLOHMANN_JSON_VERSION_MAJOR, NLOHMANN_JSON_VERSION_MINOR,
- NLOHMANN_JSON_VERSION_PATCH](nlohmann_json_version_major.md) - library version information
+- [`NLOHMANN_JSON_VERSION_MAJOR` / `NLOHMANN_JSON_VERSION_MINOR` /
+ `NLOHMANN_JSON_VERSION_PATCH`](nlohmann_json_version_major.md) - library version information
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Integration](../../integration/index.md) - integrate the library
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_skip_unsupported_compiler_check.md b/docs/mkdocs/docs/api/macros/json_skip_unsupported_compiler_check.md
index f5702a454..63f156385 100644
--- a/docs/mkdocs/docs/api/macros/json_skip_unsupported_compiler_check.md
+++ b/docs/mkdocs/docs/api/macros/json_skip_unsupported_compiler_check.md
@@ -30,8 +30,10 @@ By default, the macro is not defined.
## See also
-- [JSON_HAS_CPP_11 / JSON_HAS_CPP_14 / JSON_HAS_CPP_17 / JSON_HAS_CPP_20 / JSON_HAS_CPP_23 /
- JSON_HAS_CPP_26](json_has_cpp_11.md) - set supported C++ standard
+- [`JSON_HAS_CPP_11` / `JSON_HAS_CPP_14` / `JSON_HAS_CPP_17` / `JSON_HAS_CPP_20` / `JSON_HAS_CPP_23` /
+ `JSON_HAS_CPP_26`](json_has_cpp_11.md) - set supported C++ standard
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Integration](../../integration/index.md) - integrate the library
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_strict_binary_utf8.md b/docs/mkdocs/docs/api/macros/json_strict_binary_utf8.md
index dadcb5fbe..8421801aa 100644
--- a/docs/mkdocs/docs/api/macros/json_strict_binary_utf8.md
+++ b/docs/mkdocs/docs/api/macros/json_strict_binary_utf8.md
@@ -92,11 +92,13 @@ The default value is `0` (disabled, the behavior of version 3.12.0 and earlier i
## See also
-- [**to_cbor**](../basic_json/to_cbor.md) - create a CBOR serialization of a JSON value
-- [**to_ubjson**](../basic_json/to_ubjson.md) - create a UBJSON serialization of a JSON value
-- [**to_bjdata**](../basic_json/to_bjdata.md) - create a BJData serialization of a JSON value
-- [**to_bson**](../basic_json/to_bson.md) - create a BSON serialization of a JSON value
-- [**error_handler_t**](../basic_json/error_handler_t.md) - how [`dump`](../basic_json/dump.md) treats ill-formed UTF-8
+- [Binary formats](../../features/binary_formats/index.md) - overview of the supported binary formats
+- [`from_cbor`](../basic_json/from_cbor.md) - also affected when parsing CBOR strings
+- [`to_cbor`](../basic_json/to_cbor.md) - create a CBOR serialization of a JSON value
+- [`to_ubjson`](../basic_json/to_ubjson.md) - create a UBJSON serialization of a JSON value
+- [`to_bjdata`](../basic_json/to_bjdata.md) - create a BJData serialization of a JSON value
+- [`to_bson`](../basic_json/to_bson.md) - create a BSON serialization of a JSON value
+- [`error_handler_t`](../basic_json/error_handler_t.md) - how [`dump`](../basic_json/dump.md) treats ill-formed UTF-8
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_strict_nul_handling.md b/docs/mkdocs/docs/api/macros/json_strict_nul_handling.md
index 806246053..044893aa3 100644
--- a/docs/mkdocs/docs/api/macros/json_strict_nul_handling.md
+++ b/docs/mkdocs/docs/api/macros/json_strict_nul_handling.md
@@ -125,10 +125,11 @@ The default value is `0` (disabled — existing behavior is preserved).
## See also
- [:simple-cmake: JSON_StrictNulHandling](../../integration/cmake.md#json_strictnulhandling) - CMake option to control the macro
-- [FAQ: NUL bytes in the input](../../home/faq.md#nul-bytes-in-the-input)
-- [**parse**](../basic_json/parse.md) - deserialize from a compatible input
-- [**accept**](../basic_json/accept.md) - check if the input is valid JSON
-- [**operator>>**](../operator_gtgt.md) - deserialize from stream
+- [FAQ: NUL bytes in the input](../../home/faq.md#nul-bytes-in-the-input) - how NUL bytes in the input are handled
+- [`parse`](../basic_json/parse.md) - deserialize from a compatible input
+- [`accept`](../basic_json/accept.md) - check if the input is valid JSON
+- [`operator>>`](../operator_gtgt.md) - deserialize from stream
+- [Parsing Untrusted Input](../../features/parsing/untrusted_input.md) - limits and checks for input you do not control
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_throw_user.md b/docs/mkdocs/docs/api/macros/json_throw_user.md
index 7f4fb6a8d..994a57cea 100644
--- a/docs/mkdocs/docs/api/macros/json_throw_user.md
+++ b/docs/mkdocs/docs/api/macros/json_throw_user.md
@@ -69,8 +69,12 @@ replaced by calling [`std::abort`](https://en.cppreference.com/w/cpp/utility/pro
## See also
-- [Switch off exceptions](../../home/exceptions.md#switch-off-exceptions) for more information how to switch off exceptions
-- [JSON_NOEXCEPTION](json_noexception.md) - switch off exceptions
+- [Switch off exceptions](../../home/exceptions.md#switch-off-exceptions) - more information how to switch off
+ exceptions
+- [`JSON_NOEXCEPTION`](json_noexception.md) - switch off exceptions
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Working Without Exceptions](../../features/no_exceptions.md) - using the library without exceptions
+- [`exception`](../basic_json/exception.md) - base class of all exceptions thrown by the library
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_use_global_udls.md b/docs/mkdocs/docs/api/macros/json_use_global_udls.md
index 6b1c2c7d8..192aec31b 100644
--- a/docs/mkdocs/docs/api/macros/json_use_global_udls.md
+++ b/docs/mkdocs/docs/api/macros/json_use_global_udls.md
@@ -97,10 +97,11 @@ When the macro is not defined, the library behaves as if it were defined to its
## See also
-- [`operator""_json`](../operator_literal_json.md)
-- [`operator""_json_pointer`](../operator_literal_json_pointer.md)
+- [`operator""_json`](../operator_literal_json.md) - user-defined string literal for JSON values
+- [`operator""_json_pointer`](../operator_literal_json_pointer.md) - user-defined string literal for JSON pointers
- [`JSON_NO_AUTOMATIC_UDLS`](json_no_automatic_udls.md) - do not include the user-defined string literals automatically
- [:simple-cmake: JSON_GlobalUDLs](../../integration/cmake.md#json_globaludls) - CMake option to control the macro
+- [Creating JSON values](../../features/creating_values.md) - the article on creating JSON values
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_use_implicit_conversions.md b/docs/mkdocs/docs/api/macros/json_use_implicit_conversions.md
index 2e7781378..a1942a533 100644
--- a/docs/mkdocs/docs/api/macros/json_use_implicit_conversions.md
+++ b/docs/mkdocs/docs/api/macros/json_use_implicit_conversions.md
@@ -82,9 +82,10 @@ By default, implicit conversions are enabled.
## See also
-- [**operator ValueType**](../basic_json/operator_ValueType.md) - get a value (implicit)
-- [**get**](../basic_json/get.md) - get a value (explicit)
+- [`operator ValueType`](../basic_json/operator_ValueType.md) - get a value (implicit)
+- [`get`](../basic_json/get.md) - get a value (explicit)
- [:simple-cmake: JSON_ImplicitConversions](../../integration/cmake.md#json_implicitconversions) - CMake option to control the macro
+- [Converting values](../../features/conversions.md) - implicit conversions and how to disable them
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_use_objects_for_enum_keyed_maps.md b/docs/mkdocs/docs/api/macros/json_use_objects_for_enum_keyed_maps.md
index 8fdf47982..7cba42ef2 100644
--- a/docs/mkdocs/docs/api/macros/json_use_objects_for_enum_keyed_maps.md
+++ b/docs/mkdocs/docs/api/macros/json_use_objects_for_enum_keyed_maps.md
@@ -129,9 +129,9 @@ The default value is `0` (disabled — existing behavior is preserved).
## See also
-- [Specializing enum conversion](../../features/enum_conversion.md)
-- [**NLOHMANN_JSON_SERIALIZE_ENUM**](nlohmann_json_serialize_enum.md) - serialize/deserialize an enum
-- [**NLOHMANN_JSON_SERIALIZE_ENUM_STRICT**](nlohmann_json_serialize_enum_strict.md) - serialize/deserialize an enum with
+- [Specializing enum conversion](../../features/enum_conversion.md) - serializing enums as JSON strings
+- [`NLOHMANN_JSON_SERIALIZE_ENUM`](nlohmann_json_serialize_enum.md) - serialize/deserialize an enum
+- [`NLOHMANN_JSON_SERIALIZE_ENUM_STRICT`](nlohmann_json_serialize_enum_strict.md) - serialize/deserialize an enum with
exceptions
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_use_simdutf.md b/docs/mkdocs/docs/api/macros/json_use_simdutf.md
index 5502a77f9..86edf5b8d 100644
--- a/docs/mkdocs/docs/api/macros/json_use_simdutf.md
+++ b/docs/mkdocs/docs/api/macros/json_use_simdutf.md
@@ -73,6 +73,8 @@ By default, `#!cpp JSON_USE_SIMDUTF` is not defined and the portable C++11 scala
- [:simple-cmake: JSON_TestSimdutf](../../integration/cmake.md#json_testsimdutf) - CMake option to build the unit
tests against the simdutf backend
+- [Parsing](../../features/parsing/index.md) - overview of the parsing functions
+- [Serialization](../../features/serialization.md) - pretty-printing, UTF-8 handling, and number output
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_view_no_simd.md b/docs/mkdocs/docs/api/macros/json_view_no_simd.md
index 6ef59605c..8180b0cf0 100644
--- a/docs/mkdocs/docs/api/macros/json_view_no_simd.md
+++ b/docs/mkdocs/docs/api/macros/json_view_no_simd.md
@@ -44,7 +44,7 @@ By default, `#!cpp JSON_VIEW_NO_SIMD` is not defined, and the vector code is use
## See also
-- [JSON_VIEW_USE_SSSE3](json_view_use_ssse3.md) - validate non-ASCII strings with SSSE3 on x86-64
+- [`JSON_VIEW_USE_SSSE3`](json_view_use_ssse3.md) - validate non-ASCII strings with SSSE3 on x86-64
- [json_view](../../features/json_view.md) - the zero-copy view
## Version history
diff --git a/docs/mkdocs/docs/api/macros/json_view_use_ssse3.md b/docs/mkdocs/docs/api/macros/json_view_use_ssse3.md
index 6ac80b012..15a2f71c9 100644
--- a/docs/mkdocs/docs/api/macros/json_view_use_ssse3.md
+++ b/docs/mkdocs/docs/api/macros/json_view_use_ssse3.md
@@ -45,8 +45,9 @@ By default, `#!cpp JSON_VIEW_USE_SSSE3` is not defined.
## See also
-- [JSON_VIEW_NO_SIMD](json_view_no_simd.md) - use only portable code in the view's parser
-- [JSON_USE_SIMDUTF](json_use_simdutf.md) - validate UTF-8 with simdutf in `basic_json`'s parser
+- [`JSON_VIEW_NO_SIMD`](json_view_no_simd.md) - use only portable code in the view's parser
+- [`JSON_USE_SIMDUTF`](json_use_simdutf.md) - validate UTF-8 with simdutf in `basic_json`'s parser
+- [Zero-copy JSON views](../../features/json_view.md) - how to parse, inspect and edit a document without building a tree
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_define_derived_type.md b/docs/mkdocs/docs/api/macros/nlohmann_define_derived_type.md
index c539e77a0..d30c62733 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_define_derived_type.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_define_derived_type.md
@@ -174,13 +174,14 @@ void to_json(BasicJsonType& j, const B& b) {
## See also
-- [NLOHMANN_DEFINE_TYPE_INTRUSIVE / NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT /
- NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_type_intrusive.md)
- for similar macros that can be defined _inside_ a non-derived type.
-- [NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE / NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT /
- NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_type_non_intrusive.md)
- for similar macros that can be defined _outside_ a non-derived type.
-- [Arbitrary Type Conversions](../../features/arbitrary_types.md) for an overview.
+- [`NLOHMANN_DEFINE_TYPE_INTRUSIVE` / `NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_type_intrusive.md) - similar macros that can be
+ defined _inside_ a non-derived type
+- [`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE` / `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_type_non_intrusive.md) - similar macros that can
+ be defined _outside_ a non-derived type
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - overview of the supported conversions
+- [Recipes for Common Types](../../features/type_recipes.md) - class hierarchies
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_define_type_intrusive.md b/docs/mkdocs/docs/api/macros/nlohmann_define_type_intrusive.md
index dab5c7070..66af2fd19 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_define_type_intrusive.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_define_type_intrusive.md
@@ -171,15 +171,15 @@ See the examples below for the concrete generated code.
## See also
-- [NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_type_non_intrusive.md)
- for a similar macro that can be defined _outside_ the type.
-- [NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE,
- NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_derived_type.md) for similar macros for
+- [`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE` / `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_type_non_intrusive.md) - a similar macro that can
+ be defined _outside_ the type
+- [`NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE` / `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE` / `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_derived_type.md) - similar macros for
derived types
-- [Arbitrary Type Conversions](../../features/arbitrary_types.md) for an overview.
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - overview of the supported conversions
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_define_type_non_intrusive.md b/docs/mkdocs/docs/api/macros/nlohmann_define_type_non_intrusive.md
index 07d0166d0..78fe9aef6 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_define_type_non_intrusive.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_define_type_non_intrusive.md
@@ -170,15 +170,15 @@ See the examples below for the concrete generated code.
## See also
-- [NLOHMANN_DEFINE_TYPE_INTRUSIVE, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_type_intrusive.md)
- for a similar macro that can be defined _inside_ the type.
-- [NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE,
- NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_derived_type.md) for similar macros for
+- [`NLOHMANN_DEFINE_TYPE_INTRUSIVE` / `NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_type_intrusive.md) - a similar macro that can be
+ defined _inside_ the type
+- [`NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE` / `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE` / `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_derived_type.md) - similar macros for
derived types
-- [Arbitrary Type Conversions](../../features/arbitrary_types.md) for an overview.
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - overview of the supported conversions
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_define_type_with_names.md b/docs/mkdocs/docs/api/macros/nlohmann_define_type_with_names.md
index 9ee23c6dd..580305d6a 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_define_type_with_names.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_define_type_with_names.md
@@ -75,16 +75,16 @@ For further information please refer to the corresponding macros without `WITH_N
## See also
-- [NLOHMANN_DEFINE_TYPE_INTRUSIVE, NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_type_intrusive.md) - the macros these variants add
+- [`NLOHMANN_DEFINE_TYPE_INTRUSIVE` / `NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_type_intrusive.md) - the macros these variants add
custom JSON key names to
-- [NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE, NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_type_non_intrusive.md) - the macros these
+- [`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE` / `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_type_non_intrusive.md) - the macros these
variants add custom JSON key names to
-- [NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE, NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE, NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE,
- NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT,
- NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE](nlohmann_define_derived_type.md) - similar macros for
+- [`NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE` / `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE` / `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT` /
+ `NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE`](nlohmann_define_derived_type.md) - similar macros for
derived types, also available with custom names
- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - overview of type conversion mechanisms
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_json_namespace.md b/docs/mkdocs/docs/api/macros/nlohmann_json_namespace.md
index 42ee51f38..97f3575ac 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_json_namespace.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_json_namespace.md
@@ -33,8 +33,11 @@ the library.
## See also
-- [`NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END`](nlohmann_json_namespace_begin.md)
-- [`NLOHMANN_JSON_NAMESPACE_NO_VERSION`](nlohmann_json_namespace_no_version.md)
+- [`NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END`](nlohmann_json_namespace_begin.md) - macros to open and
+ close the library namespace
+- [`NLOHMANN_JSON_NAMESPACE_NO_VERSION`](nlohmann_json_namespace_no_version.md) - disable the inline versioned namespace
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [`nlohmann` Namespace](../../features/namespace.md) - the library namespace
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_json_namespace_begin.md b/docs/mkdocs/docs/api/macros/nlohmann_json_namespace_begin.md
index 00911fb89..094c00ab9 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_json_namespace_begin.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_json_namespace_begin.md
@@ -52,9 +52,10 @@ When these macros are not defined, the library will define them to their default
## See also
-- [`nlohmann` Namespace](../../features/namespace.md)
-- [NLOHMANN_JSON_NAMESPACE](nlohmann_json_namespace.md)
-- [`NLOHMANN_JSON_NAMESPACE_NO_VERSION`](nlohmann_json_namespace_no_version.md)
+- [`nlohmann` Namespace](../../features/namespace.md) - how the library's namespace is defined and versioned
+- [`NLOHMANN_JSON_NAMESPACE`](nlohmann_json_namespace.md) - macro expanding to the library namespace
+- [`NLOHMANN_JSON_NAMESPACE_NO_VERSION`](nlohmann_json_namespace_no_version.md) - disable the inline versioned namespace
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_json_namespace_no_version.md b/docs/mkdocs/docs/api/macros/nlohmann_json_namespace_no_version.md
index 9e2a52d04..a4ac0b50d 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_json_namespace_no_version.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_json_namespace_no_version.md
@@ -36,9 +36,11 @@ When the macro is not defined, the library will define it to its default value.
## See also
-- [`nlohmann` Namespace](../../features/namespace.md)
-- [`NLOHMANN_JSON_NAMESPACE`](nlohmann_json_namespace.md)
-- [`NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END`](nlohmann_json_namespace_begin.md)
+- [`nlohmann` Namespace](../../features/namespace.md) - how the library's namespace is defined and versioned
+- [`NLOHMANN_JSON_NAMESPACE`](nlohmann_json_namespace.md) - macro expanding to the library namespace
+- [`NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END`](nlohmann_json_namespace_begin.md) - macros to open and
+ close the library namespace
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_json_serialize_enum.md b/docs/mkdocs/docs/api/macros/nlohmann_json_serialize_enum.md
index 4af3b07b8..2c94efb57 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_json_serialize_enum.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_json_serialize_enum.md
@@ -80,10 +80,12 @@ inline void from_json(const BasicJsonType& j, type& e);
## See also
-- [Specializing enum conversion](../../features/enum_conversion.md)
-- [`NLOHMANN_JSON_SERIALIZE_ENUM_STRICT`](./nlohmann_json_serialize_enum_strict.md)
-- [`JSON_DISABLE_ENUM_SERIALIZATION`](json_disable_enum_serialization.md)
-- [`JSON_USE_OBJECTS_FOR_ENUM_KEYED_MAPS`](json_use_objects_for_enum_keyed_maps.md)
+- [Specializing enum conversion](../../features/enum_conversion.md) - serializing enums as JSON strings
+- [`NLOHMANN_JSON_SERIALIZE_ENUM_STRICT`](./nlohmann_json_serialize_enum_strict.md) - strict variant that throws on
+ unmapped values
+- [`JSON_DISABLE_ENUM_SERIALIZATION`](json_disable_enum_serialization.md) - disable the default enum conversion
+- [`JSON_USE_OBJECTS_FOR_ENUM_KEYED_MAPS`](json_use_objects_for_enum_keyed_maps.md) - serialize maps with enum keys as
+ objects
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_json_serialize_enum_strict.md b/docs/mkdocs/docs/api/macros/nlohmann_json_serialize_enum_strict.md
index f5806a490..395ec646d 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_json_serialize_enum_strict.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_json_serialize_enum_strict.md
@@ -99,10 +99,13 @@ inline void from_json(const BasicJsonType& j, type& e);
## See also
-- [Specializing enum conversion](../../features/enum_conversion.md)
-- [`NLOHMANN_JSON_SERIALIZE_ENUM`](./nlohmann_json_serialize_enum.md)
-- [`JSON_DISABLE_ENUM_SERIALIZATION`](json_disable_enum_serialization.md)
-- [`JSON_USE_OBJECTS_FOR_ENUM_KEYED_MAPS`](json_use_objects_for_enum_keyed_maps.md)
+- [Specializing enum conversion](../../features/enum_conversion.md) - serializing enums as JSON strings
+- [`NLOHMANN_JSON_SERIALIZE_ENUM`](./nlohmann_json_serialize_enum.md) - non-strict variant that uses the first mapping
+ as default
+- [`JSON_DISABLE_ENUM_SERIALIZATION`](json_disable_enum_serialization.md) - disable the default enum conversion
+- [`JSON_USE_OBJECTS_FOR_ENUM_KEYED_MAPS`](json_use_objects_for_enum_keyed_maps.md) - serialize maps with enum keys as
+ objects
+- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - converting your own types
## Version history
diff --git a/docs/mkdocs/docs/api/macros/nlohmann_json_version_major.md b/docs/mkdocs/docs/api/macros/nlohmann_json_version_major.md
index d7a314276..84fbe6891 100644
--- a/docs/mkdocs/docs/api/macros/nlohmann_json_version_major.md
+++ b/docs/mkdocs/docs/api/macros/nlohmann_json_version_major.md
@@ -32,8 +32,10 @@ The macros are defined according to the current library version.
## See also
-- [meta](../basic_json/meta.md) - returns version information on the library
-- [JSON_SKIP_LIBRARY_VERSION_CHECK](json_skip_library_version_check.md) - skip library version check
+- [`meta`](../basic_json/meta.md) - returns version information on the library
+- [`JSON_SKIP_LIBRARY_VERSION_CHECK`](json_skip_library_version_check.md) - skip library version check
+- [Supported Macros](../../features/macros.md) - guide to all supported macros
+- [Integration](../../integration/index.md) - integrate the library
## Version history
diff --git a/docs/mkdocs/docs/api/operator_gtgt.md b/docs/mkdocs/docs/api/operator_gtgt.md
index 741183f2f..9884e50c5 100644
--- a/docs/mkdocs/docs/api/operator_gtgt.md
+++ b/docs/mkdocs/docs/api/operator_gtgt.md
@@ -116,12 +116,15 @@ being read.
## See also
-- [accept](basic_json/accept.md) - check if the input is valid JSON
-- [parse](basic_json/parse.md) - deserialize from a compatible input
+- [`accept`](basic_json/accept.md) - check if the input is valid JSON
+- [`parse`](basic_json/parse.md) - deserialize from a compatible input
- [`JSON_STRICT_NUL_HANDLING`](macros/json_strict_nul_handling.md) - opt in to rejecting a NUL byte in the input
instead of treating it as end of input
- [`JSON_PRECISE_STREAM_POSITION`](macros/json_precise_stream_position.md) - opt in to leaving the stream positioned right after a number
- [`JSON_DISABLE_STREAM_BULK_SCAN`](macros/json_disable_stream_bulk_scan.md) - read the stream one character at a time
+- [Parsing](../features/parsing/index.md) - overview of the parsing functions
+- [JSON Lines](../features/parsing/json_lines.md) - newline-delimited JSON
+- [Large, Streamed, and Partial Input](../features/parsing/large_and_partial_input.md) - chunked, concatenated, and very large input
## Version history
diff --git a/docs/mkdocs/docs/api/operator_literal_json.md b/docs/mkdocs/docs/api/operator_literal_json.md
index 4e4002aa3..dfb7ca101 100644
--- a/docs/mkdocs/docs/api/operator_literal_json.md
+++ b/docs/mkdocs/docs/api/operator_literal_json.md
@@ -62,7 +62,7 @@ Linear.
## See also
- [Creating JSON values](../features/creating_values.md) - the article on creating JSON values
-- [JSON_NO_AUTOMATIC_UDLS](macros/json_no_automatic_udls.md) - do not include the user-defined string literals
+- [`JSON_NO_AUTOMATIC_UDLS`](macros/json_no_automatic_udls.md) - do not include the user-defined string literals
automatically
## Version history
diff --git a/docs/mkdocs/docs/api/operator_literal_json_pointer.md b/docs/mkdocs/docs/api/operator_literal_json_pointer.md
index be36b24ed..db3aa1df0 100644
--- a/docs/mkdocs/docs/api/operator_literal_json_pointer.md
+++ b/docs/mkdocs/docs/api/operator_literal_json_pointer.md
@@ -60,9 +60,10 @@ Linear.
## See also
-- [json_pointer](json_pointer/index.md) - type to represent JSON Pointers
-- [JSON_NO_AUTOMATIC_UDLS](macros/json_no_automatic_udls.md) - do not include the user-defined string literals
+- [`json_pointer`](json_pointer/index.md) - type to represent JSON Pointers
+- [`JSON_NO_AUTOMATIC_UDLS`](macros/json_no_automatic_udls.md) - do not include the user-defined string literals
automatically
+- [JSON Pointer](../features/json_pointer.md) - the article on JSON Pointer support
## Version history
diff --git a/docs/mkdocs/docs/api/operator_ltlt.md b/docs/mkdocs/docs/api/operator_ltlt.md
index 6a821b7fb..823f209fb 100644
--- a/docs/mkdocs/docs/api/operator_ltlt.md
+++ b/docs/mkdocs/docs/api/operator_ltlt.md
@@ -85,10 +85,11 @@ Linear.
## See also
-- [dump](basic_json/dump.md) - serialize to a JSON-formatted string
+- [`dump`](basic_json/dump.md) - serialize to a JSON-formatted string
- [`basic_json_view::operator<<`](basic_json_view/operator_ltlt.md) - the corresponding operator for
`basic_json_view`
- [Serialization](../features/serialization.md) - the serialization article
+- [`JSON_NO_IO`](macros/json_no_io.md) - remove stream and file I/O
## Version history
diff --git a/docs/mkdocs/docs/api/ordered_json.md b/docs/mkdocs/docs/api/ordered_json.md
index 30f295fed..5e9776a41 100644
--- a/docs/mkdocs/docs/api/ordered_json.md
+++ b/docs/mkdocs/docs/api/ordered_json.md
@@ -37,8 +37,8 @@ parsing an object of `n` keys costs O(n²) rather than O(n log n). See
## See also
-- [ordered_map](ordered_map.md)
-- [Object Order](../features/object_order.md)
+- [`ordered_map`](ordered_map.md) - ordered map type used by `ordered_json`
+- [Object Order](../features/object_order.md) - preserving the insertion order of object keys
## Version history
diff --git a/docs/mkdocs/docs/api/ordered_json_document.md b/docs/mkdocs/docs/api/ordered_json_document.md
index b737c2e4d..7d3e36fd4 100644
--- a/docs/mkdocs/docs/api/ordered_json_document.md
+++ b/docs/mkdocs/docs/api/ordered_json_document.md
@@ -29,9 +29,10 @@ of object keys, instead of sorting them like [`json_document`](json_document.md)
## See also
-- [ordered_json_view](ordered_json_view.md) - a view of a value of an `ordered_json_document`
-- [json_document](json_document.md) - the corresponding document for the default `json` specialization
-- [Object Order](../features/object_order.md)
+- [`ordered_json_view`](ordered_json_view.md) - a view of a value of an `ordered_json_document`
+- [`json_document`](json_document.md) - the corresponding document for the default `json` specialization
+- [Object Order](../features/object_order.md) - preserving the insertion order of object keys
+- [Zero-copy JSON views](../features/json_view.md) - how to parse, inspect and edit a document without building a tree
## Version history
diff --git a/docs/mkdocs/docs/api/ordered_json_editable_document.md b/docs/mkdocs/docs/api/ordered_json_editable_document.md
index cf86307e5..8a614b0fd 100644
--- a/docs/mkdocs/docs/api/ordered_json_editable_document.md
+++ b/docs/mkdocs/docs/api/ordered_json_editable_document.md
@@ -34,13 +34,14 @@ members [`set`](basic_json_document/set.md) added -- instead of sorting them lik
## See also
-- [ordered_json_editable_view](ordered_json_editable_view.md) - a view of a value of an
+- [`ordered_json_editable_view`](ordered_json_editable_view.md) - a view of a value of an
`ordered_json_editable_document`
-- [ordered_json_document](ordered_json_document.md) - the read-only document this type adds edits to
-- [json_editable_document](json_editable_document.md) - the corresponding editable document for the default `json`
+- [`ordered_json_document`](ordered_json_document.md) - the read-only document this type adds edits to
+- [`json_editable_document`](json_editable_document.md) - the corresponding editable document for the default `json`
specialization
-- [Object Order](../features/object_order.md)
+- [Object Order](../features/object_order.md) - preserving the insertion order of object keys
- [Edits](basic_json_document/index.md#edits) - what an edit guarantees
+- [Zero-copy JSON views](../features/json_view.md#editing-a-document) - editing a document in place and writing it back
## Version history
diff --git a/docs/mkdocs/docs/api/ordered_json_editable_view.md b/docs/mkdocs/docs/api/ordered_json_editable_view.md
index 1c9953d57..1a7dc8a57 100644
--- a/docs/mkdocs/docs/api/ordered_json_editable_view.md
+++ b/docs/mkdocs/docs/api/ordered_json_editable_view.md
@@ -31,9 +31,10 @@ This type is a [`basic_json_view`](basic_json_view/index.md) of a value of an
## See also
-- [ordered_json_editable_document](ordered_json_editable_document.md) - the document type this view refers into
-- [ordered_json_view](ordered_json_view.md) - the corresponding read-only view
-- [json_editable_view](json_editable_view.md) - the corresponding view for `json_editable_document`
+- [`ordered_json_editable_document`](ordered_json_editable_document.md) - the document type this view refers into
+- [`ordered_json_view`](ordered_json_view.md) - the corresponding read-only view
+- [`json_editable_view`](json_editable_view.md) - the corresponding view for `json_editable_document`
+- [Zero-copy JSON views](../features/json_view.md#editing-a-document) - editing a document in place and writing it back
## Version history
diff --git a/docs/mkdocs/docs/api/ordered_json_view.md b/docs/mkdocs/docs/api/ordered_json_view.md
index 9df72040f..7e646d0a3 100644
--- a/docs/mkdocs/docs/api/ordered_json_view.md
+++ b/docs/mkdocs/docs/api/ordered_json_view.md
@@ -27,8 +27,9 @@ This type is a [`basic_json_view`](basic_json_view/index.md) of a value of an
## See also
-- [ordered_json_document](ordered_json_document.md) - the document type this view refers into
-- [json_view](json_view.md) - the corresponding view for `json_document`
+- [`ordered_json_document`](ordered_json_document.md) - the document type this view refers into
+- [`json_view`](json_view.md) - the corresponding view for `json_document`
+- [Zero-copy JSON views](../features/json_view.md) - how to parse, inspect and edit a document without building a tree
## Version history
diff --git a/docs/mkdocs/docs/api/ordered_map.md b/docs/mkdocs/docs/api/ordered_map.md
index a5e07e60a..0698fd9e0 100644
--- a/docs/mkdocs/docs/api/ordered_map.md
+++ b/docs/mkdocs/docs/api/ordered_map.md
@@ -126,7 +126,8 @@ This differs from `#!cpp std::map`, where the same operations are O(log n).
## See also
-- [ordered_json](ordered_json.md)
+- [`ordered_json`](ordered_json.md) - JSON specialization preserving insertion order
+- [Object Order](../features/object_order.md) - the article on object key order
## Version history
diff --git a/docs/mkdocs/docs/features/arbitrary_types.md b/docs/mkdocs/docs/features/arbitrary_types.md
index 36538e502..1bec4a1ff 100644
--- a/docs/mkdocs/docs/features/arbitrary_types.md
+++ b/docs/mkdocs/docs/features/arbitrary_types.md
@@ -563,3 +563,12 @@ struct bad_serializer
- [Specializing enum conversion](enum_conversion.md) - map enums to JSON strings instead of integers
- [Supported macros](macros.md) - reference for `NLOHMANN_DEFINE_TYPE_*` and related macros
- [`adl_serializer`](../api/adl_serializer/index.md) - the default `JSONSerializer` used in the conversion dispatch
+- [`NLOHMANN_DEFINE_TYPE_INTRUSIVE`](../api/macros/nlohmann_define_type_intrusive.md) - generate the conversion functions inside the type
+- [`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE`](../api/macros/nlohmann_define_type_non_intrusive.md) - generate the conversion functions outside the type
+- [`NLOHMANN_DEFINE_TYPE_WITH_NAMES`](../api/macros/nlohmann_define_type_with_names.md) - use JSON keys that differ from the member names
+- [`NLOHMANN_DEFINE_DERIVED_TYPE`](../api/macros/nlohmann_define_derived_type.md) - generate the conversion functions for derived classes
+- [`NLOHMANN_JSON_SERIALIZE_ENUM`](../api/macros/nlohmann_json_serialize_enum.md) - map enum values to JSON values
+- [`get`](../api/basic_json/get.md) - convert a JSON value to a C++ type
+- [`get_to`](../api/basic_json/get_to.md) - convert a JSON value into an existing variable
+- [`json_serializer`](../api/basic_json/json_serializer.md) - the `JSONSerializer` template parameter
+
diff --git a/docs/mkdocs/docs/features/assertions.md b/docs/mkdocs/docs/features/assertions.md
index c551fef30..2f2ad3ff7 100644
--- a/docs/mkdocs/docs/features/assertions.md
+++ b/docs/mkdocs/docs/features/assertions.md
@@ -167,4 +167,8 @@ result in undefined behavior. Since version 3.12.0, this library checks for `nul
## See also
-- [JSON_ASSERT](../api/macros/json_assert.md) - control behavior of runtime assertions
+- [`JSON_ASSERT`](../api/macros/json_assert.md) - control behavior of runtime assertions
+- [Supported Macros](macros.md) - all supported macros
+- [Working Without Exceptions](no_exceptions.md) - using the library without exceptions
+- [Exceptions](../home/exceptions.md) - all exceptions and their error codes
+- [Macros](../api/macros/index.md) - reference of all macros
diff --git a/docs/mkdocs/docs/features/binary_formats/bjdata.md b/docs/mkdocs/docs/features/binary_formats/bjdata.md
index 3a7a1798a..7f4c20398 100644
--- a/docs/mkdocs/docs/features/binary_formats/bjdata.md
+++ b/docs/mkdocs/docs/features/binary_formats/bjdata.md
@@ -290,3 +290,12 @@ The library maps BJData types to JSON value types as follows:
```json
--8<-- "examples/from_bjdata.output"
```
+
+## See also
+
+- [Binary formats](index.md) - overview and comparison of the supported binary formats
+- [Binary values](../binary_values.md) - how binary values and subtypes map to BJData
+- [`to_bjdata`](../../api/basic_json/to_bjdata.md) - serialize a JSON value to BJData
+- [`from_bjdata`](../../api/basic_json/from_bjdata.md) - parse a JSON value from BJData
+- [`JSON_STRICT_BINARY_UTF8`](../../api/macros/json_strict_binary_utf8.md) - reject ill-formed UTF-8 in strings
+- [SAX interface](../parsing/sax_interface.md) - decode binary formats without building a value
diff --git a/docs/mkdocs/docs/features/binary_formats/bon8.md b/docs/mkdocs/docs/features/binary_formats/bon8.md
index b972dc035..990348a01 100644
--- a/docs/mkdocs/docs/features/binary_formats/bon8.md
+++ b/docs/mkdocs/docs/features/binary_formats/bon8.md
@@ -191,3 +191,12 @@ Non-negative integers are read as number_unsigned, negative integers as number_i
```json
--8<-- "examples/from_bon8.output"
```
+
+## See also
+
+- [Binary formats](index.md) - overview and comparison of the supported binary formats
+- [Binary values](../binary_values.md) - how binary values and subtypes map to BON8
+- [`to_bon8`](../../api/basic_json/to_bon8.md) - serialize a JSON value to BON8
+- [`from_bon8`](../../api/basic_json/from_bon8.md) - parse a JSON value from BON8
+- [`JSON_STRICT_BINARY_UTF8`](../../api/macros/json_strict_binary_utf8.md) - reject ill-formed UTF-8 in strings
+- [SAX interface](../parsing/sax_interface.md) - decode binary formats without building a value
diff --git a/docs/mkdocs/docs/features/binary_formats/bson.md b/docs/mkdocs/docs/features/binary_formats/bson.md
index 9c82594dd..5b4070140 100644
--- a/docs/mkdocs/docs/features/binary_formats/bson.md
+++ b/docs/mkdocs/docs/features/binary_formats/bson.md
@@ -168,3 +168,12 @@ The library maps BSON record types to JSON value types as follows:
```json
--8<-- "examples/from_bson.output"
```
+
+## See also
+
+- [Binary formats](index.md) - overview and comparison of the supported binary formats
+- [Binary values](../binary_values.md) - how binary values and subtypes map to BSON
+- [`to_bson`](../../api/basic_json/to_bson.md) - serialize a JSON value to BSON
+- [`from_bson`](../../api/basic_json/from_bson.md) - parse a JSON value from BSON
+- [`JSON_STRICT_BINARY_UTF8`](../../api/macros/json_strict_binary_utf8.md) - reject ill-formed UTF-8 in strings
+- [SAX interface](../parsing/sax_interface.md) - decode binary formats without building a value
diff --git a/docs/mkdocs/docs/features/binary_formats/cbor.md b/docs/mkdocs/docs/features/binary_formats/cbor.md
index 8933630da..f860685f5 100644
--- a/docs/mkdocs/docs/features/binary_formats/cbor.md
+++ b/docs/mkdocs/docs/features/binary_formats/cbor.md
@@ -257,3 +257,13 @@ string of the same major type, as required by [RFC 8949, Section 3.2.3](https://
```json
--8<-- "examples/from_cbor.output"
```
+
+## See also
+
+- [Binary formats](index.md) - overview and comparison of the supported binary formats
+- [Binary values](../binary_values.md) - how binary values and subtypes map to CBOR
+- [`to_cbor`](../../api/basic_json/to_cbor.md) - serialize a JSON value to CBOR
+- [`from_cbor`](../../api/basic_json/from_cbor.md) - parse a JSON value from CBOR
+- [`JSON_STRICT_BINARY_UTF8`](../../api/macros/json_strict_binary_utf8.md) - reject ill-formed UTF-8 in strings
+- [SAX interface](../parsing/sax_interface.md) - decode binary formats without building a value
+- [`cbor_tag_handler_t`](../../api/basic_json/cbor_tag_handler_t.md) - how CBOR tags are handled when parsing
diff --git a/docs/mkdocs/docs/features/binary_formats/index.md b/docs/mkdocs/docs/features/binary_formats/index.md
index cb7368a65..9b898f6b5 100644
--- a/docs/mkdocs/docs/features/binary_formats/index.md
+++ b/docs/mkdocs/docs/features/binary_formats/index.md
@@ -75,7 +75,10 @@ omitted here; see the table.
## See also
+- [`cbor_tag_handler_t`](../../api/basic_json/cbor_tag_handler_t.md) - how CBOR tags are handled when parsing
+- [`JSON_STRICT_BINARY_UTF8`](../../api/macros/json_strict_binary_utf8.md) - reject ill-formed UTF-8 in strings
- [Binary values](../binary_values.md) - binary values and subtypes
-- [**to_cbor**](../../api/basic_json/to_cbor.md) / [**from_cbor**](../../api/basic_json/from_cbor.md), [**to_msgpack**](../../api/basic_json/to_msgpack.md) / [**from_msgpack**](../../api/basic_json/from_msgpack.md), [**to_bson**](../../api/basic_json/to_bson.md) / [**from_bson**](../../api/basic_json/from_bson.md), [**to_ubjson**](../../api/basic_json/to_ubjson.md) / [**from_ubjson**](../../api/basic_json/from_ubjson.md), [**to_bjdata**](../../api/basic_json/to_bjdata.md) / [**from_bjdata**](../../api/basic_json/from_bjdata.md), [**to_bon8**](../../api/basic_json/to_bon8.md) / [**from_bon8**](../../api/basic_json/from_bon8.md) - the conversion functions
-- [Parsing untrusted input](../parsing/untrusted_input.md)
+- [`to_cbor`](../../api/basic_json/to_cbor.md) - / [`from_cbor`](../../api/basic_json/from_cbor.md), [`to_msgpack`](../../api/basic_json/to_msgpack.md) / [`from_msgpack`](../../api/basic_json/from_msgpack.md), [`to_bson`](../../api/basic_json/to_bson.md) / [`from_bson`](../../api/basic_json/from_bson.md), [`to_ubjson`](../../api/basic_json/to_ubjson.md) / [`from_ubjson`](../../api/basic_json/from_ubjson.md), [`to_bjdata`](../../api/basic_json/to_bjdata.md) / [`from_bjdata`](../../api/basic_json/from_bjdata.md), [`to_bon8`](../../api/basic_json/to_bon8.md) / [`from_bon8`](../../api/basic_json/from_bon8.md) - the conversion functions
+- [Parsing untrusted input](../parsing/untrusted_input.md) - harden an application that parses untrusted binary data
- [SAX interface](../parsing/sax_interface.md) - decode binary formats without building a value
+
diff --git a/docs/mkdocs/docs/features/binary_formats/messagepack.md b/docs/mkdocs/docs/features/binary_formats/messagepack.md
index 90e4c295e..a68734b29 100644
--- a/docs/mkdocs/docs/features/binary_formats/messagepack.md
+++ b/docs/mkdocs/docs/features/binary_formats/messagepack.md
@@ -215,3 +215,12 @@ The library maps MessagePack types to JSON value types as follows:
```json
--8<-- "examples/from_msgpack.output"
```
+
+## See also
+
+- [Binary formats](index.md) - overview and comparison of the supported binary formats
+- [Binary values](../binary_values.md) - how binary values and subtypes map to MessagePack
+- [`to_msgpack`](../../api/basic_json/to_msgpack.md) - serialize a JSON value to MessagePack
+- [`from_msgpack`](../../api/basic_json/from_msgpack.md) - parse a JSON value from MessagePack
+- [`JSON_STRICT_BINARY_UTF8`](../../api/macros/json_strict_binary_utf8.md) - reject ill-formed UTF-8 in strings
+- [SAX interface](../parsing/sax_interface.md) - decode binary formats without building a value
diff --git a/docs/mkdocs/docs/features/binary_formats/ubjson.md b/docs/mkdocs/docs/features/binary_formats/ubjson.md
index ba12ee4f6..11c1757f3 100644
--- a/docs/mkdocs/docs/features/binary_formats/ubjson.md
+++ b/docs/mkdocs/docs/features/binary_formats/ubjson.md
@@ -186,3 +186,12 @@ The library maps UBJSON types to JSON value types as follows:
```json
--8<-- "examples/from_ubjson.output"
```
+
+## See also
+
+- [Binary formats](index.md) - overview and comparison of the supported binary formats
+- [Binary values](../binary_values.md) - how binary values and subtypes map to UBJSON
+- [`to_ubjson`](../../api/basic_json/to_ubjson.md) - serialize a JSON value to UBJSON
+- [`from_ubjson`](../../api/basic_json/from_ubjson.md) - parse a JSON value from UBJSON
+- [`JSON_STRICT_BINARY_UTF8`](../../api/macros/json_strict_binary_utf8.md) - reject ill-formed UTF-8 in strings
+- [SAX interface](../parsing/sax_interface.md) - decode binary formats without building a value
diff --git a/docs/mkdocs/docs/features/binary_values.md b/docs/mkdocs/docs/features/binary_values.md
index f3c240367..23db271d6 100644
--- a/docs/mkdocs/docs/features/binary_values.md
+++ b/docs/mkdocs/docs/features/binary_values.md
@@ -414,3 +414,13 @@ as an array of uint8 values. The library implements this translation.
"binary": [202, 254, 186, 190]
}
```
+
+## See also
+
+- [Binary formats](binary_formats/index.md) - the formats that can store binary values
+- [`binary_t`](../api/basic_json/binary_t.md) - type for binary values
+- [`byte_container_with_subtype`](../api/byte_container_with_subtype/index.md) - container for binary values with subtype
+- [`binary`](../api/basic_json/binary.md) - create a binary value
+- [`get_binary`](../api/basic_json/get_binary.md) - access the stored binary value
+- [`is_binary`](../api/basic_json/is_binary.md) - check whether a value is binary
+- [`cbor_tag_handler_t`](../api/basic_json/cbor_tag_handler_t.md) - store or ignore CBOR tags when parsing
diff --git a/docs/mkdocs/docs/features/comments.md b/docs/mkdocs/docs/features/comments.md
index 86321bc4a..786212c9e 100644
--- a/docs/mkdocs/docs/features/comments.md
+++ b/docs/mkdocs/docs/features/comments.md
@@ -38,3 +38,10 @@ For more information, see [JSON With Commas and Comments (JWCC)](https://nigelta
```
--8<-- "examples/comments.output"
```
+
+## See also
+
+- [`parse`](../api/basic_json/parse.md) - deserialize from a compatible input
+- [Trailing Commas](trailing_commas.md) - accept trailing commas in arrays and objects
+- [Parsing](parsing/index.md) - overview of the parsing functions
+- [Parsing Untrusted Input](parsing/untrusted_input.md) - limits and checks for input you do not control
diff --git a/docs/mkdocs/docs/features/conversions.md b/docs/mkdocs/docs/features/conversions.md
index c0d383a5a..c9564a75f 100644
--- a/docs/mkdocs/docs/features/conversions.md
+++ b/docs/mkdocs/docs/features/conversions.md
@@ -266,7 +266,12 @@ The conversions above are built in for standard types. To make the same syntax w
- [`get`](../api/basic_json/get.md) - get a copy converted to a given type
- [`get_to`](../api/basic_json/get_to.md) - convert into an existing variable
-- [`get_ref`](../api/basic_json/get_ref.md) / [`get_ptr`](../api/basic_json/get_ptr.md) - access the stored value without copying
+- [`get_ref`](../api/basic_json/get_ref.md) - / [`get_ptr`](../api/basic_json/get_ptr.md) - access the stored value without copying
- [Arbitrary types conversions](arbitrary_types.md) - support your own types
- [`JSON_USE_IMPLICIT_CONVERSIONS`](../api/macros/json_use_implicit_conversions.md) - toggle implicit conversions
- [Zero-copy JSON views](json_view.md) - get values out of a document or a view
+- [`adl_serializer`](../api/adl_serializer/index.md) - the default serializer behind the conversions
+- [`type`](../api/basic_json/type.md) - query the type of a value
+- [`JSON_DISABLE_TUPLE_REFERENCE_CONVERSION`](../api/macros/json_disable_tuple_reference_conversion.md) - toggle conversion to tuples of references
+- [`JSON_HAS_RANGE_VIEW_CONVERSION`](../api/macros/json_has_range_view_conversion.md) - toggle conversion from ranges
+
diff --git a/docs/mkdocs/docs/features/creating_values.md b/docs/mkdocs/docs/features/creating_values.md
index fd4c32cd8..d1ae587fc 100644
--- a/docs/mkdocs/docs/features/creating_values.md
+++ b/docs/mkdocs/docs/features/creating_values.md
@@ -118,8 +118,13 @@ string `#!json "42"`.
## See also
- [`basic_json` constructors](../api/basic_json/basic_json.md) - all ways to construct a value
-- [`array`](../api/basic_json/array.md) / [`object`](../api/basic_json/object.md) - force array or object type
+- [`array`](../api/basic_json/array.md) - / [`object`](../api/basic_json/object.md) - force array or object type
- [`operator""_json`](../api/operator_literal_json.md) - the `_json` literal
- [Converting values](conversions.md) - which C++ types can be used
- [Parsing](parsing/index.md) - create a value from JSON text
- [Zero-copy JSON views](json_view.md) - create a document and a view from JSON text instead of a value
+- [`basic_json`](../api/basic_json/index.md) - the class template and its member functions
+- [Types](types/index.md) - the JSON value types
+- [`JSON_BRACE_INIT_COPY_SEMANTICS`](../api/macros/json_brace_init_copy_semantics.md) - change how a single braced value is interpreted
+- [`operator=`](../api/basic_json/operator=.md) - assign a new value
+
diff --git a/docs/mkdocs/docs/features/element_access/checked_access.md b/docs/mkdocs/docs/features/element_access/checked_access.md
index 592d5438a..3a1c5f762 100644
--- a/docs/mkdocs/docs/features/element_access/checked_access.md
+++ b/docs/mkdocs/docs/features/element_access/checked_access.md
@@ -91,3 +91,11 @@ non-existing, an exception is thrown.
| access to invalid array index | `basic_json::out_of_range` exception is thrown | `basic_json::out_of_range` exception is thrown |
Result of [`at`](../../api/basic_json/at.md) in each scenario, for a non-const and a const value.
+
+## See also
+
+- [Element Access](index.md) - overview of all ways to access elements
+- [Unchecked access: operator[]](unchecked_access.md) - access without range checking
+- [Access with default value: value](default_value.md) - fall back to a default instead of throwing
+- [`at`](../../api/basic_json/at.md) - checked access by reference
+- [JSON Pointer](../json_pointer.md) - access nested values with `at` and a pointer
diff --git a/docs/mkdocs/docs/features/element_access/default_value.md b/docs/mkdocs/docs/features/element_access/default_value.md
index be100b34b..7848e5368 100644
--- a/docs/mkdocs/docs/features/element_access/default_value.md
+++ b/docs/mkdocs/docs/features/element_access/default_value.md
@@ -127,8 +127,10 @@ containing `.` need a different separator.
## See also
-- [`value`](../../api/basic_json/value.md) for access with default value
-- documentation on [checked access](checked_access.md)
-- documentation on [JSON Pointer](../json_pointer.md)
-- [`contains`](../../api/basic_json/contains.md) to check whether a key or JSON Pointer exists
-- [`json_pointer::operator/=`](../../api/json_pointer/operator_slasheq.md) to build a pointer token by token
+- [`value`](../../api/basic_json/value.md) - for access with default value
+- [Checked access: at](checked_access.md) - access with bounds checking
+- [JSON Pointer](../json_pointer.md) - addressing values by path
+- [`contains`](../../api/basic_json/contains.md) - to check whether a key or JSON Pointer exists
+- [`json_pointer::operator/=`](../../api/json_pointer/operator_slasheq.md) - to build a pointer token by token
+- [Unchecked access: operator[]](unchecked_access.md) - access without range checking
+- [Element Access](index.md) - overview of all ways to access elements
diff --git a/docs/mkdocs/docs/features/element_access/index.md b/docs/mkdocs/docs/features/element_access/index.md
index ce887ae30..d2ceb467e 100644
--- a/docs/mkdocs/docs/features/element_access/index.md
+++ b/docs/mkdocs/docs/features/element_access/index.md
@@ -70,9 +70,16 @@ if (auto it = j.find("name"); it != j.end())
## See also
-- [**operator[]**](../../api/basic_json/operator%5B%5D.md) - unchecked access
-- [**at**](../../api/basic_json/at.md) - checked access
-- [**value**](../../api/basic_json/value.md) - access with default value
-- [**contains**](../../api/basic_json/contains.md) and [**find**](../../api/basic_json/find.md) - test for existence
-- [**front**](../../api/basic_json/front.md) and [**back**](../../api/basic_json/back.md) - first and last element
-- [**items**](../../api/basic_json/items.md) - iterate over keys and values
+- [`operator[]`](../../api/basic_json/operator%5B%5D.md) - unchecked access
+- [`at`](../../api/basic_json/at.md) - checked access
+- [`value`](../../api/basic_json/value.md) - access with default value
+- [`contains`](../../api/basic_json/contains.md) - and [`find`](../../api/basic_json/find.md) - test for existence
+- [`front`](../../api/basic_json/front.md) - and [`back`](../../api/basic_json/back.md) - first and last element
+- [`items`](../../api/basic_json/items.md) - iterate over keys and values
+- [Checked access: at](checked_access.md) - access with range checking
+- [Unchecked access: operator[]](unchecked_access.md) - access without range checking
+- [Access with default value: value](default_value.md) - fall back to a default instead of throwing
+- [Iterators](../iterators.md) - visit all elements of arrays and objects
+- [JSON Pointer](../json_pointer.md) - address nested values with a single string
+- [Modifying values](../modifying_values.md) - add, merge and remove elements
+- [`basic_json`](../../api/basic_json/index.md) - all member functions
diff --git a/docs/mkdocs/docs/features/element_access/unchecked_access.md b/docs/mkdocs/docs/features/element_access/unchecked_access.md
index 39c1469c9..891a1b1ae 100644
--- a/docs/mkdocs/docs/features/element_access/unchecked_access.md
+++ b/docs/mkdocs/docs/features/element_access/unchecked_access.md
@@ -127,3 +127,11 @@ for (int i = 0; i < 1000; ++i) {
| access to invalid array index | reference to newly inserted `#!json null` value is returned; any index between previous maximal index and passed index are filled with `#!json null` | **undefined behavior**; [runtime assertion](../assertions.md) in debug mode |
Result of [`operator[]`](../../api/basic_json/operator%5B%5D.md) in each scenario, for a non-const and a const value.
+
+## See also
+
+- [Element Access](index.md) - overview of all ways to access elements
+- [Checked access: at](checked_access.md) - access with range checking
+- [Access with default value: value](default_value.md) - fall back to a default instead of throwing
+- [`operator[]`](../../api/basic_json/operator%5B%5D.md) - unchecked access by reference
+- [Runtime assertions](../assertions.md) - assertions that guard `operator[]` misuse
diff --git a/docs/mkdocs/docs/features/enum_conversion.md b/docs/mkdocs/docs/features/enum_conversion.md
index 1b6e2b874..aa9fdd260 100644
--- a/docs/mkdocs/docs/features/enum_conversion.md
+++ b/docs/mkdocs/docs/features/enum_conversion.md
@@ -108,3 +108,12 @@ Other Important points:
```json
--8<-- "examples/nlohmann_json_serialize_enum_strict_err.output"
```
+
+## See also
+
+- [Arbitrary Type Conversions](arbitrary_types.md) - convert your own types
+- [Converting values](conversions.md) - the general overview of `get`/`get_to`
+- [`NLOHMANN_JSON_SERIALIZE_ENUM`](../api/macros/nlohmann_json_serialize_enum.md) - define the enum-to-JSON mapping
+- [`NLOHMANN_JSON_SERIALIZE_ENUM_STRICT`](../api/macros/nlohmann_json_serialize_enum_strict.md) - throw on unmapped values
+- [`JSON_DISABLE_ENUM_SERIALIZATION`](../api/macros/json_disable_enum_serialization.md) - disable the default enum conversion
+- [`JSON_USE_OBJECTS_FOR_ENUM_KEYED_MAPS`](../api/macros/json_use_objects_for_enum_keyed_maps.md) - serialize maps with enum keys as objects
diff --git a/docs/mkdocs/docs/features/index.md b/docs/mkdocs/docs/features/index.md
index 88443c796..4715c4762 100644
--- a/docs/mkdocs/docs/features/index.md
+++ b/docs/mkdocs/docs/features/index.md
@@ -65,5 +65,15 @@ C++ types, and finally serialize it again.
- [API documentation](../api/basic_json/index.md) - reference of all classes and functions
- [FAQ](../home/faq.md) - answers to common questions
- [Exceptions](../home/exceptions.md) - all exceptions and their error codes
-- [Design goals](../home/design_goals.md)
+- [Design goals](../home/design_goals.md) - the goals behind the library
- [Integration](../integration/index.md) - how to add the library to a project
+- [Macros](../api/macros/index.md) - reference of all macros
+- [`json_pointer`](../api/json_pointer/index.md) - the JSON Pointer class
+- [`adl_serializer`](../api/adl_serializer/index.md) - customization point for type conversions
+- [`json_sax`](../api/json_sax/index.md) - interface of the SAX parser events
+- [`json_document`](../api/json_document.md) - an immutable document with a flat index
+- [`json_view`](../api/json_view.md) - a non-owning view of a value in a document
+- [`byte_container_with_subtype`](../api/byte_container_with_subtype/index.md) - binary values with a subtype
+- [`ordered_json`](../api/ordered_json.md) - a JSON type preserving insertion order
+- [Supported Macros](macros.md) - all supported macros
+- [`nlohmann` Namespace](namespace.md) - the library namespace
diff --git a/docs/mkdocs/docs/features/iterators.md b/docs/mkdocs/docs/features/iterators.md
index d05d2a3f9..c6e4d6eac 100644
--- a/docs/mkdocs/docs/features/iterators.md
+++ b/docs/mkdocs/docs/features/iterators.md
@@ -167,3 +167,13 @@ Note that "value" means a JSON value in this setting, not values stored in the u
| Operations | invalidated iterators |
|------------|-----------------------|
| `clear` | all |
+
+## See also
+
+- [`begin`](../api/basic_json/begin.md) - / [`end`](../api/basic_json/end.md) - iterators to the first and one past the last element
+- [`rbegin`](../api/basic_json/rbegin.md) - / [`rend`](../api/basic_json/rend.md) - reverse iterators
+- [`cbegin`](../api/basic_json/cbegin.md) - / [`cend`](../api/basic_json/cend.md) - const iterators
+- [`items`](../api/basic_json/items.md) - iterate over keys and values
+- [Object Order](object_order.md) - iteration order of object keys
+- [Element Access](element_access/index.md) - access single elements
+- [Modifying values](modifying_values.md) - add and remove elements (including iterator invalidation rules)
diff --git a/docs/mkdocs/docs/features/json_patch.md b/docs/mkdocs/docs/features/json_patch.md
index ee854178f..d00e3eaca 100644
--- a/docs/mkdocs/docs/features/json_patch.md
+++ b/docs/mkdocs/docs/features/json_patch.md
@@ -88,3 +88,6 @@ flowchart LR
- [`patch`](../api/basic_json/patch.md) - apply a JSON Patch, returning the result as a copy
- [`patch_inplace`](../api/basic_json/patch_inplace.md) - apply a JSON Patch without copying
- [`diff`](../api/basic_json/diff.md) - compute a JSON Patch from two values
+- [`json_pointer`](../api/json_pointer/index.md) - type to represent JSON Pointers
+- [`merge_diff`](../api/basic_json/merge_diff.md) - compute a JSON Merge Patch from two values
+- [Modifying values](modifying_values.md) - simple in-place modifications
diff --git a/docs/mkdocs/docs/features/json_pointer.md b/docs/mkdocs/docs/features/json_pointer.md
index c0c160e9b..e7b2f1da7 100644
--- a/docs/mkdocs/docs/features/json_pointer.md
+++ b/docs/mkdocs/docs/features/json_pointer.md
@@ -171,10 +171,12 @@ Each leaf of the document becomes one key of the flat object, and `unflatten()`
## See also
-- Class [`json_pointer`](../api/json_pointer/index.md)
-- Functions [`value`](../api/basic_json/value.md), [`contains`](../api/basic_json/contains.md), and
- [`at`](../api/basic_json/at.md) accept JSON Pointers; see [Nested values](element_access/default_value.md#nested-values)
-- Function [`flatten`](../api/basic_json/flatten.md)
-- Function [`unflatten`](../api/basic_json/unflatten.md)
+- [`json_pointer`](../api/json_pointer/index.md) - the JSON Pointer class
+- [Nested values](element_access/default_value.md#nested-values) - [`value`](../api/basic_json/value.md),
+ [`contains`](../api/basic_json/contains.md), and [`at`](../api/basic_json/at.md) accept JSON Pointers
+- [`flatten`](../api/basic_json/flatten.md) - convert a value to an object of JSON Pointers and primitive values
+- [`unflatten`](../api/basic_json/unflatten.md) - restore a value from a flattened object
- [JSON Patch](json_patch.md) - paths inside a patch are JSON Pointers
- [JSON Merge Patch](merge_patch.md) - an alternative patch format that does not use JSON Pointer
+- [`operator""_json_pointer`](../api/operator_literal_json_pointer.md) - user-defined literal to create a JSON pointer
+- [Element Access](element_access/index.md) - other ways to access elements
diff --git a/docs/mkdocs/docs/features/json_view.md b/docs/mkdocs/docs/features/json_view.md
index f5d494249..c15540c1a 100644
--- a/docs/mkdocs/docs/features/json_view.md
+++ b/docs/mkdocs/docs/features/json_view.md
@@ -446,6 +446,18 @@ either.
Each column is one way to work with JSON in this library, and each row compares one property of them.
+## See also
+
+- [`basic_json_document`](../api/basic_json_document/index.md) - the document that owns the parsed index (parse, access, images, edits)
+- [`basic_json_view`](../api/basic_json_view/index.md) - the non-owning handle to a value in a document
+- [`json_document`](../api/json_document.md) - and [`ordered_json_document`](../api/ordered_json_document.md) - the read-only documents
+- [`json_editable_document`](../api/json_editable_document.md) - and [`ordered_json_editable_document`](../api/ordered_json_editable_document.md) - the documents that can be edited in place
+- [`JSON_VIEW_NO_SIMD`](../api/macros/json_view_no_simd.md) - and [`JSON_VIEW_USE_SSSE3`](../api/macros/json_view_use_ssse3.md) - control the SIMD paths of the parser
+- [Architecture](../home/architecture.md#node-index-of-json-views) - the layout of the node index
+- [SAX interface](parsing/sax_interface.md) - event-based parsing without building a tree
+- [Performance](performance.md) - benchmarks and tuning of parsing and serialization
+- [Large, Streamed, and Partial Input](parsing/large_and_partial_input.md) - reading only the part of a text you need
+
## Version history
- Added in version 3.13.0.
diff --git a/docs/mkdocs/docs/features/macros.md b/docs/mkdocs/docs/features/macros.md
index 773ea5ac3..adae0dc6e 100644
--- a/docs/mkdocs/docs/features/macros.md
+++ b/docs/mkdocs/docs/features/macros.md
@@ -339,3 +339,17 @@ These macros are defined by the library and contain the version numbers accordin
[Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html).
See [full documentation of `NLOHMANN_JSON_VERSION_MAJOR`, `NLOHMANN_JSON_VERSION_MINOR`, and `NLOHMANN_JSON_VERSION_PATCH`](../api/macros/nlohmann_json_version_major.md).
+
+## See also
+
+- [Macros](../api/macros/index.md) - reference of all macros
+- [Runtime Assertions](assertions.md) - runtime assertions in detail
+- [`nlohmann` Namespace](namespace.md) - the library namespace and its macros
+- [Working Without Exceptions](no_exceptions.md) - using the library without exceptions
+- [Modules](modules.md) - macros and C++20 modules
+- [Exceptions](../home/exceptions.md) - all exceptions and their error codes
+- [CMake](../integration/cmake.md) - set macros via CMake options
+- [Compile times](../integration/compile_times.md) - reduce compile times with macros
+- [Architecture](../home/architecture.md) - how the library is put together
+- [Specializing enum conversion](enum_conversion.md) - enum macros
+- [Arbitrary Type Conversions](arbitrary_types.md) - type conversion macros
diff --git a/docs/mkdocs/docs/features/merge_patch.md b/docs/mkdocs/docs/features/merge_patch.md
index cd3f5d658..2d2c8ae51 100644
--- a/docs/mkdocs/docs/features/merge_patch.md
+++ b/docs/mkdocs/docs/features/merge_patch.md
@@ -66,6 +66,7 @@ flowchart LR
- [JSON Patch and Diff](json_patch.md) - a more expressive alternative that describes a sequence of operations
- [JSON Pointer](json_pointer.md) - the addressing scheme used by JSON Patch
-- Function [`merge_patch`](../api/basic_json/merge_patch.md)
-- Function [`merge_diff`](../api/basic_json/merge_diff.md)
+- [`merge_patch`](../api/basic_json/merge_patch.md) - apply a JSON Merge Patch to a value
+- [`merge_diff`](../api/basic_json/merge_diff.md) - create a JSON Merge Patch from two values
- Function [`update`](../api/basic_json/update.md) - merge objects, optionally recursively
+- [Modifying values](modifying_values.md) - simple in-place modifications
diff --git a/docs/mkdocs/docs/features/modifying_values.md b/docs/mkdocs/docs/features/modifying_values.md
index 1d6f2e27d..255a62d8b 100644
--- a/docs/mkdocs/docs/features/modifying_values.md
+++ b/docs/mkdocs/docs/features/modifying_values.md
@@ -99,10 +99,14 @@ editable document types, such as [`json_editable_document`](../api/json_editable
## See also
-- [`push_back`](../api/basic_json/push_back.md) / [`emplace_back`](../api/basic_json/emplace_back.md) - append to an array
+- [`push_back`](../api/basic_json/push_back.md) - / [`emplace_back`](../api/basic_json/emplace_back.md) - append to an array
- [`emplace`](../api/basic_json/emplace.md) - insert into an object if the key is absent
- [`update`](../api/basic_json/update.md) - merge objects (shallow, or recursive with `merge_objects`)
- [`merge_patch`](../api/basic_json/merge_patch.md) - apply an RFC 7396 merge patch
-- [`erase`](../api/basic_json/erase.md) / [`clear`](../api/basic_json/clear.md) - remove elements
-- [JSON Patch and Diff](json_patch.md) and [JSON Merge Patch](merge_patch.md) - structured modifications
+- [`erase`](../api/basic_json/erase.md) - / [`clear`](../api/basic_json/clear.md) - remove elements
+- [JSON Patch and Diff](json_patch.md) - and [JSON Merge Patch](merge_patch.md) - structured modifications
- [Editing a document](json_view.md#editing-a-document) - change a parsed document in place
+- [`insert`](../api/basic_json/insert.md) - insert elements at an iterator position or merge a range
+- [`operator+=`](../api/basic_json/operator+=.md) - shorthand for `push_back`
+- [Element Access](element_access/index.md) - read elements
+- [Iterators](iterators.md) - iterate over elements
diff --git a/docs/mkdocs/docs/features/modules.md b/docs/mkdocs/docs/features/modules.md
index 84c01b216..780809f08 100644
--- a/docs/mkdocs/docs/features/modules.md
+++ b/docs/mkdocs/docs/features/modules.md
@@ -68,3 +68,12 @@ C++20 modules support is exercised in CI against current GCC and Clang on Ubuntu
- **MSVC** could fail with `C2039: 'json_sax_dom_callback_parser' is not a member of ... detail`; fixed by exporting the required internal symbols from `json.cppm` (see [Exported symbols](#exported-symbols) above). ([issue #3970](https://github.com/nlohmann/json/issues/3970))
If you hit a different module-related build failure, search [existing issues](https://github.com/nlohmann/json/issues?q=is%3Aissue+modules) before filing a new one.
+
+## See also
+
+- [Supported Macros](macros.md) - macros are not exported by modules
+- [Macros](../api/macros/index.md) - reference of all macros
+- [`nlohmann` Namespace](namespace.md) - the library namespace
+- [CMake](../integration/cmake.md) - enable the module build in CMake
+- [Compile times](../integration/compile_times.md) - reduce compile times
+- [`basic_json`](../api/basic_json/index.md) - the main class and all its member functions
diff --git a/docs/mkdocs/docs/features/namespace.md b/docs/mkdocs/docs/features/namespace.md
index c76e5867a..f0e83b1f3 100644
--- a/docs/mkdocs/docs/features/namespace.md
+++ b/docs/mkdocs/docs/features/namespace.md
@@ -122,6 +122,15 @@ follows:
Overriding the namespace and mixing ABI-incompatible versions will result in crashes or incorrect behavior. You
have been warned!
+## See also
+
+- [`NLOHMANN_JSON_NAMESPACE`](../api/macros/nlohmann_json_namespace.md) - the library namespace as macro
+- [`NLOHMANN_JSON_NAMESPACE_BEGIN`, `NLOHMANN_JSON_NAMESPACE_END`](../api/macros/nlohmann_json_namespace_begin.md) - open and close the library namespace
+- [`NLOHMANN_JSON_NAMESPACE_NO_VERSION`](../api/macros/nlohmann_json_namespace_no_version.md) - disable the version component
+- [Supported Macros](macros.md) - all supported macros
+- [Migration Guide](../integration/migration_guide.md) - do not hard-code the library namespace
+- [`basic_json`](../api/basic_json/index.md) - the main class and all its member functions
+
## Version history
- Introduced inline namespace (`json_v3_11_0[_abi-tag]*`) in version 3.11.0.
diff --git a/docs/mkdocs/docs/features/no_exceptions.md b/docs/mkdocs/docs/features/no_exceptions.md
index cfb489876..bf1677c58 100644
--- a/docs/mkdocs/docs/features/no_exceptions.md
+++ b/docs/mkdocs/docs/features/no_exceptions.md
@@ -109,5 +109,10 @@ With exceptions off, you can replace the `abort()` by your own code, for example
- [Exceptions](../home/exceptions.md) - all exceptions and their ids
- [Parsing and exceptions](parsing/parse_exceptions.md) - the parsing alternatives in detail
-- [Parsing untrusted input](parsing/untrusted_input.md)
-- [`JSON_NOEXCEPTION`](../api/macros/json_noexception.md)
+- [Parsing untrusted input](parsing/untrusted_input.md) - harden an application that parses data it does not control
+- [`JSON_NOEXCEPTION`](../api/macros/json_noexception.md) - disable exceptions in the library
+- [`exception`](../api/basic_json/exception.md) - base class of all exceptions thrown by the library
+- [`JSON_THROW_USER`](../api/macros/json_throw_user.md) - replace the throw statements of the library
+- [`parse`](../api/basic_json/parse.md) - deserialize from a compatible input
+- [`accept`](../api/basic_json/accept.md) - check whether the input is valid JSON
+- [Supported Macros](macros.md) - all supported macros
diff --git a/docs/mkdocs/docs/features/object_order.md b/docs/mkdocs/docs/features/object_order.md
index b9997238e..79f06ef2c 100644
--- a/docs/mkdocs/docs/features/object_order.md
+++ b/docs/mkdocs/docs/features/object_order.md
@@ -117,3 +117,11 @@ Assume file `input.json` contains the JSON object above:
"two": 2
}
```
+
+## See also
+
+- [`ordered_json`](../api/ordered_json.md) - JSON type that preserves insertion order
+- [`ordered_map`](../api/ordered_map.md) - the container behind `ordered_json`
+- [`object_t`](../api/basic_json/object_t.md) - type used to store JSON objects
+- [Iterators](iterators.md) - iteration order of object keys
+- [Element Access](element_access/index.md) - access elements by key
diff --git a/docs/mkdocs/docs/features/parsing/index.md b/docs/mkdocs/docs/features/parsing/index.md
index 558272e3f..ebccf4cf4 100644
--- a/docs/mkdocs/docs/features/parsing/index.md
+++ b/docs/mkdocs/docs/features/parsing/index.md
@@ -156,4 +156,11 @@ options.
- [Zero-copy JSON views](../json_view.md) - parse into a read-only document and read it through views
- [parsing and exceptions](parse_exceptions.md) - control error handling
- [parsing untrusted input](untrusted_input.md) - what to consider when parsing input from untrusted sources
-- [Zero-copy JSON views](../json_view.md) - parse into a document and read it through a view
+- [`operator>>`](../../api/operator_gtgt.md) - deserialize from stream
+- [`json_sax`](../../api/json_sax/index.md) - documentation of the SAX interface
+- [`parse_error`](../../api/basic_json/parse_error.md) - exception thrown on a parse error
+- [Comments](../comments.md) - ignore `//` and `/* */` comments while parsing
+- [Trailing Commas](../trailing_commas.md) - accept trailing commas in arrays and objects
+- [Serialization](../serialization.md) - pretty-printing, UTF-8 handling, and number output
+- [Working Without Exceptions](../no_exceptions.md) - error handling when exceptions are disabled
+- [Exceptions](../../home/exceptions.md) - list of exceptions and error codes
diff --git a/docs/mkdocs/docs/features/parsing/json_lines.md b/docs/mkdocs/docs/features/parsing/json_lines.md
index 5ecf9d4af..a883daed6 100644
--- a/docs/mkdocs/docs/features/parsing/json_lines.md
+++ b/docs/mkdocs/docs/features/parsing/json_lines.md
@@ -63,3 +63,10 @@ JSON Lines input with more than one value is treated as invalid JSON by the [`pa
A value that is a number must be followed by whitespace -- see the [notes](../../api/operator_gtgt.md#notes) of
`operator>>` for details.
+
+## See also
+
+- [Parsing](index.md) - overview of the parsing functions
+- [Large, Streamed, and Partial Input](large_and_partial_input.md) - chunked, concatenated, and very large input
+- [`parse`](../../api/basic_json/parse.md) - deserialize from a compatible input
+- [`operator>>`](../../api/operator_gtgt.md) - deserialize from stream
diff --git a/docs/mkdocs/docs/features/parsing/large_and_partial_input.md b/docs/mkdocs/docs/features/parsing/large_and_partial_input.md
index 1e2e1743a..89ce90bf8 100644
--- a/docs/mkdocs/docs/features/parsing/large_and_partial_input.md
+++ b/docs/mkdocs/docs/features/parsing/large_and_partial_input.md
@@ -170,3 +170,8 @@ and gives read-only [views](../../api/basic_json_view/index.md) of the parts you
- [SAX interface](sax_interface.md) - event-based parsing
- [Zero-copy JSON views](../json_view.md) - read parts of a large document without building a tree
- [Untrusted input](untrusted_input.md) - limits for input you do not control
+- [`operator>>`](../../api/operator_gtgt.md) - deserialize from stream
+- [`parse`](../../api/basic_json/parse.md) - deserialize from a compatible input
+- [`sax_parse`](../../api/basic_json/sax_parse.md) - generate SAX events
+- [`JSON_PRECISE_STREAM_POSITION`](../../api/macros/json_precise_stream_position.md) - leave the stream positioned right after a parsed number
+- [`JSON_DISABLE_STREAM_BULK_SCAN`](../../api/macros/json_disable_stream_bulk_scan.md) - read a `std::istream` one character at a time
diff --git a/docs/mkdocs/docs/features/parsing/parse_exceptions.md b/docs/mkdocs/docs/features/parsing/parse_exceptions.md
index eb0ae5f58..e10b2cd04 100644
--- a/docs/mkdocs/docs/features/parsing/parse_exceptions.md
+++ b/docs/mkdocs/docs/features/parsing/parse_exceptions.md
@@ -143,3 +143,14 @@ acceptable, for example for configuration files. Note that `start_pos()` is a 0-
For binary formats such as CBOR, there are no lines; `byte` is the position in the byte sequence. To find out how many
bytes a successfully parsed value used, see
[Several values in one stream](large_and_partial_input.md#several-values-in-one-stream).
+
+## See also
+
+- [`parse`](../../api/basic_json/parse.md) - deserialize from a compatible input
+- [`accept`](../../api/basic_json/accept.md) - check if the input is valid JSON
+- [`sax_parse`](../../api/basic_json/sax_parse.md) - generate SAX events
+- [`parse_error`](../../api/basic_json/parse_error.md) - exception thrown on a parse error
+- [`JSON_DIAGNOSTIC_POSITIONS`](../../api/macros/json_diagnostic_positions.md) - record start and end positions of parsed values
+- [Working Without Exceptions](../no_exceptions.md) - error handling when exceptions are disabled
+- [Exceptions](../../home/exceptions.md) - list of exceptions and error codes
+- [Parsing Untrusted Input](untrusted_input.md) - limits and checks for input you do not control
diff --git a/docs/mkdocs/docs/features/parsing/parser_callbacks.md b/docs/mkdocs/docs/features/parsing/parser_callbacks.md
index 6144011ec..35d9f3711 100644
--- a/docs/mkdocs/docs/features/parsing/parser_callbacks.md
+++ b/docs/mkdocs/docs/features/parsing/parser_callbacks.md
@@ -31,6 +31,13 @@ table describes the values of the parameters `depth`, `event`, and `parsed`.
| `parse_event_t::array_end` | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array |
| `parse_event_t::value` | the parser finished reading a JSON value | depth of the value | the parsed JSON value |
+
+--8<-- "images/callback_events.svg"
+
+
+Each coloured dot marks where the parser reports a `parse_event_t` event while reading
+the JSON text on the left; the legend on the right names the event per colour.
+
??? example "Example: sequence of callback events"
When parsing the following JSON text,
@@ -171,3 +178,11 @@ tracking the maximum `depth` seen and throwing once it is exceeded:
json::parse(input, callback);
```
+
+## See also
+
+- [Parsing](index.md) - overview of the parsing functions
+- [SAX Interface](sax_interface.md) - guide to event-based parsing
+- [`parse`](../../api/basic_json/parse.md) - deserialize from a compatible input
+- [`parser_callback_t`](../../api/basic_json/parser_callback_t.md) - callback function type for the parser
+- [`parse_event_t`](../../api/basic_json/parse_event_t.md) - enumeration of parser events
diff --git a/docs/mkdocs/docs/features/parsing/sax_interface.md b/docs/mkdocs/docs/features/parsing/sax_interface.md
index 70064c5bc..872105a20 100644
--- a/docs/mkdocs/docs/features/parsing/sax_interface.md
+++ b/docs/mkdocs/docs/features/parsing/sax_interface.md
@@ -102,5 +102,9 @@ Note the `sax_parse` function only returns a `#!cpp bool` indicating the result
## See also
-- [json_sax](../../api/json_sax/index.md) - documentation of the SAX interface
-- [sax_parse](../../api/basic_json/sax_parse.md) - SAX parser
+- [`json_sax`](../../api/json_sax/index.md) - documentation of the SAX interface
+- [`sax_parse`](../../api/basic_json/sax_parse.md) - SAX parser
+- [Parsing](index.md) - overview of the parsing functions
+- [Parsing and Exceptions](parse_exceptions.md) - handling parse errors and locating them in the input
+- [`parse`](../../api/basic_json/parse.md) - deserialize from a compatible input
+- [Binary Formats](../binary_formats/index.md) - CBOR, MessagePack, BSON, and other formats
diff --git a/docs/mkdocs/docs/features/parsing/untrusted_input.md b/docs/mkdocs/docs/features/parsing/untrusted_input.md
index 65f1bda25..9f29dddc3 100644
--- a/docs/mkdocs/docs/features/parsing/untrusted_input.md
+++ b/docs/mkdocs/docs/features/parsing/untrusted_input.md
@@ -160,3 +160,9 @@ report a security issue in the library itself, follow the [security policy](../.
- [Number handling](../types/number_handling.md) - number ranges and overflow behavior
- [Assurance case](../../community/assurance_case.md) - the library's threat model and countermeasures
- [Security policy](../../community/security_policy.md) - how to report a vulnerability
+- [`parse`](../../api/basic_json/parse.md) - deserialize from a compatible input
+- [`accept`](../../api/basic_json/accept.md) - check if the input is valid JSON
+- [`sax_parse`](../../api/basic_json/sax_parse.md) - generate SAX events
+- [`parser_callback_t`](../../api/basic_json/parser_callback_t.md) - callback function type for the parser
+- [`JSON_STRICT_NUL_HANDLING`](../../api/macros/json_strict_nul_handling.md) - opt in to rejecting a NUL byte in the input
+- [`JSON_DIAGNOSTIC_POSITIONS`](../../api/macros/json_diagnostic_positions.md) - record start and end positions of parsed values
diff --git a/docs/mkdocs/docs/features/performance.md b/docs/mkdocs/docs/features/performance.md
index 373c07112..a49a529e0 100644
--- a/docs/mkdocs/docs/features/performance.md
+++ b/docs/mkdocs/docs/features/performance.md
@@ -270,3 +270,9 @@ those headers are then never processed by the compiler at all.
- [Object Order](object_order.md) - `json` vs. `ordered_json` and other `ObjectType` choices
- [Template Parameter Requirements](types/template_parameters.md) - custom container and allocator types
- [Supported macros](macros.md) - overview of all configuration macros, including the diagnostics ones above
+- [`JSON_NO_SIMD`](../api/macros/json_no_simd.md) - disable SIMD acceleration
+- [`JSON_USE_SIMDUTF`](../api/macros/json_use_simdutf.md) - use simdutf for UTF-8 validation
+- [`JSON_DISABLE_STREAM_BULK_SCAN`](../api/macros/json_disable_stream_bulk_scan.md) - disable the stream bulk scan
+- [`parse`](../api/basic_json/parse.md) - deserialize from a compatible input
+- [`sax_parse`](../api/basic_json/sax_parse.md) - parse with a SAX interface
+- [`json_view`](../api/json_view.md) - a non-owning view of a value in a document
diff --git a/docs/mkdocs/docs/features/serialization.md b/docs/mkdocs/docs/features/serialization.md
index 5e1aedac0..c1b23442c 100644
--- a/docs/mkdocs/docs/features/serialization.md
+++ b/docs/mkdocs/docs/features/serialization.md
@@ -128,3 +128,7 @@ Besides JSON text, a value can also be serialized to the more compact [binary fo
- [`std::formatter`](../api/basic_json/std_formatter.md) - use JSON values with `std::format` and `std::print`
- [`format_as`](../api/basic_json/format_as.md) - use JSON values with the {fmt} library
- [Parsing](parsing/index.md) - the reverse operation
+- [`error_handler_t`](../api/basic_json/error_handler_t.md) - how to treat invalid UTF-8 when dumping
+- [`basic_json_view::dump`](../api/basic_json_view/dump.md) - serialize a view directly
+- [`JSON_NO_IO`](../api/macros/json_no_io.md) - remove stream and file I/O
+- [`JSON_NO_SIMD`](../api/macros/json_no_simd.md) - disable SIMD acceleration
diff --git a/docs/mkdocs/docs/features/trailing_commas.md b/docs/mkdocs/docs/features/trailing_commas.md
index 735ece569..2059f0174 100644
--- a/docs/mkdocs/docs/features/trailing_commas.md
+++ b/docs/mkdocs/docs/features/trailing_commas.md
@@ -37,3 +37,10 @@ For more information, see [JSON With Commas and Comments (JWCC)](https://nigelta
```
--8<-- "examples/trailing_commas.output"
```
+
+## See also
+
+- [`parse`](../api/basic_json/parse.md) - deserialize from a compatible input
+- [Comments](comments.md) - ignore `//` and `/* */` comments while parsing
+- [Parsing](parsing/index.md) - overview of the parsing functions
+- [Parsing Untrusted Input](parsing/untrusted_input.md) - limits and checks for input you do not control
diff --git a/docs/mkdocs/docs/features/type_recipes.md b/docs/mkdocs/docs/features/type_recipes.md
index 314425dc6..d46b858e6 100644
--- a/docs/mkdocs/docs/features/type_recipes.md
+++ b/docs/mkdocs/docs/features/type_recipes.md
@@ -120,5 +120,10 @@ same two functions.
## See also
- [Arbitrary type conversions](arbitrary_types.md) - the conversion mechanism and macros
-- [Why isn't my `to_json` found?](arbitrary_types.md#why-isnt-my-to_json-or-from_json-found)
+- [Why isn't my `to_json` found?](arbitrary_types.md#why-isnt-my-to_json-or-from_json-found) - troubleshoot conversion
+ functions that are not picked up
- [Converting values](conversions.md) - `get`, implicit conversions, and `std::optional`
+- [`NLOHMANN_DEFINE_DERIVED_TYPE`](../api/macros/nlohmann_define_derived_type.md) - conversion functions for derived classes
+- [`adl_serializer`](../api/adl_serializer/index.md) - customize conversions for third-party types
+- [`get`](../api/basic_json/get.md) - convert a JSON value to a C++ type
+
diff --git a/docs/mkdocs/docs/features/types/index.md b/docs/mkdocs/docs/features/types/index.md
index 22dc9da89..e95e18965 100644
--- a/docs/mkdocs/docs/features/types/index.md
+++ b/docs/mkdocs/docs/features/types/index.md
@@ -292,8 +292,16 @@ Integer number values, unsigned integer number values, and floating-point number
## See also
- [Number handling](number_handling.md) - how numbers are stored and converted
-- [Template parameter requirements](template_parameters.md)
-- [**basic_json**](../../api/basic_json/index.md) - the class template and its member types
-- [**type**](../../api/basic_json/type.md) and [**value_t**](../../api/basic_json/value_t.md) - query the type of a value
-- [**object_t**](../../api/basic_json/object_t.md), [**array_t**](../../api/basic_json/array_t.md), [**string_t**](../../api/basic_json/string_t.md), [**number_integer_t**](../../api/basic_json/number_integer_t.md), [**number_float_t**](../../api/basic_json/number_float_t.md) - the underlying types
-- [Object order](../object_order.md)
+- [Template parameter requirements](template_parameters.md) - what the template parameters of `basic_json` must provide
+- [`basic_json`](../../api/basic_json/index.md) - the class template and its member types
+- [`type`](../../api/basic_json/type.md) - and [`value_t`](../../api/basic_json/value_t.md) - query the type of a value
+- [`object_t`](../../api/basic_json/object_t.md), [`array_t`](../../api/basic_json/array_t.md), [`string_t`](../../api/basic_json/string_t.md), [`number_integer_t`](../../api/basic_json/number_integer_t.md), [`number_float_t`](../../api/basic_json/number_float_t.md) - the underlying types
+- [Object order](../object_order.md) - how object keys are ordered
+- [`json`](../../api/json.md) - the default JSON type
+- [`boolean_t`](../../api/basic_json/boolean_t.md) - the underlying boolean type
+- [`number_unsigned_t`](../../api/basic_json/number_unsigned_t.md) - the underlying unsigned integer type
+- [`is_primitive`](../../api/basic_json/is_primitive.md) - and the other `is_*` functions query the type
+- [`is_structured`](../../api/basic_json/is_structured.md) - true for objects and arrays
+- [Converting values](../conversions.md) - convert JSON values to and from C++ types
+- [Creating JSON values](../creating_values.md) - build JSON values
+
diff --git a/docs/mkdocs/docs/features/types/number_handling.md b/docs/mkdocs/docs/features/types/number_handling.md
index d6b925b71..82bbe1824 100644
--- a/docs/mkdocs/docs/features/types/number_handling.md
+++ b/docs/mkdocs/docs/features/types/number_handling.md
@@ -396,3 +396,12 @@ The number types can be changed with template parameters.
Note values should then be parsed with `json_ld::parse` rather than `json::parse` as the latter would parse
floating-point values to `#!c double` before then converting them to `#!c long double`.
+
+## See also
+
+- [Types](index.md) - how all value types are stored
+- [Converting values](../conversions.md) - convert numbers to C++ types
+- [`number_integer_t`](../../api/basic_json/number_integer_t.md) - the signed integer type
+- [`number_unsigned_t`](../../api/basic_json/number_unsigned_t.md) - the unsigned integer type
+- [`number_float_t`](../../api/basic_json/number_float_t.md) - the floating-point type
+- [`is_number`](../../api/basic_json/is_number.md) - check for a number of any kind
diff --git a/docs/mkdocs/docs/features/types/template_parameters.md b/docs/mkdocs/docs/features/types/template_parameters.md
index 888590234..3488060ea 100644
--- a/docs/mkdocs/docs/features/types/template_parameters.md
+++ b/docs/mkdocs/docs/features/types/template_parameters.md
@@ -779,7 +779,15 @@ See [issue #3425](https://github.com/nlohmann/json/issues/3425), [`string_t`](..
## See also
-- [Types](index.md) -- overview of how JSON values are stored
-- [Number Handling](number_handling.md) -- how the number types affect parsing and serialization
-- [Object Order](../object_order.md) -- using an insertion-ordered `ObjectType`
-- [`basic_json`](../../api/basic_json/index.md) -- API documentation of the class template
+- [Types](index.md) - overview of how JSON values are stored
+- [Number Handling](number_handling.md) - how the number types affect parsing and serialization
+- [Object Order](../object_order.md) - using an insertion-ordered `ObjectType`
+- [`basic_json`](../../api/basic_json/index.md) - API documentation of the class template
+- [`object_t`](../../api/basic_json/object_t.md) - the `ObjectType` in use
+- [`array_t`](../../api/basic_json/array_t.md) - the `ArrayType` in use
+- [`string_t`](../../api/basic_json/string_t.md) - the `StringType` in use
+- [`json_serializer`](../../api/basic_json/json_serializer.md) - the `JSONSerializer` in use
+- [`json_base_class_t`](../../api/basic_json/json_base_class_t.md) - the `CustomBaseClass` in use
+- [`with_t`](../../api/basic_json/with_t.md) - derive a specialization with one parameter replaced
+- [`get_allocator`](../../api/basic_json/get_allocator.md) - the allocator in use
+
diff --git a/docs/mkdocs/docs/home/architecture.md b/docs/mkdocs/docs/home/architecture.md
index d88ac4e8e..82a660e3a 100644
--- a/docs/mkdocs/docs/home/architecture.md
+++ b/docs/mkdocs/docs/home/architecture.md
@@ -453,3 +453,14 @@ release. Besides the components above, it contains:
- type traits to detect the capabilities of user-defined types (`detail/meta/type_traits.hpp`),
- backports of C++14/17 features to C++11 (`detail/meta/cpp_future.hpp`), and
- helpers such as `string_concat` and `string_escape`.
+
+## See also
+
+- [`basic_json`](../api/basic_json/index.md) - the main class and all its member functions
+- [`adl_serializer`](../api/adl_serializer/index.md) - customization point for type conversions
+- [`json_sax`](../api/json_sax/index.md) - interface of the SAX parser events
+- [SAX Interface](../features/parsing/sax_interface.md) - how to consume parser events without building a DOM
+- [Zero-copy JSON views](../features/json_view.md) - the flat node index that backs views and documents
+- [Template Parameter Requirements](../features/types/template_parameters.md) - the template parameters of basic_json
+- [Serialization](../features/serialization.md) - the output side of the library
+- [`nlohmann` Namespace](../features/namespace.md) - how the library namespace is structured
diff --git a/docs/mkdocs/docs/home/debugging.md b/docs/mkdocs/docs/home/debugging.md
index 362afaa6b..199b7db06 100644
--- a/docs/mkdocs/docs/home/debugging.md
+++ b/docs/mkdocs/docs/home/debugging.md
@@ -52,3 +52,10 @@ where in a large document a runtime error occurred. This only applies to excepti
exists (e.g. during element access); parse errors, which happen before any value exists to point at, are not
covered by this mechanism -- see [Parsing and exceptions](../features/parsing/parse_exceptions.md) for how parse
errors report their own location instead.
+
+## See also
+
+- [`JSON_DIAGNOSTICS`](../api/macros/json_diagnostics.md) - extended exception messages with the path of the failing value
+- [`JSON_DIAGNOSTIC_POSITIONS`](../api/macros/json_diagnostic_positions.md) - record byte positions of values for error messages
+- [Exceptions](exceptions.md) - all exceptions and their error codes
+- [`exception`](../api/basic_json/exception.md) - base class of all exceptions thrown by the library
diff --git a/docs/mkdocs/docs/home/design_goals.md b/docs/mkdocs/docs/home/design_goals.md
index 987124378..ffd07c43c 100644
--- a/docs/mkdocs/docs/home/design_goals.md
+++ b/docs/mkdocs/docs/home/design_goals.md
@@ -15,3 +15,10 @@ Other aspects were not so important to us:
- **Speed**. There are certainly [faster JSON libraries](https://github.com/miloyip/nativejson-benchmark#parsing-time) out there. However, if your goal is to speed up your development by adding JSON support with a single header, then this library is the way to go. If you know how to use a `std::vector` or `std::map`, you are already set.
See the [contribution guidelines](https://github.com/nlohmann/json/blob/develop/.github/CONTRIBUTING.md#please-dont) for more information.
+
+## See also
+
+- [`basic_json`](../api/basic_json/index.md) - the main class and all its member functions
+- [Macros](../api/macros/index.md) - reference of all macros
+- [Performance](../features/performance.md) - how the library performs and what is not optimized
+- [Architecture](architecture.md) - how the library is put together
diff --git a/docs/mkdocs/docs/home/exceptions.md b/docs/mkdocs/docs/home/exceptions.md
index 3923ab0ce..fc8c127eb 100644
--- a/docs/mkdocs/docs/home/exceptions.md
+++ b/docs/mkdocs/docs/home/exceptions.md
@@ -1241,3 +1241,15 @@ A JSON Patch operation 'test' failed. The unsuccessful operation is also printed
This exception was added in version 3.13.0. Before that, debug builds aborted on an assertion and release builds
wrote a `$` marker without `#`, which [`from_ubjson`](../api/basic_json/from_ubjson.md) then rejected.
+
+## See also
+
+- [`exception`](../api/basic_json/exception.md) - base class of all exceptions thrown by the library
+- [`parse_error`](../api/basic_json/parse_error.md) - exceptions indicating a parse error
+- [`invalid_iterator`](../api/basic_json/invalid_iterator.md) - exceptions indicating errors with iterators
+- [`type_error`](../api/basic_json/type_error.md) - exceptions indicating a wrong type
+- [`out_of_range`](../api/basic_json/out_of_range.md) - exceptions indicating access out of range
+- [`other_error`](../api/basic_json/other_error.md) - exceptions indicating other library errors
+- [`JSON_NOEXCEPTION`](../api/macros/json_noexception.md) - switch off exceptions
+- [`JSON_DIAGNOSTICS`](../api/macros/json_diagnostics.md) - extended exception messages with the path of the failing value
+- [Working Without Exceptions](../features/no_exceptions.md) - use the library without exceptions
diff --git a/docs/mkdocs/docs/home/faq.md b/docs/mkdocs/docs/home/faq.md
index 6e4fbe8f6..fc9638afc 100644
--- a/docs/mkdocs/docs/home/faq.md
+++ b/docs/mkdocs/docs/home/faq.md
@@ -598,3 +598,10 @@ well. See [#3669](https://github.com/nlohmann/json/issues/3669) for details.
This is not an issue with the code, but rather with the compiler itself. On Android, use a current NDK (see above).
For MinGW, please refer to [this site](http://tehsausage.com/mingw-to-string) and
[this discussion](https://github.com/nlohmann/json/issues/136) for information on how to fix this bug.
+
+## See also
+
+- [`basic_json`](../api/basic_json/index.md) - the main class and all its member functions
+- [Macros](../api/macros/index.md) - reference of all macros
+- [Exceptions](exceptions.md) - all exceptions and their error codes
+- [Features](../features/index.md) - overview of all features
diff --git a/docs/mkdocs/docs/integration/cmake.md b/docs/mkdocs/docs/integration/cmake.md
index a277670ba..c693e971f 100644
--- a/docs/mkdocs/docs/integration/cmake.md
+++ b/docs/mkdocs/docs/integration/cmake.md
@@ -268,3 +268,10 @@ add_executable(myproject main.cpp)
target_link_libraries(myproject PRIVATE nlohmann_json_modules)
target_compile_definitions(myproject PRIVATE NLOHMANN_JSON_BUILD_MODULES)
```
+
+## See also
+
+- [Macros](../api/macros/index.md) - reference of all macros
+- [Supported Macros](../features/macros.md) - the macros that the CMake options set
+- [Modules](../features/modules.md) - C++20 module support
+- [`nlohmann` Namespace](../features/namespace.md) - namespace options set by CMake
diff --git a/docs/mkdocs/docs/integration/compile_times.md b/docs/mkdocs/docs/integration/compile_times.md
index 221625cb9..8798931cb 100644
--- a/docs/mkdocs/docs/integration/compile_times.md
+++ b/docs/mkdocs/docs/integration/compile_times.md
@@ -347,3 +347,7 @@ and −2% / 0% (GCC). To get a saving, combine it with
literals automatically
- [Modules](../features/modules.md) - C++20 module support
- [Header only](index.md) - including the library
+- [Macros](../api/macros/index.md) - reference of all macros
+- [Supported Macros](../features/macros.md) - overview of all configuration macros
+- [Performance](../features/performance.md) - run-time performance
+- [`JSON_NO_IO`](../api/macros/json_no_io.md) - remove all stream and file I/O
diff --git a/docs/mkdocs/docs/integration/index.md b/docs/mkdocs/docs/integration/index.md
index 12a26abe4..dd73ae500 100644
--- a/docs/mkdocs/docs/integration/index.md
+++ b/docs/mkdocs/docs/integration/index.md
@@ -98,8 +98,13 @@ Visual Studio Code, but not with debuggers that wrap LLDB, such as `codelldb`; s
## See also
- [CMake](cmake.md) - integrate the library into a CMake project
-- [Package managers](package_managers.md)
-- [pkg-config](pkg-config.md)
+- [Package managers](package_managers.md) - install the library with a package manager
+- [pkg-config](pkg-config.md) - generate include flags for plain Makefiles
- [Compile times](compile_times.md) - reduce the compile time overhead
- [Migration guide](migration_guide.md) - upgrade from an earlier version
-- [Releases](../home/releases/index.md)
+- [Releases](../home/releases/index.md) - release notes of all versions
+- [`basic_json`](../api/basic_json/index.md) - the main class and all its member functions
+- [Macros](../api/macros/index.md) - reference of all macros
+- [Supported Macros](../features/macros.md) - configure the library with macros
+- [Modules](../features/modules.md) - C++20 module support
+- [`NLOHMANN_JSON_VERSION_MAJOR`](../api/macros/nlohmann_json_version_major.md) - library version macros
diff --git a/docs/mkdocs/docs/integration/migration_guide.md b/docs/mkdocs/docs/integration/migration_guide.md
index bfbf850e0..4e539a32f 100644
--- a/docs/mkdocs/docs/integration/migration_guide.md
+++ b/docs/mkdocs/docs/integration/migration_guide.md
@@ -283,3 +283,12 @@ exact version and configuration is relevant, use macro
The `nlohmann::detail` namespace is not part of the public API of the library and can change in any version without
an announcement. Do not rely on any function or type in the `detail` namespace.
+
+## See also
+
+- [`JSON_DELETE_DEPRECATED_FUNCTIONS`](../api/macros/json_delete_deprecated_functions.md) - remove deprecated functions to check the migration
+- [`JSON_USE_IMPLICIT_CONVERSIONS`](../api/macros/json_use_implicit_conversions.md) - control implicit conversions
+- [`NLOHMANN_JSON_NAMESPACE`](../api/macros/nlohmann_json_namespace.md) - refer to the library namespace without hard-coding it
+- [`nlohmann` Namespace](../features/namespace.md) - how the library namespace is structured
+- [Converting values](../features/conversions.md) - explicit conversions with get
+- [`basic_json`](../api/basic_json/index.md) - the main class and all its member functions
diff --git a/docs/mkdocs/docs/integration/package_managers.md b/docs/mkdocs/docs/integration/package_managers.md
index bfa994340..84fceae7a 100644
--- a/docs/mkdocs/docs/integration/package_managers.md
+++ b/docs/mkdocs/docs/integration/package_managers.md
@@ -949,3 +949,10 @@ There is no official package published to the [ESP-IDF Component Registry](https
new release and can be used as an unofficial component/package for ESP-IDF and PlatformIO projects. As the library
is header-only, it can otherwise be used directly by adding its `include/` directory to your component's/project's
include paths, like any other integration method described on this page.
+
+## See also
+
+- [CMake](cmake.md) - use the library from CMake
+- [Pkg-config](pkg-config.md) - use the library with pkg-config
+- [`meta`](../api/basic_json/meta.md) - query the library version at run time
+- [`NLOHMANN_JSON_VERSION_MAJOR`](../api/macros/nlohmann_json_version_major.md) - library version macros
diff --git a/docs/mkdocs/docs/integration/pkg-config.md b/docs/mkdocs/docs/integration/pkg-config.md
index 8b2e9047a..26530c70e 100644
--- a/docs/mkdocs/docs/integration/pkg-config.md
+++ b/docs/mkdocs/docs/integration/pkg-config.md
@@ -14,3 +14,9 @@ Users of the [Meson build system](package_managers.md#meson) will also be able t
```meson
json = dependency('nlohmann_json', required: true)
```
+
+## See also
+
+- [Integration](index.md) - all ways to integrate the library
+- [CMake](cmake.md) - use the library from CMake
+- [Package Managers](package_managers.md) - install the library via package managers