diff --git a/pages/02.configuration/01.initializing/docs.md b/pages/02.configuration/01.initializing/docs.md
deleted file mode 100644
index 2c1595b5..00000000
--- a/pages/02.configuration/01.initializing/docs.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Initializing
-taxonomy:
- category: docs
----
-
-
-To configure custom options, simply pass an object containing all of the options with which you would like to initialize Select2, in your call to `.select2()`:
-
-```
-$('.js-example-basic-single').select2({
- placeholder: 'Select an option'
-});
-```
diff --git a/pages/02.configuration/01.options-api/docs.md b/pages/02.configuration/01.options-api/docs.md
new file mode 100644
index 00000000..a3fd3e23
--- /dev/null
+++ b/pages/02.configuration/01.options-api/docs.md
@@ -0,0 +1,50 @@
+---
+title: Configuration API
+taxonomy:
+ category: docs
+---
+
+The following is an attempt to provide a comprehensive list of all configuration options available in Select2.
+
+| Option | Type | Default | Description |
+| ------ | ---- | ------- | ----------- |
+| `adaptContainerCssClass` | | | |
+| `adaptDropdownCssClass` | | | |
+| `ajax` | object | `null` | Provides support for [ajax data sources](/data-sources/ajax). |
+| `allowClear` | boolean | `false` | Provides support for [clearable selections](/selections#clearable-selections). |
+| `amdBase` | string | `select2/` | The base AMD loader path to be used for select2 dependency resolution. This option typically doesn't need to be changed, but is available for situations where module names may change as a result of certain build environments. |
+| `amdLanguageBase` | string | `select2/i18n/` | The base AMD loader language path to be used for select2 language file resolution. This option typically doesn't need to be changed, but is available for situations where module names may change as a result of certain build environments. |
+| `closeOnSelect` | boolean | `true` | Controls whether the dropdown is [closed after a selection is made](/dropdown#forcing-the-dropdown-to-remain-open-after-selection). |
+| `containerCss` | | | |
+| `containerCssClass` | | | |
+| `dataAdapter` | | `SelectAdapter` | Used to override the built-in [DataAdapter](/advanced/default-adapters/data). |
+| `debug` | boolean | | |
+| `dir` | | |
+| `disabled` | boolean | `false` | When set to `true`, the select control will be disabled. |
+| `dropdownAdapter` | | `DropdownAdapter` | Used to override the built-in [DropdownAdapter](/advanced/default-adapters/dropdown) |
+| `dropdownAutoWidth` | boolean | | |
+| `dropdownCss` | string | | |
+| `dropdownCssClass` | string | | |
+| `dropdownParent` | jQuery selector or DOM node | | Allows you to [customize placement](/dropdown#dropdown-placement) of the dropdown. |
+| `escapeMarkup` | | |
+| `initSelection` | callback | | See [`initSelection`](/upgrading/migrating-from-35#removed-the-requirement-of-initselection). **This option was deprecated in Select2 v4.0, and will be removed in v4.1.** |
+| `language` | string or object | | |
+| `matcher` | A callback taking search `params` and the `data` object. | | |
+| `maximumInputLength` | integer | `0` | [Maximum number of characters](/searching#maximum-search-term-length) that may be provided for a search term. |
+| `maximumSelectionLength` | integer | `0` | The maximum number of items that may be selected in a multi-select control. If the value of this option is less than 1, the number of selected items will not be limited.
+| `minimumInputLength` | integer | `0` | [Minimum number of characters required to start a search.](/searching#minimum-search-term-length) |
+| `minimumResultsForSearch` | integer | `0` | The minimum number of results required to [display the search box](/searching#limiting-display-of-the-search-box-to-large-result-sets). |
+| `multiple` | boolean | `false` | This option enables multi-select (pillbox) mode. Select2 will automatically map the value of the `multiple` HTML attribute to this option during initialization. |
+| `placeholder` | string or object | | |
+| `query` | A function taking `params` (including a `callback`) | | **This option was deprecated in Select2 v4.0, and will be removed in v4.1.** |
+| `resultsAdapter` | | `ResultsAdapter` | Used to override the built-in [ResultsAdapter](/advanced/default-adapters/results). |
+| `selectionAdapter` | | `SingleSelection` or `MultipleSelection`, depending on the value of `multiple`. | Used to override the built-in [SelectionAdapter](/advanced/default-adapters/selection). |
+| `selectOnClose` | boolean | `false` | Implements [automatic selection](/dropdown#automatic-selection) when the dropdown is closed. |
+| `sorter` | function | | |
+| `tags` | boolean / array of objects | `false` | Used to enable [free text responses](/tagging). |
+| `templateResult` | callback | | |
+| `templateSelection` | callback | | |
+| `theme` | string | `default` | Allows you to set the [theme](/appearance#themes). |
+| `tokenizer` | | |
+| `tokenSeparators` | | | |
+| `width` | string | `resolve` | Supports [customization of the container width](/appearance#container-width). |
diff --git a/pages/02.configuration/01.initializing/02.defaults/docs.md b/pages/02.configuration/02.defaults/docs.md
similarity index 100%
rename from pages/02.configuration/01.initializing/02.defaults/docs.md
rename to pages/02.configuration/02.defaults/docs.md
diff --git a/pages/02.configuration/02.deprecated/docs.md b/pages/02.configuration/02.deprecated/docs.md
deleted file mode 100644
index 83c7c7e6..00000000
--- a/pages/02.configuration/02.deprecated/docs.md
+++ /dev/null
@@ -1,210 +0,0 @@
----
-title: Deprecated options
-taxonomy:
- category: docs
----
-
-
-
- Select2 offers limited backwards compatibility with the previously 3.5.x
- release line, allowing people more efficiently transfer across releases
- and get the latest features. For many of the larger changes, such as the
- change in how custom data adapters work, compatibility modules were
- created that will be used to assist in the upgrade process. It is not
- recommended to rely on these compatibility modules, as they will not
- always exist, but they make upgrading easier for major changes.
-
-
-
- The compatibility modules are only included in the
- full builds of
- Select2. These files end in .full.js, and the
- compatibility modules are prefixed with select2/compat.
-
-
-
-
-
- Simplified function for matching data objects
-
-
-
- Added in Select2 4.0.0.
- This method was added to make upgrading easier from earlier versions of
- Select2.
-
-
-
- During the Select2 4.0.0 release, the
- matcher function was changed to allow for more complex
- matching of nested objects.
-
-
-
-
-
-
Key
-
- matcher
-
-
-
Value
-
- A function taking a search term and the data object
- text.
-
-
-
-
-
-
-
Adapter
-
- oldMatcher
-
-
-
-
-
-
- The custom matcher example provides a
- guide for how to use this in your own application. For those upgrading
- from older versions of Select2, you just need to wrap your old
- matcher with this function to maintain compatibility.
-
- In the past, Select2 required an option called initSelection
- that was defined whenever a custom data source was being used, allowing
- for the initial selection for the component to be determined. This has
- been replaced by the current method on the
- data adapter.
-
- In the past, Select2 supported an option called query that
- allowed for a custom data source to be used. This option has been replaced
- by the query method on the
- data adapter and takes a very similar set of
- parameters.
-
-
-
-
-
-
Key
-
- query
-
-
-
Value
-
- A function taking params (including a callback)
-
- In past versions of Select2, a <select> element could
- only be used with a limited subset of options. An
- <input type="hidden" /> was required instead, which did
- not allow for a graceful fallback for users who did not have JavaScript
- enabled. Select2 now supports the <select> element for
- all options, so it is no longer required to use <input />
- elements with Select2.
-
-
-
-
Adapter
-
- DataAdapter
-
-
-
Decorator
-
- InputData
-
-
-
diff --git a/pages/02.configuration/01.initializing/01.data-attributes/docs.md b/pages/02.configuration/03.data-attributes/docs.md
similarity index 85%
rename from pages/02.configuration/01.initializing/01.data-attributes/docs.md
rename to pages/02.configuration/03.data-attributes/docs.md
index 539af56e..dc5bb13d 100644
--- a/pages/02.configuration/01.initializing/01.data-attributes/docs.md
+++ b/pages/02.configuration/03.data-attributes/docs.md
@@ -1,10 +1,10 @@
---
-title: Via data-* attributes
+title: data-* attributes
taxonomy:
category: docs
---
-It is recommended that you declare your configuration options by [passing in an object](/options/initializing) when initializing Select2. However, you may also define your configuration options by using the HTML5 `data-*` attributes, which will override any options set when initializing Select2 and any [defaults](/options/initializing/defaults).
+It is recommended that you declare your configuration options by [passing in an object](/configuration) when initializing Select2. However, you may also define your configuration options by using the HTML5 `data-*` attributes, which will override any options set when initializing Select2 and any [defaults](/configuration/defaults).
```