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

tballison pushed a commit to branch TIKA-4743-improve-site
in repository https://gitbox.apache.org/repos/asf/tika.git

commit fe32b0f707b6512eaf5fa154a7ee44a9491d31a8
Author: tallison <[email protected]>
AuthorDate: Thu May 28 09:07:47 2026 -0400

    TIKA-4743 improve search and navigation on site
---
 .../release-guides/release-artifacts.adoc          |   2 +-
 docs/publish-docs.sh                               |  10 +-
 docs/supplemental-ui/css/search.css                |  82 --------------
 docs/supplemental-ui/js/search.js                  | 119 ---------------------
 docs/supplemental-ui/partials/footer-scripts.hbs   |   1 -
 docs/supplemental-ui/partials/head-scripts.hbs     |   1 -
 docs/supplemental-ui/partials/header-content.hbs   |  17 ++-
 7 files changed, 16 insertions(+), 216 deletions(-)

diff --git 
a/docs/modules/ROOT/pages/maintainers/release-guides/release-artifacts.adoc 
b/docs/modules/ROOT/pages/maintainers/release-guides/release-artifacts.adoc
index 8059875491..073757fed8 100644
--- a/docs/modules/ROOT/pages/maintainers/release-guides/release-artifacts.adoc
+++ b/docs/modules/ROOT/pages/maintainers/release-guides/release-artifacts.adoc
@@ -230,4 +230,4 @@ The `release-tika-server` job builds from 
`tika-server-standard-<v>.zip`
 
 * xref:maintainers/release-guides/tika.adoc[Releasing Apache Tika]
 * xref:maintainers/release-guides/docker.adoc[Releasing Tika Docker Images]
