This is an automated email from the ASF dual-hosted git repository.

jorisvandenbossche pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 7dc9f69a8a GH-36590: [Docs] Support Pydata Sphinx Theme 0.14.0 (#36591)
7dc9f69a8a is described below

commit 7dc9f69a8a77345d0ec7920af9224ef96d7f5f78
Author: Alenka Frim <[email protected]>
AuthorDate: Wed Sep 27 16:23:26 2023 +0200

    GH-36590: [Docs] Support Pydata Sphinx Theme 0.14.0 (#36591)
    
    Preview: http://crossbow.voltrondata.com/pr_docs/36591/
    
    ### Rationale for this change
    
    The Pydata Sphinx Theme that we use for our documentation has been pinned 
due to bigger changes in the theme layout. It needs to be unpinned and our 
layout needs to be updated.
    
    ### What changes are included in this PR?
    
    Update of the Pydata Sphinx Theme and changes to our layout/structure:
    
    - dark/light mode
    - top menu bar
    - search button in the top right navigation bar
    - drop down from the theme layout in the top right navigation bar
    - version warnings bar from the theme layout
    - main landing page and the landing page for the dev docs
    
    ⚠️ Needs an update of the 
[versions.json](https://github.com/apache/arrow-site/blob/AlenkaF-patch-1/docs/_static/versions.json)
    
    ### Are these changes tested?
    
    Yes, locally. Will also add docs preview via GitHub actions.
    
    ### Are there any user-facing changes?
    
    No.
    
    * Closes: #32451
    * Closes: #36590
    
    Lead-authored-by: AlenkaF <[email protected]>
    Co-authored-by: Sutou Kouhei <[email protected]>
    Signed-off-by: Joris Van den Bossche <[email protected]>
---
 ci/conda_env_sphinx.txt                            |   2 +-
 dev/release/01-prepare-test.rb                     |   3 +-
 dev/release/post-11-bump-versions-test.rb          |   3 +-
 dev/release/utils-update-docs-versions.py          |  10 +-
 docs/requirements.txt                              |   3 +-
 docs/source/_static/arrow-dark.png                 | Bin 0 -> 91541 bytes
 docs/source/_static/theme_overrides.css            |  85 +--------
 docs/source/_static/versions.json                  |  47 +++--
 docs/source/_static/versionwarning.js              |   2 +
 docs/source/_templates/docs-sidebar.html           |  25 ---
 docs/source/_templates/layout.html                 |  10 --
 docs/source/_templates/version-switcher.html       |  60 -------
 docs/source/c_glib/index.rst                       |   2 +
 docs/source/conf.py                                |  37 +++-
 docs/source/cpp/index.rst                          |  55 ++++--
 .../developers/continuous_integration/index.rst    |   1 +
 .../developers/continuous_integration/overview.rst |   2 +-
 docs/source/developers/contributing.rst            | 190 --------------------
 docs/source/developers/images/book-open-solid.svg  |   2 +-
 docs/source/developers/images/bug-solid.svg        |   2 +-
 docs/source/developers/images/code-solid.svg       |   2 +-
 docs/source/developers/images/users-solid.svg      |   2 +-
 docs/source/developers/index.rst                   | 198 ++++++++++++++++++++-
 docs/source/developers/overview.rst                |   6 +-
 docs/source/developers/release.rst                 |   2 +
 docs/source/format/index.rst                       |   7 +-
 docs/source/index.rst                              | 115 +++++++-----
 docs/source/java/index.rst                         |   3 +
 docs/source/js/index.rst                           |   2 +
 docs/source/python/index.rst                       |   8 +-
 docs/source/r/index.rst                            |   2 +
 31 files changed, 416 insertions(+), 472 deletions(-)

diff --git a/ci/conda_env_sphinx.txt b/ci/conda_env_sphinx.txt
index bd08937ae8..af1bfe9b78 100644
--- a/ci/conda_env_sphinx.txt
+++ b/ci/conda_env_sphinx.txt
@@ -20,7 +20,7 @@ breathe
 doxygen
 ipython
 numpydoc
-pydata-sphinx-theme==0.8
+pydata-sphinx-theme
 sphinx-autobuild
 sphinx-design
 sphinx-copybutton
diff --git a/dev/release/01-prepare-test.rb b/dev/release/01-prepare-test.rb
index 1062e8b06c..54437e9da6 100644
--- a/dev/release/01-prepare-test.rb
+++ b/dev/release/01-prepare-test.rb
@@ -170,7 +170,8 @@ class PrepareTest < Test::Unit::TestCase
               "+        \"name\": \"#{@release_compatible_version} 
(stable)\",",
               "+    {",
               "+        \"name\": \"#{@previous_compatible_version}\",",
-              "+        \"version\": \"#{@previous_compatible_version}/\"",
+              "+        \"version\": \"#{@previous_compatible_version}/\",",
+              "+        \"url\": 
\"https://arrow.apache.org/docs/#{@previous_compatible_version}/\"";,
               "+    },",
             ],
           ],
diff --git a/dev/release/post-11-bump-versions-test.rb 
b/dev/release/post-11-bump-versions-test.rb
index 0ef4646236..8253472ccc 100644
--- a/dev/release/post-11-bump-versions-test.rb
+++ b/dev/release/post-11-bump-versions-test.rb
@@ -148,7 +148,8 @@ class PostBumpVersionsTest < Test::Unit::TestCase
               "+        \"name\": \"#{@release_compatible_version} 
(stable)\",",
               "+    {",
               "+        \"name\": \"#{@previous_compatible_version}\",",
-              "+        \"version\": \"#{@previous_compatible_version}/\"",
+              "+        \"version\": \"#{@previous_compatible_version}/\",",
+              "+        \"url\": 
\"https://arrow.apache.org/docs/#{@previous_compatible_version}/\"";,
               "+    },",
             ],
           ],
diff --git a/dev/release/utils-update-docs-versions.py 
b/dev/release/utils-update-docs-versions.py
index 6e0137b7c8..7ca4059214 100644
--- a/dev/release/utils-update-docs-versions.py
+++ b/dev/release/utils-update-docs-versions.py
@@ -50,11 +50,15 @@ if release_type != "patch":
     # Create new versions
     new_versions = [
         {"name": f"{dev_compatible_version} (dev)",
-         "version": "dev/"},
+         "version": "dev/",
+         "url": "https://arrow.apache.org/docs/dev/"},
         {"name": f"{stable_compatible_version} (stable)",
-         "version": ""},
+         "version": "",
+         "url": "https://arrow.apache.org/docs/";,
+         "preferred": True},
         {"name": previous_compatible_version,
-         "version": f"{previous_compatible_version}/"},
+         "version": f"{previous_compatible_version}/",
+         "url": 
f"https://arrow.apache.org/docs/{previous_compatible_version}/"},
         *old_versions[2:],
     ]
     with open(main_versions_path, 'w') as json_file:
diff --git a/docs/requirements.txt b/docs/requirements.txt
index a4e5f7197b..37a50d51dd 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -5,10 +5,9 @@
 breathe
 ipython
 numpydoc
-pydata-sphinx-theme==0.8
+pydata-sphinx-theme
 sphinx-autobuild
 sphinx-design
 sphinx-copybutton
-sphinxcontrib-jquery
 sphinx==6.2
 pandas
diff --git a/docs/source/_static/arrow-dark.png 
b/docs/source/_static/arrow-dark.png
new file mode 100644
index 0000000000..618204a237
Binary files /dev/null and b/docs/source/_static/arrow-dark.png differ
diff --git a/docs/source/_static/theme_overrides.css 
b/docs/source/_static/theme_overrides.css
index e64d40f111..eeba0ef4cc 100644
--- a/docs/source/_static/theme_overrides.css
+++ b/docs/source/_static/theme_overrides.css
@@ -21,43 +21,15 @@
 /* Customizing with theme CSS variables */
 
 :root {
-  --pst-color-active-navigation: 215, 70, 51;
-  --pst-color-link-hover: 215, 70, 51;
-  --pst-color-headerlink: 215, 70, 51;
-  /* Use normal text color (like h3, ..) instead of primary color */
-  --pst-color-h1: var(--color-text-base);
-  --pst-color-h2: var(--color-text-base);
-  /* Use softer blue from bootstrap's default info color */
-  --pst-color-info: 23, 162, 184;
-  --pst-header-height: 0px;
-}
-
-code {
-  color: rgb(215, 70, 51);
-}
-
-.footer {
-  text-align: center;
-}
-
-/* Ensure the logo is properly displayed */
-
-.navbar-brand {
-  height: auto;
-  width: auto;
-}
-
-a.navbar-brand img {
-  height: auto;
-  width: auto;
-  max-height: 15vh;
-  max-width: 100%;
+  /* Change header hight to make the logo a bit larger */
+  --pst-header-height: 6rem;
+  /* Make headings more bold */
+  --pst-font-weight-heading: 600;
 }
 
 /* Contibuting landing page overview cards */
 
 .contrib-card {
-  background: #fff;
   border-radius: 0;
   padding: 30px 10px 20px 10px;
   margin: 10px 0px;
@@ -70,12 +42,12 @@ a.navbar-brand img {
 .contrib-card .sd-card-img-top {
   margin: 2px;
   height: 75px;
+  background: none !important;
 }
 
 .contrib-card .sd-card-title {
-  /* color: rgb(var(--pst-color-h1)) !important; */
+  color: var(--pst-color-primary);
   font-size: var(--pst-font-size-h3);
-  /* font-weight: bold; */
   padding: 1rem 0rem 0.5rem 0rem;
 }
 
@@ -112,48 +84,3 @@ dl.cpp.enumerator {
 p.breathe-sectiondef-title {
   margin-top: 1rem;
 }
-
-/* Limit the max height of the sidebar navigation section. Because in our
-custimized template, there is more content above the navigation, i.e.
-larger logo: if we don't decrease the max-height, it will overlap with
-the footer.
-Details: min(15vh, 110px) for the logo size, 8rem for search box etc*/
-
-@media (min-width:720px) {
-  @supports (position:-webkit-sticky) or (position:sticky) {
-    .bd-links {
-      max-height: calc(100vh - min(15vh, 110px) - 8rem)
-    }
-  }
-}
-
-/* Styling to get the version dropdown and search box side-by-side on wide 
screens */
-
-#version-search-wrapper {
-  width: inherit;
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: left;
-  align-items: center;
-}
-
-#version-button {
-  padding-left: 0.5rem;
-  padding-right: 1rem;
-}
-
-#search-box {
-  flex: 1 0 12em;
-}
-
-/* Fix table text wrapping in RTD theme,
- * see https://rackerlabs.github.io/docs-rackspace/tools/rtd-tables.html
- */
-
-@media screen {
-    table.docutils td {
-        /* !important prevents the common CSS stylesheets from overriding
-          this as on RTD they are loaded after this stylesheet */
-        white-space: normal !important;
-    }
-}
diff --git a/docs/source/_static/versions.json 
b/docs/source/_static/versions.json
index f91b0a17e7..8d9c5878c8 100644
--- a/docs/source/_static/versions.json
+++ b/docs/source/_static/versions.json
@@ -1,62 +1,73 @@
 [
     {
         "name": "14.0 (dev)",
-        "version": "dev/"
+        "version": "dev/",
+        "url": "https://arrow.apache.org/docs/dev/";
     },
     {
         "name": "13.0 (stable)",
-        "version": ""
+        "version": "",
+        "url": "https://arrow.apache.org/docs/";,
+        "preferred": true
     },
     {
         "name": "12.0",
-        "version": "12.0/"
-    },
-    {
-        "name": "12.0",
-        "version": "12.0/"
+        "version": "12.0/",
+        "url": "https://arrow.apache.org/docs/12.0/";
     },
     {
         "name": "11.0",
-        "version": "11.0/"
+        "version": "11.0/",
+        "url": "https://arrow.apache.org/docs/11.0/";
     },
     {
         "name": "10.0",
-        "version": "10.0/"
+        "version": "10.0/",
+        "url": "https://arrow.apache.org/docs/10.0/";
     },
     {
         "name": "9.0",
-        "version": "9.0/"
+        "version": "9.0/",
+        "url": "https://arrow.apache.org/docs/9.0/";
     },
     {
         "name": "8.0",
-        "version": "8.0/"
+        "version": "8.0/",
+        "url": "https://arrow.apache.org/docs/8.0/";
     },
     {
         "name": "7.0",
-        "version": "7.0/"
+        "version": "7.0/",
+        "url": "https://arrow.apache.org/docs/7.0/";
     },
     {
         "name": "6.0",
-        "version": "6.0/"
+        "version": "6.0/",
+        "url": "https://arrow.apache.org/docs/6.0/";
     },
     {
         "name": "5.0",
-        "version": "5.0/"
+        "version": "5.0/",
+        "url": "https://arrow.apache.org/docs/5.0/";
     },
     {
         "name": "4.0",
-        "version": "4.0/"
+        "version": "4.0/",
+        "url": "https://arrow.apache.org/docs/4.0/";
     },
     {
         "name": "3.0",
-        "version": "3.0/"
+        "version": "3.0/",
+        "url": "https://arrow.apache.org/docs/3.0/";
     },
     {
         "name": "2.0",
-        "version": "2.0/"
+        "version": "2.0/",
+        "url": "https://arrow.apache.org/docs/2.0/";
     },
     {
         "name": "1.0",
-        "version": "1.0/"
+        "version": "1.0/",
+        "url": "https://arrow.apache.org/docs/dev/";
     }
 ]
