This is an automated email from the ASF dual-hosted git repository.
HoustonPutman pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr-site.git
The following commit(s) were added to refs/heads/main by this push:
new 127ea7258 Add docs button to menus and fix operator docs links (#190)
127ea7258 is described below
commit 127ea7258a7aee162eb1072cdd0e816f8374e9c8
Author: Houston Putman <[email protected]>
AuthorDate: Mon Jun 22 10:03:33 2026 -0700
Add docs button to menus and fix operator docs links (#190)
* Update Solr Operator doc links to the Reference Guide
* Add sub-menus to cleanup bulk of nav menu items
* Improve CSS for better navigability in the website
---------
Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
---
.../pages/operator/articles/explore-v030-gke.md | 24 ++--
content/pages/operator/resources.md | 22 ++-
.../operator/news/2021-04-29-v0-3-0-available.md | 2 +-
.../operator/news/2021-09-13-v0-4-0-available.md | 2 +-
.../operator/news/2021-11-16-v0-5-0-available.md | 2 +-
.../operator/news/2022-03-21-v0-5-1-available.md | 2 +-
.../operator/news/2023-04-24-v0-7-0-available.md | 2 +-
.../operator/news/2023-07-21-v0-7-1-available.md | 2 +-
.../operator/news/2023-10-20-v0-8-0-available.md | 2 +-
.../operator/news/2024-04-12-v0-8-1-available.md | 2 +-
.../operator/news/2025-01-22-v0-9-0-available.md | 2 +-
.../operator/news/2025-03-25-v0-9-1-available.md | 2 +-
themes/solr/static/css/base.css | 151 ++++++++++++++++++---
themes/solr/static/css/operator.css | 62 +++++++--
themes/solr/static/javascript/main.js | 53 +++-----
themes/solr/templates/_footer.html | 2 +-
themes/solr/templates/_header.html | 27 ++--
themes/solr/templates/operator/_footer.html | 2 +-
themes/solr/templates/operator/_header.html | 3 +
themes/solr/templates/operator/features.html | 18 +--
20 files changed, 257 insertions(+), 127 deletions(-)
diff --git a/content/pages/operator/articles/explore-v030-gke.md
b/content/pages/operator/articles/explore-v030-gke.md
index 43ad3a8d9..43acb14a0 100644
--- a/content/pages/operator/articles/explore-v030-gke.md
+++ b/content/pages/operator/articles/explore-v030-gke.md
@@ -17,7 +17,7 @@ The community now has a powerful vehicle to translate
hard-earned lessons and be
In this post, I explore the `v0.3.0` release from the perspective of a DevOps
engineer needing to deploy a well-configured Solr cluster on Kubernetes.
The Solr operator makes getting started with Solr on Kubernetes very easy.
-If you follow the [local
tutorial](https://apache.github.io/solr-operator/docs/local_tutorial), you can
have a Solr cluster up and running locally in no time.
+If you follow the [local
tutorial](https://solr.apache.org/guide/operator/latest/getting-started/local-tutorial.html),
you can have a Solr cluster up and running locally in no time.
However, for rolling out to production, three additional concerns come to
mind: security, high-availability, and performance monitoring.
The purpose of this guide is to help you plan for and implement these
important production concerns.
@@ -67,7 +67,7 @@ kubectl config set-context --current --namespace=sop030
### Solr Operator Setup
-If you installed previous versions of the Solr operator, then please upgrade
to the **Apache Solr** version using these instructions: [Upgrading to
Apache](https://apache.github.io/solr-operator/docs/upgrading-to-apache.html).
+If you installed previous versions of the Solr operator, then please upgrade
to the **Apache Solr** version using these instructions: [Upgrading to
Apache](https://solr.apache.org/guide/operator/latest/development/upgrading-to-apache.html).
Otherwise, add the Apache Solr Helm repo, install the [Solr CRDs](#solr-crds)
and [install the Solr
operator](https://artifacthub.io/packages/helm/apache-solr/solr-operator):
```
helm repo add apache-solr https://solr.apache.org/charts
@@ -225,7 +225,7 @@ There's one slightly nuanced setting I'm relying on for
this initial SolrCloud d
updateStrategy:
method: StatefulSet
```
-We need to start with `StatefulSet` as the [`updateStrategy`
method](https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#update-strategy)
so that we can enable TLS on an existing SolrCloud.
+We need to start with `StatefulSet` as the [`updateStrategy`
method](https://solr.apache.org/guide/operator/latest/solr-cloud/solr-cloud-crd.html#update-strategy)
so that we can enable TLS on an existing SolrCloud.
We'll switch this to `Managed` in the HA section after enabling TLS. Using
`Managed` requires the operator to call the
collections API to get `CLUSTERSTATUS` which doesn't work while a cluster is
converting from HTTP to HTTPs.
In a real deployment, you should just start with TLS enabled initially vs.
upgrading to TLS on an existing cluster.
@@ -235,7 +235,7 @@ Also, let’s not create any collections or load data just
yet as we want to loc
#### Zookeeper Connection
Solr Cloud depends on Apache Zookeeper.
-In the `explore` SolrCloud definition, I'm using the
[provided](https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#zookeeper-reference)
option, which means the Solr operator _provides_ a Zookeeper ensemble for the
SolrCloud instance.
+In the `explore` SolrCloud definition, I'm using the
[provided](https://solr.apache.org/guide/operator/latest/solr-cloud/zookeeper.html)
option, which means the Solr operator _provides_ a Zookeeper ensemble for the
SolrCloud instance.
Behind the scenes, the Solr operator defines a `ZookeeperCluster` CRD
instance, which is managed by the Zookeeper operator.
The `provided` option is useful for getting started and development but does
not expose all the configuration options supported by the Zookeeper operator.
For production deployments, consider defining your own `ZookeeperCluster`
outside of the SolrCloud CRD definition and then simply pointing to the
Zookeeper ensemble connection string using `connectionInfo` under
`spec.zookeeperRef`.
@@ -246,18 +246,18 @@ Alternatively, the Solr operator does not require using
the Zookeeper operator,
Before moving on, I wanted to point out a handy feature in the operator that
allows you to load a custom Log4j config from a user-provided ConfigMap.
I mention this feature because you may face a situation where you need to
customize the Log4j config for Solr to help troubleshoot a problem in
production.
-I won't go into the details here, but use the [Custom Log
Configuration](https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#custom-log-configuration)
documentation to configure your own custom Log4J config.
+I won't go into the details here, but use the [Custom Log
Configuration](https://solr.apache.org/guide/operator/latest/solr-cloud/custom-solr-config.html#custom-log-configuration)
documentation to configure your own custom Log4J config.
## Security
Security should be your first and main concern at all times, especially when
running in public clouds like GKE; you don’t want to be that ops engineer who’s
system gets compromised.
In this section we’re going to enable TLS, basic authentication, and
authorization controls for Solr’s API endpoints.
-For a more detailed explanation of all configuration options, see the
[SolrCloud
CRD](https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html)
documentation.
+For a more detailed explanation of all configuration options, see the
[SolrCloud
CRD](https://solr.apache.org/guide/operator/latest/solr-cloud/solr-cloud-crd.html)
documentation.
To enable TLS for Solr, all you need is a TLS secret containing a public X.509
certificate and a private key.
The Kubernetes ecosystem provides a powerful tool for issuing and managing
certificates: [cert-manager](https://cert-manager.io/).
If not already installed in your cluster, follow the basic instructions
provided by the Solr operator to get the latest version of cert-manager
installed:
-[Use cert-manager to issue the
certificate](https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#use-cert-manager-to-issue-the-certificate).
+[Use cert-manager to issue the
certificate](https://solr.apache.org/guide/operator/latest/solr-cloud/tls.html#use-cert-manager-to-issue-the-certificate).
### Cert-manager and Let’s Encrypt
@@ -433,7 +433,7 @@ The final step is to create a DNS A record to map the IP
address of your Ingress
### mTLS
The Solr operator supports mTLS-enabled Solr clusters but is a bit beyond the
scope of this document.
-Refer to the Solr Operator documentation for [configuring
mTLS](https://apache.github.io/solr-operator/docs/running-the-operator.html#client-auth-for-mtls-enabled-solr-clusters).
+Refer to the Solr Operator documentation for [configuring
mTLS](https://solr.apache.org/guide/operator/latest/getting-started/running-the-operator.html#client-auth-for-mtls-enabled-solr-clusters).
### Authentication & Authorization
@@ -441,7 +441,7 @@ If you followed the process in the previous section, then
traffic on the wire be
As of `v0.3.0`, the Solr operator supports basic authentication and Solr’s
rule based authorization controls.
The easiest way to get started is to have the operator bootstrap basic
authentication and authorization controls.
-For detailed instructions, see: [Authentication and
Authorization](https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#authentication-and-authorization)
+For detailed instructions, see: [Authentication and
Authorization](https://solr.apache.org/guide/operator/latest/solr-cloud/authentication-and-authorization.html)
```
spec:
@@ -650,7 +650,7 @@ spec:
_Add this to your `explore-SolrCloud.yaml` and apply the changes._
_* As you see above, the `Managed` update strategy is customizable and can be
configured to be as safe or as fast as you require.
-See the [update
documentation](https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#update-strategy)
for more information._
+See the [update
documentation](https://solr.apache.org/guide/operator/latest/solr-cloud/solr-cloud-crd.html#update-strategy)
for more information._
## Performance Monitoring
@@ -660,11 +660,11 @@ This last piece I want to cover is performance monitoring
with the [Prometheus s
### Prometheus Stack
You’re probably already using Prometheus for monitoring but if not installed
in your cluster,
-use the [installation
instructions](https://apache.github.io/solr-operator/docs/solr-prometheus-exporter/#prometheus-stack)
to install the Prometheus stack which includes Grafana.
+use the [installation
instructions](https://solr.apache.org/guide/operator/latest/solr-prometheus-exporter/index.html#prometheus-stack)
to install the Prometheus stack which includes Grafana.
### Prometheus Exporter
-The operator
[documentation](https://apache.github.io/solr-operator/docs/solr-prometheus-exporter/)
covers how to deploy a Prometheus exporter for your SolrCloud instance.
+The operator
[documentation](https://solr.apache.org/guide/operator/latest/solr-prometheus-exporter/index.html)
covers how to deploy a Prometheus exporter for your SolrCloud instance.
Since we enabled basic auth and TLS, you’ll need to ensure the exporter can
talk to the secured Solr pods using the following config settings:
```
diff --git a/content/pages/operator/resources.md
b/content/pages/operator/resources.md
index 5cc663db3..6a44ed512 100644
--- a/content/pages/operator/resources.md
+++ b/content/pages/operator/resources.md
@@ -3,11 +3,17 @@ URL: operator/resources.html
save_as: operator/resources.html
template: operator/resources
-All resources are currently found in the [Solr Operator
repository](https://github.com/apache/solr-operator), but will eventually be
moved to the website.
+## Documentation ##
+
+The Solr Operator documentation is published as part of the <b>[Apache Solr
Reference Guide](https://solr.apache.org/guide/operator/latest/index.html)</b>.
+
+Additional, developer-focused, documentation can be found in the [Solr
Operator's README](https://github.com/apache/solr-operator#solr-operator).
+
+***
## Tutorials ##
-* [Solr Operator Quick
Start](https://apache.github.io/solr-operator/docs/local_tutorial)
+* [Solr Operator Quick
Start](https://solr.apache.org/guide/operator/latest/getting-started/local-tutorial.html)
This is a basic tutorial designed for users new to Kubernetes and the Solr
Operator
* [Exploring the Apache Solr Operator v0.3.0 on
GKE]({filename}/pages/operator/articles/explore-v030-gke.md)
This is an advanced tutorial for users ready to use the Solr Operator for
Solr Clouds running in a production environment.
@@ -32,18 +38,6 @@ If you want to run Solr on Kubernetes, the easiest way to
get started is via ins
***
-## Documentation ##
-
-<h3 class="offset" id="the-apache-solr-reference-guide">The Apache Solr
Reference Guide</h3>
-
-Current documentation can be found in the [repo's github
pages](https://apache.github.io/solr-operator/docs), soon it will be migrated
to this site.
-
-<h3 class="offset" id="additional-documentation">Additional Documentation</h3>
-
-Additional documentation, including upgrade notes, can be found in the [Solr
Operator's README](https://github.com/apache/solr-operator#solr-operator).
-
-***
-
## Presentations and Videos ##
<!-- TODO: WOULD BE NICE TO HAVE A SLIDER OR RANDOMLY PICKED VIDEO HERE -->
diff --git a/content/solr/operator/news/2021-04-29-v0-3-0-available.md
b/content/solr/operator/news/2021-04-29-v0-3-0-available.md
index b7799a753..18e88fda0 100644
--- a/content/solr/operator/news/2021-04-29-v0-3-0-available.md
+++ b/content/solr/operator/news/2021-04-29-v0-3-0-available.md
@@ -28,7 +28,7 @@ This release contains numerous bug fixes, optimizations, and
improvements, some
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the full release notes in the Github
Releases or by viewing the git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2021-09-13-v0-4-0-available.md
b/content/solr/operator/news/2021-09-13-v0-4-0-available.md
index 2e9968ad5..de9740d5e 100644
--- a/content/solr/operator/news/2021-09-13-v0-4-0-available.md
+++ b/content/solr/operator/news/2021-09-13-v0-4-0-available.md
@@ -32,7 +32,7 @@ This release contains numerous bug fixes, optimizations, and
improvements, some
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2021-11-16-v0-5-0-available.md
b/content/solr/operator/news/2021-11-16-v0-5-0-available.md
index 0fccb4af3..72b8f764d 100644
--- a/content/solr/operator/news/2021-11-16-v0-5-0-available.md
+++ b/content/solr/operator/news/2021-11-16-v0-5-0-available.md
@@ -33,7 +33,7 @@ This release contains numerous bug fixes, optimizations, and
improvements, some
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2022-03-21-v0-5-1-available.md
b/content/solr/operator/news/2022-03-21-v0-5-1-available.md
index 6179c7612..dd25649de 100644
--- a/content/solr/operator/news/2022-03-21-v0-5-1-available.md
+++ b/content/solr/operator/news/2022-03-21-v0-5-1-available.md
@@ -23,7 +23,7 @@ This release contains numerous bug fixes, optimizations, and
improvements, some
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2023-04-24-v0-7-0-available.md
b/content/solr/operator/news/2023-04-24-v0-7-0-available.md
index b739225c9..6b12cc557 100644
--- a/content/solr/operator/news/2023-04-24-v0-7-0-available.md
+++ b/content/solr/operator/news/2023-04-24-v0-7-0-available.md
@@ -24,7 +24,7 @@ This release contains numerous bug fixes, optimizations, and
improvements, some
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2023-07-21-v0-7-1-available.md
b/content/solr/operator/news/2023-07-21-v0-7-1-available.md
index 95840850b..502a46213 100644
--- a/content/solr/operator/news/2023-07-21-v0-7-1-available.md
+++ b/content/solr/operator/news/2023-07-21-v0-7-1-available.md
@@ -16,7 +16,7 @@ This release contains numerous bug fixes, optimizations, and
improvements, some
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2023-10-20-v0-8-0-available.md
b/content/solr/operator/news/2023-10-20-v0-8-0-available.md
index c249e0881..535c88164 100644
--- a/content/solr/operator/news/2023-10-20-v0-8-0-available.md
+++ b/content/solr/operator/news/2023-10-20-v0-8-0-available.md
@@ -25,7 +25,7 @@ This release contains numerous bug fixes, optimizations, and
improvements, some
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2024-04-12-v0-8-1-available.md
b/content/solr/operator/news/2024-04-12-v0-8-1-available.md
index a7695b08a..51fe43833 100644
--- a/content/solr/operator/news/2024-04-12-v0-8-1-available.md
+++ b/content/solr/operator/news/2024-04-12-v0-8-1-available.md
@@ -18,7 +18,7 @@ This release contains numerous bug fixes, optimizations, and
improvements, some
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2025-01-22-v0-9-0-available.md
b/content/solr/operator/news/2025-01-22-v0-9-0-available.md
index 3f6e1c304..506294996 100644
--- a/content/solr/operator/news/2025-01-22-v0-9-0-available.md
+++ b/content/solr/operator/news/2025-01-22-v0-9-0-available.md
@@ -15,7 +15,7 @@ Please report any feedback to the mailing lists
<https://solr.apache.org/operato
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/content/solr/operator/news/2025-03-25-v0-9-1-available.md
b/content/solr/operator/news/2025-03-25-v0-9-1-available.md
index 3108d7570..85c39d253 100644
--- a/content/solr/operator/news/2025-03-25-v0-9-1-available.md
+++ b/content/solr/operator/news/2025-03-25-v0-9-1-available.md
@@ -18,7 +18,7 @@ This release contains numerous bug fixes, and optimizations,
some of which are h
A summary of important changes is published in the documentation at:
- <https://apache.github.io/solr-operator/docs/upgrade-notes.html>
+
<https://solr.apache.org/guide/operator/latest/upgrade-notes/upgrade-notes.html>
For the most exhaustive list, see the change log on ArtifactHub or view the
git history in the solr-operator repo.
diff --git a/themes/solr/static/css/base.css b/themes/solr/static/css/base.css
index f49db5a82..21cad2414 100644
--- a/themes/solr/static/css/base.css
+++ b/themes/solr/static/css/base.css
@@ -22,7 +22,7 @@ html, body {
}
body {
- overflow-x:hidden;
+ overflow-x: clip; /* clip (not hidden) so it doesn't create a scroll
container that breaks position:sticky */
pointer-events: none;
}
@@ -153,9 +153,25 @@ button.white:hover {
height: 100%;
position:relative;
left: 15px;
- padding: 20px 0 25px 0;
+ padding: 15px 0 15px 0;
}
+/* Keep the logo above the full-height nav section (Foundation gives it
z-index:98)
+ so the section's full-width box doesn't intercept clicks on the logo */
+.top-bar .title-area {
+ position: relative;
+ z-index: 100;
+}
+
+.top-bar-section {
+ height: 100%;
+}
+
+.top-bar-section ul li {
+ height: 100%;
+ align-content: center;
+ }
+
.top-bar-section ul li, .top-bar-section li:not(.has-form) a:not(.button) {
background: #D9411E;
}
@@ -208,7 +224,7 @@ body.nav-security .top-bar-section .navigation
a[href$="/security.html"] {
/* full-width nav styles */
@media only screen and (min-width: 47.5em) {
.top-bar-section .navigation {
- margin: 20px 20px 20px 0;
+ height: 100% !important;
}
.top-bar .name .logo {
left: 15px;
@@ -246,10 +262,6 @@ body.nav-security .top-bar-section .navigation
a[href$="/security.html"] {
line-height: 35px;
}
-.top-bar.shrink .navigation {
- margin: 10px 15px 10px 0;
-}
-
.top-bar.shrink.expanded .navigation {
margin: 0;
}
@@ -801,11 +813,16 @@ section.list ul li ul li {
font-size: 0.96em;
}
+.anchor-top {
+ z-index: 10;
+ top: 90px;
+ position: sticky;
+ width: 100%;
+ max-width: 100%;
+}
.anchor-fixed {
- top: 57px;
- z-index: 1000;
- position: fixed;
+ top: 55px;
}
/*
@@ -817,9 +834,9 @@ section.list ul li ul li {
}
.sub-nav-container {
- height: 100px;
- width: 1000px;
- margin: 0 auto;
+ /* display:contents so the sticky .anchor-top child is contained by the tall
+ .container (not this short wrapper), giving it room to stay pinned */
+ display: contents;
}
.sub-nav-border {
@@ -827,7 +844,6 @@ section.list ul li ul li {
background: white;
border-top: 1px solid #e4e2dd;
border-bottom: 1px solid #e4e2dd;
- margin: 0 auto 30px auto;
}
.sub-nav dd {
@@ -839,7 +855,7 @@ section.list ul li ul li {
padding-left: 15px;
border-right:1px solid #e4e2dd;
position: relative;
- z-index: 2000;
+ z-index: 10;
}
.sub-nav dd a.selected {
@@ -1062,7 +1078,7 @@ ul li div.box div.img.logo-container.orange-background {
}
:target {
- scroll-margin-top: 57px; /* Prevents the navigation bar from hiding linked
content */
+ scroll-margin-top: -5px; /* By default some cut off text will be included
otherwise */
}
.post-item-title {
@@ -1115,11 +1131,6 @@ ul li div.box div.img.logo-container.orange-background {
color: #555;
}
-/* Offset anchor targets to account for the fixed main header (~90px) and
sticky sub-nav (~45px) */
-h1, h2, h3, h4, h5, h6 {
- scroll-margin-top: 135px;
-}
-
/* Permalink anchors generated by the markdown toc extension */
.headerlink, .elementid-permalink { visibility: hidden; }
h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink,
@@ -1181,3 +1192,101 @@ details pre {
font-size: 0.9em;
margin-top: 0.5em;
}
+
+/*
+ * Top-nav dropdown menus (Learn / About)
+ */
+
+/* Caret indicator on the dropdown parents */
+.top-bar-section .navigation li.has-dropdown > a:after {
+ border-top-color: rgba(255, 255, 255, 0.75) !important;
+ top: 50% !important;
+ margin-top: -3px !important;
+}
+
+/* The floating panel */
+.top-bar-section .navigation li.has-dropdown > ul.dropdown {
+ /* Left-align under the parent (overrides Foundation's right-align for
.right navs) */
+ left: 0 !important;
+ right: auto !important;
+ text-align: left;
+ background: #a82e15;
+ border: none;
+ border-radius: 0 0 4px 4px;
+ box-shadow: 0 8px 18px rgba(0, 0, 0, 0.2);
+ min-width: 190px;
+}
+
+/* Drop the "Back" / duplicated-title items Foundation's topbar JS injects */
+.top-bar-section .navigation .dropdown li.js-generated, li.parent-link {
+ display: none !important;
+}
+
+.top-bar-section .has-dropdown>a {
+ height: 100%;
+ align-content: center;
+}
+
+/* Panel rows */
+.top-bar-section .navigation ul.dropdown li,
+.top-bar-section .navigation ul.dropdown li:not(.has-form) > a:not(.btn) {
+ background: #a82e15;
+}
+
+.top-bar-section .navigation ul.dropdown li > a {
+ padding: 10px 22px !important;
+ line-height: 1.4;
+ white-space: nowrap;
+ text-align: left;
+ color: #fff;
+ font-size: 0.92rem; /* match the top-level nav items */
+ z-index: 100;
+}
+
+/* Row hover */
+.top-bar-section .navigation ul.dropdown li:not(.has-form) > a:not(.btn):hover
{
+ background: #8a2411 !important;
+ color: #fff;
+}
+
+.top-bar-section ul li:hover:not(.has-form) > a {
+ background: #D9411E;
+ color: #25202f;
+ }
+
+/*
+ * Thin screens: the top bar collapses to Foundation's hamburger menu. Undo the
+ * desktop full-height layout, and make the Learn/About submenus tap-to-expand
+ * accordions (collapsed by default; main.js toggles .mobile-open on tap).
+ */
+@media only screen and (max-width: 40em) {
+ .top-bar-section,
+ .top-bar-section ul li,
+ .top-bar-section .navigation li.has-dropdown > a {
+ height: auto;
+ }
+ /* Anchor the caret to the parent link, not the (now in-flow, tall) li,
+ so it stays on the title row instead of dropping onto the first sub-item
*/
+ .top-bar-section .navigation li.has-dropdown > a {
+ position: relative;
+ }
+ .top-bar-section .navigation li.has-dropdown > ul.dropdown {
+ position: static !important;
+ width: 100% !important;
+ min-width: 0;
+ height: auto !important;
+ overflow: visible !important;
+ clip: auto !important;
+ background: transparent;
+ box-shadow: none;
+ border-radius: 0;
+ display: none !important; /* collapsed until the parent is tapped */
+ }
+ .top-bar-section .navigation li.has-dropdown.mobile-open > ul.dropdown {
+ display: block !important;
+ }
+ /* Flip the caret to indicate expanded state */
+ .top-bar-section .navigation li.has-dropdown.mobile-open > a:after {
+ transform: rotate(180deg);
+ }
+}
diff --git a/themes/solr/static/css/operator.css
b/themes/solr/static/css/operator.css
index aaa29e624..a0087cccf 100644
--- a/themes/solr/static/css/operator.css
+++ b/themes/solr/static/css/operator.css
@@ -22,7 +22,7 @@ html, body {
}
body {
- overflow-x:hidden;
+ overflow-x: clip; /* clip (not hidden) so it doesn't create a scroll
container that breaks position:sticky */
pointer-events: none;
}
@@ -153,9 +153,25 @@ button.white:hover {
height: 100%;
position:relative;
left: 15px;
- padding: 20px 0 25px 0;
+ padding: 15px 0 15px 0;
}
+/* Keep the logo above the full-height nav section (Foundation gives it
z-index:98)
+ so the section's full-width box doesn't intercept clicks on the logo */
+.top-bar .title-area {
+ position: relative;
+ z-index: 100;
+}
+
+.top-bar-section {
+ height: 100%;
+}
+
+.top-bar-section ul li {
+ height: 100%;
+ align-content: center;
+ }
+
.top-bar-section ul li, .top-bar-section li:not(.has-form) a:not(.button) {
background: #865981;
}
@@ -201,7 +217,7 @@ button.white:hover {
/* full-width nav styles */
@media only screen and (min-width: 47.5em) {
.top-bar-section .navigation {
- margin: 20px 20px 20px 0;
+ height: 100% !important;
}
.top-bar .name .logo {
left: 15px;
@@ -239,10 +255,6 @@ button.white:hover {
line-height: 35px;
}
-.top-bar.shrink .navigation {
- margin: 10px 15px 10px 0;
-}
-
.top-bar.shrink.expanded .navigation {
margin: 0;
}
@@ -794,10 +806,16 @@ section.list ul li ul li {
}
+.anchor-top {
+ z-index: 10;
+ top: 90px;
+ position: sticky;
+ width: 100%;
+ max-width: 100%;
+}
+
.anchor-fixed {
- top: 57px;
- z-index: 1000;
- position: fixed;
+ top: 55px;
}
/*
@@ -809,9 +827,9 @@ section.list ul li ul li {
}
.sub-nav-container {
- height: 100px;
- width: 1000px;
- margin: 0 auto;
+ /* display:contents so the sticky .anchor-top child is contained by the tall
+ .container (not this short wrapper), giving it room to stay pinned */
+ display: contents;
}
.sub-nav-border {
@@ -819,7 +837,6 @@ section.list ul li ul li {
background: white;
border-top: 1px solid #e4e2dd;
border-bottom: 1px solid #e4e2dd;
- margin: 0 auto 30px auto;
}
.sub-nav dd {
@@ -831,7 +848,7 @@ section.list ul li ul li {
padding-left: 15px;
border-right:1px solid #e4e2dd;
position: relative;
- z-index: 2000;
+ z-index: 10;
}
.codehilite {
@@ -1031,3 +1048,18 @@ ul li div.box div.img.logo-container.orange-background {
position: relative;
border: 1px solid #CCC;
}
+
+:target {
+ scroll-margin-top: -5px; /* By default some cut off text will be included
otherwise */
+}
+
+/*
+ * Thin screens: the top bar collapses to Foundation's hamburger menu. Undo the
+ * desktop full-height layout so the menu items stack and size to their
content.
+ */
+@media only screen and (max-width: 40em) {
+ .top-bar-section,
+ .top-bar-section ul li {
+ height: auto;
+ }
+}
diff --git a/themes/solr/static/javascript/main.js
b/themes/solr/static/javascript/main.js
index a45bcad22..9af1e2f17 100644
--- a/themes/solr/static/javascript/main.js
+++ b/themes/solr/static/javascript/main.js
@@ -16,7 +16,7 @@
specific language governing permissions and limitations
under the License.
*/
-;(function() {
+;(function($) {
/*
* --------------------------------------------------------------------------
@@ -48,18 +48,35 @@
}
});
+ /*
+ * Mobile: tap a top-nav dropdown parent (Learn/About) to expand its submenu
+ * instead of navigating. Desktop (hover) is unaffected.
+ */
+ $(function() {
+ $('.top-bar-section .has-dropdown > a').on('click', function(e) {
+ if (window.matchMedia('(max-width: 40em)').matches) {
+ e.preventDefault();
+ e.stopPropagation(); // keep Foundation's topbar handler from also
firing
+ $(this).parent('.has-dropdown').toggleClass('mobile-open');
+ }
+ });
+ });
+
/*
* Shrinking top-bar
*/
$(function() {
var header = $(".top-bar")
+ var subNav = $(".anchor-top")
$(window).scroll(function() {
var scroll = $(window).scrollTop();
- if (scroll >= 150) {
+ if (scroll >= 50) {
$(header).addClass("shrink");
+ $(subNav).addClass("anchor-fixed");
}
- if (scroll < 150) {
+ if (scroll < 50) {
$(header).removeClass("shrink");
+ $(subNav).removeClass("anchor-fixed");
}
});
});
@@ -163,32 +180,4 @@
}])
- .directive('anchorTop', ['$window', function($window) {
- return {
- restrict: 'C',
- scopr: true,
- link: function(scope, el, attrs) {
-
- var windowEl = angular.element($window),
- offset = el.offset().top,
- handler = function() {
- scope.scroll = windowEl.scrollTop()
- }
-
- windowEl.on('scroll', scope.$apply.bind(scope, handler))
- handler();
-
- scope.$watch('scroll', function(n, o, s) {
- var difference = (-1 * (offset - n)) + 57;
- if(difference > 0) {
- el.addClass('anchor-fixed')
- } else {
- el.removeClass('anchor-fixed')
- }
- })
-
- }
- }
- }])
-
-})()
+})(jQuery)
diff --git a/themes/solr/templates/_footer.html
b/themes/solr/templates/_footer.html
index aafd0962f..1d0cc3025 100644
--- a/themes/solr/templates/_footer.html
+++ b/themes/solr/templates/_footer.html
@@ -20,7 +20,7 @@
<h4>Resources</h4>
<ul>
<li><a href="/resources.html#tutorials">Tutorial</a></li>
- <li><a href="/resources.html#documentation">Docs</a></li>
+ <li><a href="https://solr.apache.org/guide/solr/latest/">Docs</a></li>
<li><a href="/resources.html#solr-books">Books</a></li>
<li><a href="/resources.html#presentations">Presentations</a></li>
<li><a href="/resources.html#videos">Videos</a></li>
diff --git a/themes/solr/templates/_header.html
b/themes/solr/templates/_header.html
index b9ae4ae45..b23fa6ef3 100644
--- a/themes/solr/templates/_header.html
+++ b/themes/solr/templates/_header.html
@@ -11,22 +11,25 @@
<div class="top-bar-section">
<ul class="navigation right">
<li>
- <a href="{{ SITEURL }}/posts.html">News</a>
+ <a href="https://solr.apache.org/guide/solr/latest/">Docs</a>
</li>
- <li>
- <a href="{{ SITEURL }}/security.html">Security</a>
- </li>
- <li>
- <a href="{{ SITEURL }}/features.html">Features</a>
+ <li class="has-dropdown">
+ <a href="{{ SITEURL }}/features.html">Learn</a>
+ <ul class="dropdown">
+ <li><a href="{{ SITEURL }}/features.html">Features</a></li>
+ <li><a href="{{ SITEURL }}/resources.html">Resources</a></li>
+ </ul>
</li>
<li>
- <a href="{{ SITEURL }}/resources.html">Resources</a>
- </li>
- <li>
- <a href="{{ SITEURL }}/community.html">Community</a>
+ <a href="{{ SITEURL }}/security.html">Security</a>
</li>
- <li>
- <a href="{{ SITEURL }}/whoweare.html">Project</a>
+ <li class="has-dropdown">
+ <a href="{{ SITEURL }}/community.html">About</a>
+ <ul class="dropdown">
+ <li><a href="{{ SITEURL }}/community.html">Community</a></li>
+ <li><a href="{{ SITEURL }}/whoweare.html">Project</a></li>
+ <li><a href="{{ SITEURL }}/posts.html">News</a></li>
+ </ul>
</li>
<li>
<a href="{{ SITEURL }}/operator/">Solr Operator</a>
diff --git a/themes/solr/templates/operator/_footer.html
b/themes/solr/templates/operator/_footer.html
index 19ef046e8..01e644050 100644
--- a/themes/solr/templates/operator/_footer.html
+++ b/themes/solr/templates/operator/_footer.html
@@ -12,7 +12,7 @@
<h4>Resources</h4>
<ul>
<li><a href="/operator/resources.html#tutorials">Tutorial</a></li>
- <li><a href="/operator/resources.html#documentation">Docs</a></li>
+ <li><a
href="https://solr.apache.org/guide/operator/latest/index.html">Docs</a></li>
<li><a
href="/operator/resources.html#presentations">Presentations</a></li>
<li><a href="/operator/resources.html#videos">Videos</a></li>
<li><a href="/logos-and-assets.html">Solr Logos and Assets</a></li>
diff --git a/themes/solr/templates/operator/_header.html
b/themes/solr/templates/operator/_header.html
index f1c6a316c..df57c83ef 100644
--- a/themes/solr/templates/operator/_header.html
+++ b/themes/solr/templates/operator/_header.html
@@ -10,6 +10,9 @@
<div class="top-bar-section">
<ul class="navigation right">
+ <li>
+ <a
href="https://solr.apache.org/guide/operator/latest/index.html">Docs</a>
+ </li>
<li>
<a href="{{ SITEURL }}/operator/news.html">News</a>
</li>
diff --git a/themes/solr/templates/operator/features.html
b/themes/solr/templates/operator/features.html
index bbca3d0b8..b8d786bfe 100644
--- a/themes/solr/templates/operator/features.html
+++ b/themes/solr/templates/operator/features.html
@@ -76,7 +76,7 @@
<div class="row">
<ul class="small-block-grid-1 medium-block-grid-3">
<li>
- <a
href="https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#update-strategy"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-cloud/solr-cloud-crd.html#update-strategy"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/Solr_Icons_standards_based_open_interfaces.svg"/></div>
<div class="content">
@@ -87,7 +87,7 @@
</a>
</li>
<li>
- <a
href="https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#authentication-and-authorization"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-cloud/authentication-and-authorization.html"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/Solr_Icons_security.svg"/></div>
<div class="content">
@@ -99,7 +99,7 @@
</a>
</li>
<li>
- <a
href="https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#zookeeper-reference"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-cloud/zookeeper.html"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/Solr_Icons_highly_configurable.svg"/></div>
<div class="content">
@@ -113,7 +113,7 @@
</a>
</li>
<li>
- <a
href="https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#addressability"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-cloud/addressability.html"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/icon-resources.svg"/></div>
<div class="content">
@@ -127,7 +127,7 @@
</a>
</li>
<li>
- <a
href="https://apache.github.io/solr-operator/docs/solr-cloud/solr-cloud-crd.html#override-built-in-solr-configuration-files"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-cloud/solr-cloud-crd.html#override-built-in-solr-configuration-files"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/Solr_Icons_flexible_and_adaptable.svg"/></div>
<div class="content">
@@ -159,7 +159,7 @@
<div class="row">
<ul class="small-block-grid-1 medium-block-grid-3">
<li>
- <a
href="https://apache.github.io/solr-operator/docs/solr-prometheus-exporter#finding-the-solr-cluster-to-monitor"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-prometheus-exporter/index.html#finding-the-solr-cluster-to-monitor"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/Solr_Icons_standards_based_open_interfaces.svg"/></div>
<div class="content">
@@ -170,7 +170,7 @@
</a>
</li>
<li>
- <a
href="https://apache.github.io/solr-operator/docs/solr-prometheus-exporter#prometheus-stack"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-prometheus-exporter/index.html#prometheus-stack"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/Solr_Icons_extensible_plugin.svg"/></div>
<div class="content">
@@ -181,7 +181,7 @@
</a>
</li>
<li>
- <a
href="https://apache.github.io/solr-operator/docs/solr-prometheus-exporter#customize-prometheus-exporter-config"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-prometheus-exporter/index.html#customize-prometheus-exporter-config"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/Solr_Icons_flexible_and_adaptable.svg"/></div>
<div class="content">
@@ -213,7 +213,7 @@
<div class="row">
<ul class="small-block-grid-1 medium-block-grid-3">
<li>
- <a href="https://apache.github.io/solr-operator/docs/solr-backup"
target="_blank">
+ <a
href="https://solr.apache.org/guide/operator/latest/solr-backup/index.html"
target="_blank">
<div class="box">
<div class="img"><img src="{{ SITEURL
}}/theme/images/Solr_Icons_an_ajax_based.svg"/></div>
<div class="content">