-* xref:maintainers/release-guides/site-updates.adoc[Updating the Website After 
a Release]
+* xref:maintainers/site.adoc[Updating the Website After a Release]
diff --git a/docs/publish-docs.sh b/docs/publish-docs.sh
index fcbed4e995..6511071f87 100755
--- a/docs/publish-docs.sh
+++ b/docs/publish-docs.sh
@@ -40,12 +40,16 @@ mkdir -p "${DOCS_DIR}"
 
 # Strip the 'tika/' component dir prefix so URLs are /docs/X.Y.Z/...
 cp -r target/site/tika/* "${DOCS_DIR}/"
-# UI assets one level above docs/, since HTML uses ../../_/ relative paths
-cp -r target/site/_/ "${PUBLISH_DIR}/_/"
+# UI assets one level above docs/, since HTML uses ../../_/ relative paths.
+# Replace wholesale: cp -r into an existing directory nests source as a
+# subdirectory (publish/_/_/), so remove first to keep the layout flat.
+rm -rf "${PUBLISH_DIR}/_"
+cp -r target/site/_ "${PUBLISH_DIR}/_"
 # Fix the root redirect and sitemap to match the flattened layout
 sed 's|tika/||g' target/site/index.html > "${DOCS_DIR}/index.html"
 sed 's|/docs/tika/|/docs/|g' target/site/sitemap.xml > 
"${DOCS_DIR}/sitemap.xml"
 cp target/site/404.html "${DOCS_DIR}/"
-cp target/site/search-index.js "${DOCS_DIR}/"
+# Lunr index lives next to _/ (one level above docs/), since HTML uses 
../../search-index.js
+cp target/site/search-index.js "${PUBLISH_DIR}/"
 
 echo "Published to: ${DOCS_DIR}/"
diff --git a/docs/supplemental-ui/css/search.css 
b/docs/supplemental-ui/css/search.css
deleted file mode 100644
index 5fac6cf03b..0000000000
--- a/docs/supplemental-ui/css/search.css
+++ /dev/null
@@ -1,82 +0,0 @@
-.navbar .search {
-  position: relative;
-  margin-right: 0.5rem;
-}
-
-#search-input {
-  border: 1px solid #dbdbdb;
-  border-radius: 4px;
-  padding: 0.375rem 0.625rem;
-  font-size: 0.875rem;
-  width: 200px;
-  background: #fff;
-}
-
-#search-input:focus {
-  border-color: #3273dc;
-  outline: none;
-  box-shadow: 0 0 0 0.125em rgba(50, 115, 220, 0.25);
-}
-
-#search-results {
-  display: none;
-  position: absolute;
-  top: 100%;
-  right: 0;
-  background: white;
-  border: 1px solid #dbdbdb;
-  border-radius: 4px;
-  max-height: 400px;
-  overflow-y: auto;
-  width: 350px;
-  z-index: 1000;
-  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
-  margin-top: 0.25rem;
-}
-
-.search-result-item {
-  padding: 0.75rem 1rem;
-  border-bottom: 1px solid #f0f0f0;
-}
-
-.search-result-item:last-child {
-  border-bottom: none;
-}
-
-.search-result-item:hover {
-  background: #f5f5f5;
-}
-
-.search-result-item a {
-  color: #363636;
-  text-decoration: none;
-  display: block;
-}
-
-.search-result-item .title {
-  font-weight: 600;
-  margin-bottom: 0.25rem;
-}
-
-.search-result-item .text {
-  font-size: 0.8125rem;
-  color: #666;
-  line-height: 1.4;
-}
-
-/* Footer styles */
-.footer {
-  background: #363636;
-  color: #b5b5b5;
-  padding: 1.5rem;
-  text-align: center;
-  font-size: 0.875rem;
-}
-
-.footer p {
-  margin: 0.25rem 0;
-}
-
-.footer a {
-  color: #fff;
-}
diff --git a/docs/supplemental-ui/js/search.js 
b/docs/supplemental-ui/js/search.js
deleted file mode 100644
index 00af02312d..0000000000
--- a/docs/supplemental-ui/js/search.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Search functionality for Antora with Lunr */
-(function () {
-  'use strict'
-
-  var defined = function (val) {
-    return typeof val !== 'undefined'
-  }
-
-  var searchInput = document.getElementById('search-input')
-  var searchResults = document.getElementById('search-results')
-
-  if (!searchInput || !searchResults) return
-
-  var index = null
-  var store = null
-  var indexLoaded = false
-
-  // Determine the base path for the search index
-  var siteRootPath = document.body.dataset.siteRootPath || ''
-  var indexPath = siteRootPath + '/search-index.js'
-
-  // Load the search index
-  var script = document.createElement('script')
-  script.src = indexPath
-  script.onload = function () {
-    if (typeof antoraSearch !== 'undefined' && defined(antoraSearch.index) && 
defined(antoraSearch.store)) {
-      index = lunr.Index.load(antoraSearch.index)
-      store = antoraSearch.store
-      indexLoaded = true
-    }
-  }
-  document.head.appendChild(script)
-
-  // Load Lunr if not already loaded
-  if (typeof lunr === 'undefined') {
-    var lunrScript = document.createElement('script')
-    lunrScript.src = 'https://unpkg.com/[email protected]/lunr.min.js'
-    document.head.appendChild(lunrScript)
-  }
-
-  searchInput.addEventListener('input', debounce(search, 200))
-  searchInput.addEventListener('focus', function () {
-    if (this.value.length > 1) search()
-  })
-
-  document.addEventListener('click', function (e) {
-    if (!e.target.closest('.search')) {
-      searchResults.innerHTML = ''
-      searchResults.style.display = 'none'
-    }
-  })
-
-  function search () {
-    var query = searchInput.value.trim()
-
-    if (query.length < 2) {
-      searchResults.innerHTML = ''
-      searchResults.style.display = 'none'
-      return
-    }
-
-    if (!indexLoaded) {
-      searchResults.innerHTML = '<div class="search-result-item">Loading 
search index...</div>'
-      searchResults.style.display = 'block'
-      return
-    }
-
-    var results = []
-    try {
-      results = index.search(query)
-    } catch (e) {
-      // Try wildcard search if exact search fails
-      try {
-        results = index.search(query + '*')
-      } catch (e2) {
-        results = []
-      }
-    }
-
-    if (results.length === 0) {
-      searchResults.innerHTML = '<div class="search-result-item">No results 
found</div>'
-      searchResults.style.display = 'block'
-      return
-    }
-
-    var html = results.slice(0, 10).map(function (result) {
-      var doc = store[result.ref]
-      if (!doc) return ''
-      var title = doc.title || 'Untitled'
-      var text = doc.text || ''
-      if (text.length > 150) text = text.substring(0, 150) + '...'
-      return '<div class="search-result-item"><a href="' + doc.url + '">' +
-        '<div class="title">' + escapeHtml(title) + '</div>' +
-        '<div class="text">' + escapeHtml(text) + '</div>' +
-        '</a></div>'
-    }).join('')
-
-    searchResults.innerHTML = html
-    searchResults.style.display = 'block'
-  }
-
-  function debounce (fn, delay) {
-    var timeout
-    return function () {
-      var context = this
-      var args = arguments
-      clearTimeout(timeout)
-      timeout = setTimeout(function () {
-        fn.apply(context, args)
-      }, delay)
-    }
-  }
-
-  function escapeHtml (text) {
-    var div = document.createElement('div')
-    div.textContent = text
-    return div.innerHTML
-  }
-})()
diff --git a/docs/supplemental-ui/partials/footer-scripts.hbs 
b/docs/supplemental-ui/partials/footer-scripts.hbs
deleted file mode 100644
index 9aa19101f1..0000000000
--- a/docs/supplemental-ui/partials/footer-scripts.hbs
+++ /dev/null
@@ -1 +0,0 @@
-<script src="{{{uiRootPath}}}/js/search.js"></script>
diff --git a/docs/supplemental-ui/partials/head-scripts.hbs 
b/docs/supplemental-ui/partials/head-scripts.hbs
deleted file mode 100644
index d5752e8e11..0000000000
--- a/docs/supplemental-ui/partials/head-scripts.hbs
+++ /dev/null
@@ -1 +0,0 @@
-<link rel="stylesheet" href="{{{uiRootPath}}}/css/search.css">
diff --git a/docs/supplemental-ui/partials/header-content.hbs 
b/docs/supplemental-ui/partials/header-content.hbs
index 88488dfbe9..d5836389a6 100644
--- a/docs/supplemental-ui/partials/header-content.hbs
+++ b/docs/supplemental-ui/partials/header-content.hbs
@@ -5,7 +5,14 @@
         <img src="{{{uiRootPath}}}/img/ASF_Tika-colour.svg" alt="Apache Tika" 
