From 49a59597b12908800c3856a659436588063cc951 Mon Sep 17 00:00:00 2001 From: Michael McKeen Date: Wed, 10 Sep 2025 09:33:28 -0400 Subject: [PATCH 1/3] ProductSelector: Fix nested path resolution Resolves issues with subpaths for nginxaas --- layouts/partials/sidebar-v2.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/partials/sidebar-v2.html b/layouts/partials/sidebar-v2.html index c7101f64..1bf7d60e 100644 --- a/layouts/partials/sidebar-v2.html +++ b/layouts/partials/sidebar-v2.html @@ -17,7 +17,7 @@ {{ range $product := $group.products }} {{ if not $product.extUrl }} {{ $escaped := replace $product.url "/" "\\/" }} - {{ $pattern := printf "/%s(/|$)" $escaped }} + {{ $pattern := printf "/%s(|$)" $escaped }} {{ if strings.FindRE $pattern $relPermalink }} {{ $currentProductTitle = $product.title }} {{ end }} From 53651919d2dc9fcde3a633da8a0f6a5bad0c5705 Mon Sep 17 00:00:00 2001 From: Michael McKeen Date: Wed, 10 Sep 2025 10:17:33 -0400 Subject: [PATCH 2/3] ExampleSite: Add nested product test case --- exampleSite/content/_index.md | 3 + exampleSite/content/nested-product/_index.md | 10 ++++ .../content/nested-product/get-help.md | 60 +++++++++++++++++++ .../nested-product/module-changelog.md | 57 ++++++++++++++++++ exampleSite/data/product-selector.yaml | 2 + 5 files changed, 132 insertions(+) create mode 100644 exampleSite/content/nested-product/_index.md create mode 100644 exampleSite/content/nested-product/get-help.md create mode 100644 exampleSite/content/nested-product/module-changelog.md diff --git a/exampleSite/content/_index.md b/exampleSite/content/_index.md index fa69d3f9..9de6003b 100644 --- a/exampleSite/content/_index.md +++ b/exampleSite/content/_index.md @@ -9,6 +9,9 @@ Documentation for hugo theme {{}} See explanations and usages of shortcodes {{}} + {{}} + Test nested product path + {{}} {{}} See a live example of theme components {{}} diff --git a/exampleSite/content/nested-product/_index.md b/exampleSite/content/nested-product/_index.md new file mode 100644 index 00000000..c145b4d9 --- /dev/null +++ b/exampleSite/content/nested-product/_index.md @@ -0,0 +1,10 @@ +--- +title: Nested Product Test +nd-subtitle: Testing nested product resolution +url: /nested/product/ +cascade: + nd-banner: + enabled: true + start-date: 2025-01-01 + md: /_banners/test-product-intro.md +--- diff --git a/exampleSite/content/nested-product/get-help.md b/exampleSite/content/nested-product/get-help.md new file mode 100644 index 00000000..6333b6f6 --- /dev/null +++ b/exampleSite/content/nested-product/get-help.md @@ -0,0 +1,60 @@ +--- +title: Get help +weight: 750 +toc: true +nd-docs: DOCS-882 +url: /nested/product/get-help/ +type: +- how-to +--- + +## Contact NGINX support + +To contact support about F5 NGINX as a Service for Azure (NGINXaaS): + +1. Go to your NGINXaaS deployment. + +2. Select **New Support request** in the left menu. + +3. Select **Raise a Support ticket**. + + {{< img src="nginxaas-azure/raise-ticket.png" alt="Screenshot of the Azure portal showing the Raise support ticket button" >}} + +4. You will be redirected to **MyF5** to create a new case. Log in to MyF5 with your F5 account. + +{{< call-out "note" >}}If you can't complete a deployment successfully, the "New support request" option won't be available on the left-hand navigation menu. To raise a support ticket, go to the [MyF5 portal](https://my.f5.com). {{< /call-out >}} + +5. Go to the **Case Management** section and select **Create new case**. + + {{< img src="nginxaas-azure/new-case.png" alt="Screenshot of the MyF5 portal showing the Create new case button" >}} + +6. Select **NGINXaaS** in the Product dropdown. + + {{< img src="nginxaas-azure/create-case.png" alt="MyF5 Case form" >}} + +7. Complete the request with the relevant information about your issue, bug report, or feedback. If you are contacting us to report an issue, please include the following information, available in the **Properties** section of your deployment, for the support team to begin their investigation: + +- Location +- Date and time of the issue +- Resource ID + +If your deployment is configured to use NGINX App Protect WAF, please collect the following information also: + +- Package versions from the NGINX App Protect WAF page +- Security policies in-use and the content of all custom security policies + +{{< img src="nginxaas-azure/properties.png" alt="Screenshot of the Azure portal showing the Properties section" >}} + +8. Complete the **Additional information** and **Contact details** sections of your case and select **Submit**. + +## Update support contact information + +To provide or update the preferred support contact email: + +1. Go to your NGINX as a Service (NGINXaaS) for Azure deployment. + +2. Select **New Support request** in the left menu. + +3. Select the `Edit` Button next to the **Support Contact Email** field. + +4. Provide a new email address in the field and select **Submit**. diff --git a/exampleSite/content/nested-product/module-changelog.md b/exampleSite/content/nested-product/module-changelog.md new file mode 100644 index 00000000..6a878081 --- /dev/null +++ b/exampleSite/content/nested-product/module-changelog.md @@ -0,0 +1,57 @@ +--- +title: "Module Changelog" +weight: 950 +toc: true +url: /nested/product/module-changelog/ +--- + +Learn about the modules supported by the latest versions of F5 NGINX as a Service for Azure. + + +## July 03, 2025 + +### Stable + + {{}} + +| Name | Version | Description | +|------------------------------------------|--------------------------|------------------------------------------------------------------------| +| nginx-plus | 1.27.2 (nginx-plus-r33-p2) | NGINX Plus, provided by Nginx, Inc. | +| nginx-agent | 1.19.15-1795423089 | NGINX Agent - Management for NGINXaaS | +| Operating System | Ubuntu 22.04.5 | Jammy Jellyfish, provided by Canonical Ltd. | +| nginx-plus-module-geoip2 | 33+3.4-1 | NGINX Plus 3rd-party GeoIP2 dynamic modules | +| nginx-plus-module-headers-more | 33+0.37-1 | NGINX Plus 3rd-party headers-more dynamic module | +| nginx-plus-module-image-filter | 33-1 | NGINX Plus image filter dynamic module | +| nginx-plus-module-lua | 33+0.10.27-1 | NGINX Plus 3rd-party Lua dynamic modules | +| nginx-plus-module-ndk | 33+0.3.3-1 | NGINX Plus 3rd-party NDK dynamic module | +| nginx-plus-module-njs | 33+0.8.9-1 | NGINX Plus njs dynamic modules | +| nginx-plus-module-otel | 33+0.1.0-1 | NGINX Plus OpenTelemetry dynamic module | +| nginx-plus-module-xslt | 33-1 | NGINX Plus xslt dynamic module | +| nginx-plus-module-appprotect | 33+5.264.0-1 | NGINX Plus app protect dynamic module version 5.264.0 | +| app-protect-module-plus | 33+5.264.0-1 | App-Protect package for Nginx Plus, includes all of the default files and examples. NGINX App Protect provides web application firewall (WAF) security protection for your web applications, including OWASP Top 10 attacks. | +| app-protect-plugin | 6.9.0-1 | NGINX App Protect plugin | +{{}} + + + +### Preview + + {{}} + +| Name | Version | Description | +|------------------------------------------|--------------------------|------------------------------------------------------------------------| +| nginx-plus | 1.27.2 (nginx-plus-r33-p2) | NGINX Plus, provided by Nginx, Inc. | +| nginx-agent | 1.19.15-1795423089 | NGINX Agent - Management for NGINXaaS | +| Operating System | Ubuntu 22.04.5 | Jammy Jellyfish, provided by Canonical Ltd. | +| nginx-plus-module-geoip2 | 33+3.4-1 | NGINX Plus 3rd-party GeoIP2 dynamic modules | +| nginx-plus-module-headers-more | 33+0.37-1 | NGINX Plus 3rd-party headers-more dynamic module | +| nginx-plus-module-image-filter | 33-1 | NGINX Plus image filter dynamic module | +| nginx-plus-module-lua | 33+0.10.27-1 | NGINX Plus 3rd-party Lua dynamic modules | +| nginx-plus-module-ndk | 33+0.3.3-1 | NGINX Plus 3rd-party NDK dynamic module | +| nginx-plus-module-njs | 33+0.8.9-1 | NGINX Plus njs dynamic modules | +| nginx-plus-module-otel | 33+0.1.0-1 | NGINX Plus OpenTelemetry dynamic module | +| nginx-plus-module-xslt | 33-1 | NGINX Plus xslt dynamic module | +| nginx-plus-module-appprotect | 33+5.264.0-1 | NGINX Plus app protect dynamic module version 5.264.0 | +| app-protect-module-plus | 33+5.264.0-1 | App-Protect package for Nginx Plus, includes all of the default files and examples. NGINX App Protect provides web application firewall (WAF) security protection for your web applications, including OWASP Top 10 attacks. | +| app-protect-plugin | 6.9.0-1 | NGINX App Protect plugin | +{{}} diff --git a/exampleSite/data/product-selector.yaml b/exampleSite/data/product-selector.yaml index 12ffa854..3aaf3b8e 100644 --- a/exampleSite/data/product-selector.yaml +++ b/exampleSite/data/product-selector.yaml @@ -2,6 +2,8 @@ products: - title: "Test Product" url: "test-product" + - title: "Test Nested Product" + url: "nested/product" - productGroup: Test External Links products: From 6a149aec1313fcb50cd0af520dedf39559dde72a Mon Sep 17 00:00:00 2001 From: Michael McKeen Date: Wed, 10 Sep 2025 11:00:16 -0400 Subject: [PATCH 3/3] ProductSelector: Normalize path for preview environments --- layouts/partials/sidebar-v2.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/layouts/partials/sidebar-v2.html b/layouts/partials/sidebar-v2.html index 1bf7d60e..c886bbfb 100644 --- a/layouts/partials/sidebar-v2.html +++ b/layouts/partials/sidebar-v2.html @@ -9,7 +9,10 @@ - {{ $relPermalink := (urls.Parse .RelPermalink).Path }} + + {{ $rawPath := strings.TrimPrefix .Site.BaseURL .Permalink }} + {{ $normalizedPath := printf "/%s" $rawPath }} + {{ $currentProductTitle := "" }} {{ with index .Site.Data "product-selector" }} @@ -18,7 +21,7 @@ {{ if not $product.extUrl }} {{ $escaped := replace $product.url "/" "\\/" }} {{ $pattern := printf "/%s(|$)" $escaped }} - {{ if strings.FindRE $pattern $relPermalink }} + {{ if strings.FindRE $pattern $normalizedPath }} {{ $currentProductTitle = $product.title }} {{ end }} {{ end }}