diff --git a/docs/source/_static/versionwarning.js 
b/docs/source/_static/versionwarning.js
index 601b93b75d..e53c160ed9 100644
--- a/docs/source/_static/versionwarning.js
+++ b/docs/source/_static/versionwarning.js
@@ -17,6 +17,8 @@
 
 (function() {
     // adapted 2022-11 from https://mne.tools/versionwarning.js
+    // Not used anymore for versions 14.0.0 and higher
+    // Kept for older docs versions (13.0.0 and lower)
     if (location.hostname == 'arrow.apache.org') {
         $.getJSON("https://arrow.apache.org/docs/_static/versions.json";, 
function(data){
             var latestStable = data[1].name.replace(" (stable)","");
diff --git a/docs/source/_templates/docs-sidebar.html 
b/docs/source/_templates/docs-sidebar.html
deleted file mode 100644
index 26d42a82f1..0000000000
--- a/docs/source/_templates/docs-sidebar.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-<a class="navbar-brand" href="{{ pathto(master_doc) }}">
-  <img src="{{ logo_url|e }}" class="logo" alt="logo">
-</a>
-
-<div id="version-search-wrapper">
-
-{% include "version-switcher.html" %}
-
-<form id="search-box" class="bd-search d-flex align-items-center" action="{{ 
pathto('search') }}" method="get">
-  <i class="icon fas fa-search"></i>
-  <input type="search" class="form-control" name="q" id="search-input" 
placeholder="{{ theme_search_bar_text }}" aria-label="{{ theme_search_bar_text 
}}" autocomplete="off" >
-</form>
-
-</div>
-
-<nav class="bd-links" id="bd-docs-nav" aria-label="Main navigation">
-  <div class="bd-toc-item active">
-    {% if "python/api" in pagename or "python/generated" in pagename %}
-    {{ generate_nav_html("sidebar", startdepth=0, maxdepth=3, collapse=False, 
includehidden=True, titles_only=True) }}
-    {% else %}
-    {{ generate_nav_html("sidebar", startdepth=0, maxdepth=4, collapse=False, 
includehidden=True, titles_only=True) }}
-    {% endif %}
-  </div>
-</nav>
diff --git a/docs/source/_templates/layout.html 
b/docs/source/_templates/layout.html
index ca39e8e5a8..956e0142c5 100644
--- a/docs/source/_templates/layout.html
+++ b/docs/source/_templates/layout.html
@@ -22,13 +22,3 @@
   </script>
   <!-- End Matomo Code -->
 {% endblock %}
-
-{# Silence the navbar #}
-{% block docs_navbar %}
-{% endblock %}
-
-{# Add version warnings #}
-{% block footer %}
-  {{ super() }}
-  <script type="text/javascript" 
src="/docs/_static/versionwarning.js"></script>
-{% endblock %}
diff --git a/docs/source/_templates/version-switcher.html 
b/docs/source/_templates/version-switcher.html
deleted file mode 100644
index 24a8c15ac0..0000000000
--- a/docs/source/_templates/version-switcher.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<div id="version-button" class="dropdown">
-    <button type="button" class="btn btn-secondary btn-sm navbar-btn 
dropdown-toggle" id="version_switcher_button" data-toggle="dropdown">
-        {{ release }}
-        <span class="caret"></span>
-    </button>
-    <div id="version_switcher" class="dropdown-menu list-group-flush py-0" 
aria-labelledby="version_switcher_button">
-    <!-- dropdown will be populated by javascript on page load -->
-    </div>
-</div>
-
-<script type="text/javascript">
-// Function to construct the target URL from the JSON components
-function buildURL(entry) {
-    var template = "{{ switcher_template_url }}";  // supplied by jinja
-    template = template.replace("{version}", entry.version);
-    return template;
-}
-
-// Function to check if corresponding page path exists in other version of docs
-// and, if so, go there instead of the homepage of the other docs version
-function checkPageExistsAndRedirect(event) {
-    const currentFilePath = "{{ pagename }}.html",
-          otherDocsHomepage = event.target.getAttribute("href");
-    let tryUrl = `${otherDocsHomepage}${currentFilePath}`;
-    $.ajax({
-        type: 'HEAD',
-        url: tryUrl,
-        // if the page exists, go there
-        success: function() {
-            location.href = tryUrl;
-        }
-    }).fail(function() {
-        location.href = otherDocsHomepage;
-    });
-    return false;
-}
-
-// Function to populate the version switcher
-(function () {
-    // get JSON config
-    $.getJSON("{{ switcher_json_url }}", function(data, textStatus, jqXHR) {
-        // create the nodes first (before AJAX calls) to ensure the order is
-        // correct (for now, links will go to doc version homepage)
-        $.each(data, function(index, entry) {
-            // if no custom name specified (e.g., "latest"), use version string
-            if (!("name" in entry)) {
-                entry.name = entry.version;
-            }
-            // construct the appropriate URL, and add it to the dropdown
-            entry.url = buildURL(entry);
-            const node = document.createElement("a");
-            node.setAttribute("class", "list-group-item list-group-item-action 
py-1");
-            node.setAttribute("href", `${entry.url}`);
-            node.textContent = `${entry.name}`;
-            node.onclick = checkPageExistsAndRedirect;
-            $("#version_switcher").append(node);
-        });
-    });
-})();
-</script>
diff --git a/docs/source/c_glib/index.rst b/docs/source/c_glib/index.rst
index 56db23f2a2..b10524eb2e 100644
--- a/docs/source/c_glib/index.rst
+++ b/docs/source/c_glib/index.rst
@@ -15,6 +15,8 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _c-glib:
+
 C/GLib docs
 ===========
 
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 23b7070c4a..e9e8969f55 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -115,7 +115,6 @@ extensions = [
     'IPython.sphinxext.ipython_console_highlighting',
     'IPython.sphinxext.ipython_directive',
     'numpydoc',
-    "sphinxcontrib.jquery",
     'sphinx_design',
     'sphinx_copybutton',
     'sphinx.ext.autodoc',
@@ -288,16 +287,37 @@ html_theme = 'pydata_sphinx_theme'
 # further.  For a list of options available for each theme, see the
 # documentation.
 #
+
 html_theme_options = {
     "show_toc_level": 2,
     "use_edit_page_button": True,
+    "logo": {
+      "image_light": "_static/arrow.png",
+      "image_dark": "_static/arrow-dark.png",
+    },
+    "header_links_before_dropdown": 2,
+    "header_dropdown_text": "Language implementations",
+    "navbar_end": ["version-switcher", "theme-switcher", "navbar-icon-links"],
+    "icon_links": [
+        {
+            "name": "GitHub",
+            "url": "https://github.com/apache/arrow";,
+            "icon": "fa-brands fa-square-github",
+        },
+        {
+            "name": "Twitter",
+            "url": "https://twitter.com/ApacheArrow";,
+            "icon": "fa-brands fa-square-twitter",
+        },
+    ],
+    "show_version_warning_banner": True,
+    "switcher": {
+        "json_url": "/docs/_static/versions.json",
+        "version_match": version,
+    },
 }
 
 html_context = {
-    "switcher_json_url": "/docs/_static/versions.json",
-    "switcher_template_url": "https://arrow.apache.org/docs/{version}";,
-    # for local testing
-    # "switcher_template_url": "http://0.0.0.0:8000/docs/{version}";,
     "github_user": "apache",
     "github_repo": "arrow",
     "github_version": "main",
@@ -319,7 +339,7 @@ html_title = u'Apache Arrow v{}'.format(version)
 # The name of an image file (relative to this directory) to place at the top
 # of the sidebar.
 #
-html_logo = "_static/arrow.png"
+# html_logo = "_static/arrow.png"
 
 # The name of an image file (relative to this directory) to use as a favicon of
 # the docs.  This file should be a Windows icon file (.ico) being 16x16 or
@@ -354,10 +374,9 @@ html_css_files = ['theme_overrides.css']
 
 # Custom sidebar templates, maps document names to template names.
 #
-html_sidebars = {
+# html_sidebars = {
 #    '**': ['sidebar-logo.html', 'sidebar-search-bs.html', 
'sidebar-nav-bs.html'],
-    '**': ['docs-sidebar.html'],
-}
+# }
 
 # The base URL which points to the root of the HTML documentation,
 # used for canonical url
diff --git a/docs/source/cpp/index.rst b/docs/source/cpp/index.rst
index e06453e202..6d4d4aaa81 100644
--- a/docs/source/cpp/index.rst
+++ b/docs/source/cpp/index.rst
@@ -15,6 +15,8 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _cpp:
+
 C++ Implementation
 ==================
 
@@ -25,9 +27,9 @@ Welcome to the Apache Arrow C++ implementation documentation!
    :padding: 2 2 0 0
    :class-container: sd-text-center
 
-   .. grid-item-card:: Basic understanding
+   .. grid-item-card:: Getting started
       :class-card: contrib-card
-      :shadow: md
+      :shadow: none
 
       Start here to gain a basic understanding of Arrow with
       an installation and linking guide, documentation of
@@ -37,14 +39,14 @@ Welcome to the Apache Arrow C++ implementation 
documentation!
 
       .. button-link:: getting_started.html
          :click-parent:
-         :color: secondary
+         :color: primary
          :expand:
 
-         Getting started
+         To Getting started
 
    .. grid-item-card:: User Guide
       :class-card: contrib-card
-      :shadow: md
+      :shadow: none
 
       Explore more specific topics and underlying concepts
       of Arrow C++
@@ -53,19 +55,19 @@ Welcome to the Apache Arrow C++ implementation 
documentation!
 
       .. button-link:: user_guide.html
          :click-parent:
-         :color: secondary
+         :color: primary
          :expand:
 
-         User Guide
+         To the User Guide
 
 .. grid:: 2
    :gutter: 4
    :padding: 2 2 0 0
    :class-container: sd-text-center
 
-   .. grid-item-card:: Examples of use
+   .. grid-item-card:: Examples
       :class-card: contrib-card
-      :shadow: md
+      :shadow: none
 
       Find the description and location of the examples
       using Arrow C++ library
@@ -74,14 +76,14 @@ Welcome to the Apache Arrow C++ implementation 
documentation!
 
       .. button-link:: examples/index.html
          :click-parent:
-         :color: secondary
+         :color: primary
          :expand:
 
-         Examples
+         To the Examples
 
-   .. grid-item-card:: Reference documentation
+   .. grid-item-card:: API Reference
       :class-card: contrib-card
-      :shadow: md
+      :shadow: none
 
       Explore Arrow’s API reference documentation
 
@@ -89,10 +91,32 @@ Welcome to the Apache Arrow C++ implementation 
documentation!
 
       .. button-link:: api.html
          :click-parent:
-         :color: secondary
+         :color: primary
+         :expand:
+
+         To the API Reference
+
+.. grid:: 1
+   :gutter: 4
+   :padding: 2 2 0 0
+   :class-container: sd-text-center
+
+   .. grid-item-card:: Cookbook
+      :class-card: contrib-card
+      :shadow: none
+
+      Collection of recipes which demonstrate how to
+      solve many common tasks that users might need
+      to perform when working with arrow data
+
+      +++
+
+      .. button-link:: https://arrow.apache.org/cookbook/cpp/
+         :click-parent:
+         :color: primary
          :expand:
 
-         API Reference
+         To the Cookbook
 
 .. toctree::
    :maxdepth: 2
@@ -102,3 +126,4 @@ Welcome to the Apache Arrow C++ implementation 
documentation!
    user_guide
    Examples <examples/index>
    api
+   C++ cookbook <https://arrow.apache.org/cookbook/cpp/>
diff --git a/docs/source/developers/continuous_integration/index.rst 
b/docs/source/developers/continuous_integration/index.rst
index 6e8e26981c..f988b5ab69 100644
--- a/docs/source/developers/continuous_integration/index.rst
+++ b/docs/source/developers/continuous_integration/index.rst
@@ -15,6 +15,7 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _continuous_integration:
 
 **********************
 Continuous Integration
diff --git a/docs/source/developers/continuous_integration/overview.rst 
b/docs/source/developers/continuous_integration/overview.rst
index 1d82e845a3..3e155bf600 100644
--- a/docs/source/developers/continuous_integration/overview.rst
+++ b/docs/source/developers/continuous_integration/overview.rst
@@ -20,7 +20,7 @@
 Continuous Integration
 ======================
 
-Continuous Integration for Arrow is fairly complex as it needs to run across 
different combinations of package managers, compilers, versions of multiple 
sofware libraries, operating systems, and other potential sources of variation. 
 In this article, we will give an overview of its main components and the 
relevant files and directories.
+Continuous Integration for Arrow is fairly complex as it needs to run across 
different combinations of package managers, compilers, versions of multiple 
software libraries, operating systems, and other potential sources of 
variation.  In this article, we will give an overview of its main components 
and the relevant files and directories.
 
 Some files central to Arrow CI are:
 
diff --git a/docs/source/developers/contributing.rst 
b/docs/source/developers/contributing.rst
deleted file mode 100644
index 6dc2a4e014..0000000000
--- a/docs/source/developers/contributing.rst
+++ /dev/null
@@ -1,190 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one
-.. or more contributor license agreements.  See the NOTICE file
-.. distributed with this work for additional information
-.. regarding copyright ownership.  The ASF licenses this file
-.. to you under the Apache License, Version 2.0 (the
-.. "License"); you may not use this file except in compliance
-.. with the License.  You may obtain a copy of the License at
-
-..   http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing,
-.. software distributed under the License is distributed on an
-.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-.. KIND, either express or implied.  See the License for the
-.. specific language governing permissions and limitations
-.. under the License.
-
-.. highlight:: console
-
-.. _contributing:
-
-****************************
-Contributing to Apache Arrow
-****************************
-
-**Thanks for your interest in the Apache Arrow project.**
-
-Arrow is a large project and may seem overwhelming when you're
-first getting involved. Contributing code is great, but that's
-probably not the first place to start. There are lots of ways to
-make valuable contributions to the project and community.
-
-This page provides some orientation for how to get involved. It also offers
-some recommendations on how to get the best results when engaging with the
-community.
-
-Code of Conduct
-===============
-
-All participation in the Apache Arrow project is governed by the ASF's
-`Code of Conduct <https://www.apache.org/foundation/policies/conduct.html>`_.
-
-.. grid:: 2
-   :gutter: 4
-   :padding: 2 2 0 0
-   :class-container: sd-text-center
-
-   .. grid-item-card:: Community
-      :img-top: ./images/users-solid.svg
-      :class-card: contrib-card
-      :shadow: md
-
-      A good first step to getting involved in the Arrow project is to join
-      the mailing lists and participate in discussions where you can.
-
-      +++
-
-      .. button-link:: https://arrow.apache.org/community/
-         :click-parent:
-         :color: secondary
-         :expand:
-
-         Apache Arrow Community
-
-   .. grid-item-card:: Bug reports
-      :img-top: ./images/bug-solid.svg
-      :class-card: contrib-card
-      :shadow: md
-
-      Alerting us to unexpected behavior and missing features, even
-      if you can't solve the problems yourself, help us understand
-      and prioritize work to improve the libraries.
-
-      +++
-
-      .. button-ref:: bug-reports
-         :ref-type: ref
-         :click-parent:
-         :color: secondary
-         :expand:
-
-         Bugs and Features
-
-.. dropdown:: Communicating through the mailing lists
-   :animate: fade-in-slide-down
-   :class-title: sd-fs-5
-   :class-container: sd-shadow-md
-
-   Projects in The Apache Software Foundation ("the ASF") use public, archived
-   mailing lists to create a public record of each project's development
-   activities and decision-making process.
-
-   While lacking the immediacy of chat or other forms of communication,
-   the mailing lists give participants the opportunity to slow down and be
-   thoughtful in their responses, and they help developers who are spread 
across
-   many timezones to participate more equally.
-
-   Read more on the `Apache Arrow Community 
<https://arrow.apache.org/community/>`_
-   page.
-
-.. dropdown:: Improve documentation
-   :animate: fade-in-slide-down
-   :class-title: sd-fs-5
-   :class-container: sd-shadow-md
-
-   A great way to contribute to the project is to improve documentation. If you
-   found some docs to be incomplete or inaccurate, share your hard-earned 
knowledge
-   with the rest of the community.
-
-   Documentation improvements are also a great way to gain some experience with
-   our submission and review process, discussed below, without requiring a lot
-   of local development environment setup. In fact, many documentation-only 
changes
-   can be made directly in the GitHub web interface by clicking the "edit" 
button.
-   This will handle making a fork and a pull request for you.
-
-   * :ref:`documentation`
-   * :ref:`building-docs`
-
-.. grid:: 2
-   :gutter: 4
-   :padding: 2 2 0 0
-   :class-container: sd-text-center
-
-   .. grid-item-card:: New Contributors
-      :img-top: ./images/book-open-solid.svg
-      :class-card: contrib-card
-      :shadow: md
-
-      First time contributing?
-
-      The New Contributor's Guide provides necessary information for
-      contributing to the Apache Arrow project.
-
-      +++
-
-      .. button-ref:: guide-introduction
-         :ref-type: ref
-         :click-parent:
-         :color: secondary
-         :expand:
-
-         New Contributor's guide
-
-   .. grid-item-card:: Overview
-      :img-top: ./images/code-solid.svg
-      :class-card: contrib-card
-      :shadow: md
-
-      A short overview of the contributing process we follow
-      and some additional information you might need if you are not
-      new to the contributing process in general.
-      +++
-
-      .. button-ref:: contrib-overview
-         :ref-type: ref
-         :click-parent:
-         :color: secondary
-         :expand:
-
-         Contributing overview
-
-Language specific
-=================
-
-Connection to the specific language development pages:
-
-.. tab-set::
-
-   .. tab-item:: C++
-
-      * :ref:`cpp-development`
-      * :ref:`C++ Development Guidelines <development-cpp>`
-      * :ref:`building-arrow-cpp`
-
-   .. tab-item:: Java
-
-      * :doc:`java/index`
-
-   .. tab-item:: Python
-
-      * :ref:`python-development`
-
-   .. tab-item:: R
-
-      * `Arrow R Package: Developer environment setup 
<https://arrow.apache.org/docs/dev/r/articles/developers/setup.html>`_
-      * `Arrow R Package: Common developer workflow tasks 
<https://arrow.apache.org/docs/dev/r/articles/developers/workflow.html>`_
-
-   .. tab-item:: Ruby
-
-      * `Red Arrow - Apache Arrow Ruby 
<https://github.com/apache/arrow/tree/main/ruby/red-arrow#development>`_
diff --git a/docs/source/developers/images/book-open-solid.svg 
b/docs/source/developers/images/book-open-solid.svg
index cbc8ed2725..9586e249be 100644
--- a/docs/source/developers/images/book-open-solid.svg
+++ b/docs/source/developers/images/book-open-solid.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 576 512"><!--! Font 
Awesome Pro 6.0.0 by @fontawesome - https://fontawesome.com License - 
https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, 
Inc. --><path d="M144.3 32.04C106.9 31.29 63.7 41.44 18.6 61.29c-11.42 
5.026-18.6 16.67-18.6 29.15l0 357.6c0 11.55 11.99 19.55 22.45 14.65c126.3-59.14 
219.8 11 223.8 14.01C249.1 478.9 252.5 480 256 480c12.4 0 16-11.38 
16-15.98V80.04c0-5.203-2.531-10.08-6.781-13.08C263.3 [...]
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg"; height="1em" viewBox="0 0 576 
512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com 
License - https://fontawesome.com/license (Commercial License) Copyright 2023 
Fonticons, Inc. --><style>svg{fill:#0a7e91}</style><path d="M249.6 471.5c10.8 
3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 
46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8V454.1c0 11.9 12.8 20.2 24.1 
16.5C55.6 460.1 105.5 448 144 448c33.9 [...]
\ No newline at end of file
diff --git a/docs/source/developers/images/bug-solid.svg 
b/docs/source/developers/images/bug-solid.svg
index f842cb2405..49cc04a1f0 100644
--- a/docs/source/developers/images/bug-solid.svg
+++ b/docs/source/developers/images/bug-solid.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 512 512"><!--! Font 
Awesome Pro 6.0.0 by @fontawesome - https://fontawesome.com License - 
https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, 
Inc. --><path d="M352 96V99.56C352 115.3 339.3 128 323.6 128H188.4C172.7 128 
159.1 115.3 159.1 99.56V96C159.1 42.98 202.1 0 255.1 0C309 0 352 42.98 352 
96zM41.37 105.4C53.87 92.88 74.13 92.88 86.63 105.4L150.6 169.4C151.3 170 151.9 
170.7 152.5 171.4C166.8 164.1 182.9 16 [...]
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg"; height="1em" viewBox="0 0 512 
512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com 
License - https://fontawesome.com/license (Commercial License) Copyright 2023 
Fonticons, Inc. --><style>svg{fill:#0a7e91}</style><path d="M256 0c53 0 96 43 
96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 
43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 
2.1c14.2-7.3 30.4-11.4 47.5-11.4H31 [...]
\ No newline at end of file
diff --git a/docs/source/developers/images/code-solid.svg 
b/docs/source/developers/images/code-solid.svg
index 725f767148..4bbd567528 100644
--- a/docs/source/developers/images/code-solid.svg
+++ b/docs/source/developers/images/code-solid.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 640 512"><!--! Font 
Awesome Pro 6.0.0 by @fontawesome - https://fontawesome.com License - 
https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, 
Inc. --><path d="M414.8 40.79L286.8 488.8C281.9 505.8 264.2 515.6 247.2 
510.8C230.2 505.9 220.4 488.2 225.2 471.2L353.2 23.21C358.1 6.216 375.8-3.624 
392.8 1.232C409.8 6.087 419.6 23.8 414.8 40.79H414.8zM518.6 121.4L630.6 
233.4C643.1 245.9 643.1 266.1 630.6 278.6L518.6  [...]
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg"; height="1em" viewBox="0 0 640 
512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com 
License - https://fontawesome.com/license (Commercial License) Copyright 2023 
Fonticons, Inc. --><style>svg{fill:#0a7c8f}</style><path d="M392.8 
1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 
39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 
45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12 [...]
\ No newline at end of file
diff --git a/docs/source/developers/images/users-solid.svg 
b/docs/source/developers/images/users-solid.svg
index a04d7fe2fd..4bdf638a70 100644
--- a/docs/source/developers/images/users-solid.svg
+++ b/docs/source/developers/images/users-solid.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg"; viewBox="0 0 640 512"><!--! Font 
Awesome Pro 6.0.0 by @fontawesome - https://fontawesome.com License - 
https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, 
Inc. --><path d="M319.9 320c57.41 0 103.1-46.56 
103.1-104c0-57.44-46.54-104-103.1-104c-57.41 0-103.1 46.56-103.1 104C215.9 
273.4 262.5 320 319.9 320zM369.9 352H270.1C191.6 352 128 411.7 128 485.3C128 
500.1 140.7 512 156.4 512h327.2C499.3 512 512 500.1 512 485.3C512 411. [...]
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg"; height="1em" viewBox="0 0 640 
512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com 
License - https://fontawesome.com/license (Commercial License) Copyright 2023 
Fonticons, Inc. --><style>svg{fill:#0a788a}</style><path d="M144 0a80 80 0 1 1 
0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 
239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 
22.3c0 38.2 16.8 72.5 43.3 96c-.2 0 [...]
\ No newline at end of file
diff --git a/docs/source/developers/index.rst b/docs/source/developers/index.rst
index f6a15a6c54..c2f10c9e95 100644
--- a/docs/source/developers/index.rst
+++ b/docs/source/developers/index.rst
@@ -15,12 +15,206 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. highlight:: console
+
+.. _developers:
+
+Development
+===========
+
+Connection to the specific language development pages:
+
+.. tab-set::
+
+   .. tab-item:: C++
+
+      * :ref:`cpp-development`
+      * :ref:`C++ Development Guidelines <development-cpp>`
+      * :ref:`building-arrow-cpp`
+
+   .. tab-item:: Java
+
+      * :doc:`java/index`
+
+   .. tab-item:: Python
+
+      * :ref:`python-development`
+
+   .. tab-item:: R
+
+      * `Arrow R Package: Developer environment setup 
<https://arrow.apache.org/docs/dev/r/articles/developers/setup.html>`_
+      * `Arrow R Package: Common developer workflow tasks 
<https://arrow.apache.org/docs/dev/r/articles/developers/workflow.html>`_
+
+   .. tab-item:: Ruby
+
+      * `Red Arrow - Apache Arrow Ruby 
<https://github.com/apache/arrow/tree/main/ruby/red-arrow#development>`_
+
+.. _contributing:
+
+Contributing to Apache Arrow
+============================
+
+**Thanks for your interest in the Apache Arrow project.**
+
+Arrow is a large project and may seem overwhelming when you're
+first getting involved. Contributing code is great, but that's
+probably not the first place to start. There are lots of ways to
+make valuable contributions to the project and community.
+
+This page provides some orientation for how to get involved. It also offers
+some recommendations on how to get the best results when engaging with the
+community.
+
+Code of Conduct
+---------------
+
+All participation in the Apache Arrow project is governed by the ASF's
+`Code of Conduct <https://www.apache.org/foundation/policies/conduct.html>`_.
+
+.. grid:: 2
+   :gutter: 4
+   :padding: 2 2 0 0
+   :class-container: sd-text-center
+
+   .. grid-item-card:: Apache Arrow Community
+      :img-top: ./images/users-solid.svg
+      :class-card: contrib-card
+      :shadow: none
+
+      A good first step to getting involved in the Arrow project is to join
+      the mailing lists and participate in discussions where you can.
+
+      +++
+
+      .. button-link:: https://arrow.apache.org/community/
+         :click-parent:
+         :color: primary
+         :expand:
+
+         To Apache Arrow Community
+
+   .. grid-item-card:: Bug reports and feature requests
+      :img-top: ./images/bug-solid.svg
+      :class-card: contrib-card
+      :shadow: none
+
+      Alerting us to unexpected behavior and missing features, even
+      if you can't solve the problems yourself, help us understand
+      and prioritize work to improve the libraries.
+
+      +++
+
+      .. button-ref:: bug-reports
+         :ref-type: ref
+         :click-parent:
+         :color: primary
+         :expand:
+
+         To Bug reports and feature requests
+
+.. dropdown:: Communicating through the mailing lists
+   :animate: fade-in-slide-down
+   :class-title: sd-fs-5
+   :class-container: sd-shadow-none
+
+   Projects in The Apache Software Foundation ("the ASF") use public, archived
+   mailing lists to create a public record of each project's development
+   activities and decision-making process.
+
+   While lacking the immediacy of chat or other forms of communication,
+   the mailing lists give participants the opportunity to slow down and be
+   thoughtful in their responses, and they help developers who are spread 
across
+   many timezones to participate more equally.
+
+   Read more on the `Apache Arrow Community 
<https://arrow.apache.org/community/>`_
+   page.
+
+.. dropdown:: Improve documentation
+   :animate: fade-in-slide-down
+   :class-title: sd-fs-5
+
+   A great way to contribute to the project is to improve documentation. If you
+   found some docs to be incomplete or inaccurate, share your hard-earned 
knowledge
+   with the rest of the community.
+
+   Documentation improvements are also a great way to gain some experience with
+   our submission and review process, discussed below, without requiring a lot
+   of local development environment setup. In fact, many documentation-only 
changes
+   can be made directly in the GitHub web interface by clicking the "edit" 
button.
+   This will handle making a fork and a pull request for you.
+
+   * :ref:`documentation`
+   * :ref:`building-docs`
+
+.. grid:: 2
+   :gutter: 4
+   :padding: 2 2 0 0
+   :class-container: sd-text-center
+
+   .. grid-item-card:: New Contributor's guide
+      :img-top: ./images/book-open-solid.svg
+      :class-card: contrib-card
+
+      First time contributing?
+
+      The New Contributor's Guide provides necessary information for
+      contributing to the Apache Arrow project.
+
+      +++
+
+      .. button-ref:: guide-introduction
+         :ref-type: ref
+         :click-parent:
+         :color: primary
+         :expand:
+
+         To the New Contributor's guide
+
+   .. grid-item-card:: Contributing Overview
+      :img-top: ./images/code-solid.svg
+      :class-card: contrib-card
+
+      A short overview of the contributing process we follow
+      and some additional information you might need if you are not
+      new to the contributing process in general.
+      +++
+
+      .. button-ref:: contrib-overview
+         :ref-type: ref
+         :click-parent:
+         :color: primary
+         :expand:
+
+         To Contributing overview
+
+.. dropdown:: Continuous Integration
+   :animate: fade-in-slide-down
+   :class-title: sd-fs-5
+   :class-container: sd-shadow-none
+
+   Continuous Integration needs to run across different combinations of 
package managers, compilers, versions of multiple
+   software libraries, operating systems, and other potential sources of 
variation.
+
+   Read more on the :ref:`continuous_integration` page.
+
+.. dropdown:: Benchmarks
+   :animate: fade-in-slide-down
+   :class-title: sd-fs-5
+   :class-container: sd-shadow-none
+
+   How to use the benchmark suite can be found on the :ref:`benchmarks` page.
+
+.. dropdown:: Release Guide
+   :animate: fade-in-slide-down
+   :class-title: sd-fs-5
+   :class-container: sd-shadow-none
+
+   To learn about the detailed information on the steps followed to perform a 
release, see :ref:`release`.
+
 .. toctree::
    :maxdepth: 2
-   :caption: Development
    :hidden:
 
-   contributing
    bug_reports
    guide/index
    overview
diff --git a/docs/source/developers/overview.rst 
b/docs/source/developers/overview.rst
index 272f3dbd98..c7bc427331 100644
--- a/docs/source/developers/overview.rst
+++ b/docs/source/developers/overview.rst
@@ -45,7 +45,7 @@ checklist for using ``git``:
 
   .. dropdown:: How to squash local commits?
     :animate: fade-in-slide-down
-    :class-container: sd-shadow-md
+    :class-container: sd-shadow-none
 
     Abort the rebase with:
 
@@ -78,7 +78,7 @@ checklist for using ``git``:
     
   .. dropdown:: Setting rebase to be default
     :animate: fade-in-slide-down
-    :class-container: sd-shadow-md
+    :class-container: sd-shadow-none
 
     If you set the following in your repo's ``.git/config``, the ``--rebase`` 
option can be
     omitted from the ``git pull`` command, as it is implied by default.
@@ -136,7 +136,7 @@ will merge the pull request. This is done with a
 
 .. dropdown:: Details on squash merge
   :animate: fade-in-slide-down
-  :class-container: sd-shadow-md
+  :class-container: sd-shadow-none
 
   A pull request is merged with a squash merge so that all of your commits 
will be
   registered as a single commit to the main branch; this simplifies the
diff --git a/docs/source/developers/release.rst 
b/docs/source/developers/release.rst
index 066400b33f..6924c2d714 100644
--- a/docs/source/developers/release.rst
+++ b/docs/source/developers/release.rst
@@ -15,6 +15,8 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _release:
+
 ========================
 Release Management Guide
 ========================
diff --git a/docs/source/format/index.rst b/docs/source/format/index.rst
index 1771b36d76..ae2baf128b 100644
--- a/docs/source/format/index.rst
+++ b/docs/source/format/index.rst
@@ -15,10 +15,13 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _format:
+
+Specifications and Protocols
+============================
+
 .. toctree::
    :maxdepth: 2
-   :caption: Specifications and Protocols
-   :hidden:
 
    Versioning
    Columnar
diff --git a/docs/source/index.rst b/docs/source/index.rst
index b348d3dab2..e8cdf50c5b 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -15,6 +15,8 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+:html_theme.sidebar_secondary.remove:
+
 Apache Arrow
 ============
 
@@ -35,11 +37,71 @@ such topics as:
 **To learn how to use Arrow refer to the documentation specific to your
 target environment.**
 
+.. grid:: 2
+   :gutter: 4
+   :padding: 2 2 0 0
+   :class-container: sd-text-center
+
+   .. grid-item-card:: Specifications and Protocols
+      :class-card: contrib-card
+      :shadow: none
+
+      Read about the Apache Arrow format
+      specifications and Protocols.
+
+      +++
+
+      .. button-ref:: format
+         :ref-type: ref
+         :click-parent:
+         :color: primary
+         :expand:
+
+         To the Specifications and Protocols
+
+   .. grid-item-card:: Development
+      :class-card: contrib-card
+      :shadow: none
+
+      Find the documentation on the topic of
+      contributions, reviews, building of the libraries
+      from source, building of the documentation, 
+      continuous integration, benchmarks and the
+      release process.
+
+      +++
+
+      .. button-ref:: developers
+         :ref-type: ref
+         :click-parent:
+         :color: primary
+         :expand:
+
+         To the Development
+
+.. _toc.columnar:
+
+.. toctree::
+   :maxdepth: 2
+   :hidden:
+
+   format/index
+
+.. _toc.development:
+
+.. toctree::
+   :maxdepth: 2
+   :hidden:
+
+   developers/index
+
+Implementations
+---------------
+
 .. _toc.usage:
 
 .. toctree::
    :maxdepth: 1
-   :caption: Supported Environments
 
    C/GLib <c_glib/index>
    C++ <cpp/index>
@@ -55,52 +117,15 @@ target environment.**
    Rust <https://docs.rs/crate/arrow/>
    status
 
+Examples
+--------
+
 .. _toc.cookbook:
 
 .. toctree::
    :maxdepth: 1
-   :caption: Cookbooks
-
-   C++ <https://arrow.apache.org/cookbook/cpp/>
-   Java <https://arrow.apache.org/cookbook/java/>
-   Python <https://arrow.apache.org/cookbook/py/>
-   R <https://arrow.apache.org/cookbook/r/>
 
-.. _toc.columnar:
-
-.. toctree::
-   :maxdepth: 2
-   :caption: Specifications and Protocols
-
-   format/Versioning
-   format/Columnar
-   format/CanonicalExtensions
-   format/Flight
-   format/FlightSql
-   format/Integration
-   format/CDataInterface
-   format/CStreamInterface
-   format/CDeviceDataInterface
-   format/ADBC
-   format/Other
-   format/Changing
-   format/Glossary
-
-.. _toc.development:
-
-.. toctree::
-   :maxdepth: 2
-   :caption: Development
-
-   developers/contributing
-   developers/bug_reports
-   developers/guide/index
-   developers/overview
-   developers/reviewing
-   developers/cpp/index
-   developers/java/index
-   developers/python
-   developers/continuous_integration/index
-   developers/benchmarks
-   developers/documentation
-   developers/release
+   C++ cookbook <https://arrow.apache.org/cookbook/cpp/>
+   Java cookbook <https://arrow.apache.org/cookbook/java/>
+   Python cookbook <https://arrow.apache.org/cookbook/py/>
+   R cookbook <https://arrow.apache.org/cookbook/r/>
diff --git a/docs/source/java/index.rst b/docs/source/java/index.rst
index 9b555e297b..cf93b0e897 100644
--- a/docs/source/java/index.rst
+++ b/docs/source/java/index.rst
@@ -15,6 +15,8 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _java:
+
 Java Implementation
 ===================
 
@@ -41,3 +43,4 @@ on the Arrow format and other language bindings see the 
:doc:`parent documentati
    cdata
    jdbc
    Reference (javadoc) <reference/index>
+   Java cookbook <https://arrow.apache.org/cookbook/java/>
diff --git a/docs/source/js/index.rst b/docs/source/js/index.rst
index 77813c1372..2ab205a08b 100644
--- a/docs/source/js/index.rst
+++ b/docs/source/js/index.rst
@@ -15,6 +15,8 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _js:
+
 JavaScript docs
 ===============
 
diff --git a/docs/source/python/index.rst b/docs/source/python/index.rst
index b80cbc7de5..6a3de3d42b 100644
--- a/docs/source/python/index.rst
+++ b/docs/source/python/index.rst
@@ -15,8 +15,13 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _python:
+
+Python
+======
+
 PyArrow - Apache Arrow Python bindings
-======================================
+--------------------------------------
 
 This is the documentation of the Python API of Apache Arrow.
 
@@ -62,3 +67,4 @@ files into Arrow structures.
    api
    getting_involved
    benchmarks
+   Python cookbook <https://arrow.apache.org/cookbook/py/>
diff --git a/docs/source/r/index.rst b/docs/source/r/index.rst
index b799544bb6..8ccbec132a 100644
--- a/docs/source/r/index.rst
+++ b/docs/source/r/index.rst
@@ -15,6 +15,8 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
+.. _r:
+
 R docs
 ======
 

Reply via email to