style="height: 2rem; margin-right: 0.5rem; background: white; padding: 2px 4px; 
border-radius: 3px;">
         {{site.title}}
       </a>
-      <button class="navbar-burger" aria-label="Toggle navigation" 
data-target="topbar-nav">
+      {{#if env.SITE_SEARCH_PROVIDER}}
+      <div class="navbar-item search hide-for-print">
+        <div id="search-field" class="field">
+          <input id="search-input" type="text" placeholder="Search the 
docs"{{#if page.home}} autofocus{{/if}}>
+        </div>
+      </div>
+      {{/if}}
+      <button class="navbar-burger" aria-controls="topbar-nav" 
aria-expanded="false" aria-label="Toggle main menu" data-target="topbar-nav">
         <span></span>
         <span></span>
         <span></span>
@@ -13,14 +20,6 @@
     </div>
     <div id="topbar-nav" class="navbar-menu">
       <div class="navbar-end">
-        <div class="navbar-item search">
-          <div class="field has-addons">
-            <p class="control">
-              <input id="search-input" class="input" type="text" 
placeholder="Search docs...">
-            </p>
-          </div>
-          <div id="search-results"></div>
-        </div>
         <a class="navbar-item" href="https://tika.apache.org";>Apache Tika</a>
         <a class="navbar-item" href="https://github.com/apache/tika";>GitHub</a>
       </div>

Reply via email to