diff --git a/ADOPTERS.md b/ADOPTERS.md
deleted file mode 100644
index 3fad53f0..00000000
--- a/ADOPTERS.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Adopters
-
-**📢 _If you're using Microcks in your organization, please add your company name to this list. 🙏 It really helps the project to gain momentum and credibility. It's a small contribution back to the project with a big impact._**
-
-Respect is a core principle in our open source community, see our [Code of Conduct](https://github.com/microcks/.github/blob/main/CODE_OF_CONDUCT.md). We value your contributions, rely on your input, and believe that together we can achieve more.
-
-If you need to know why and how to add yourself to the list, please read the blog post "[Join the Microcks Adopters list](https://microcks.io/blog/join-adopters-list/) and Empower the vibrant open source Community 🙌"
-
-This document also lists the organizations that use Microcks based on public information available in blog posts, events and videos. If any organization would like to get added or removed please edit this file (make a pull request) after following our [contribution guide](https://github.com/microcks/.github/blob/master/CONTRIBUTING.md) and by following these specifics guidelines:
-- Kindly include a reference (such as a link to a public blog post, video, slides, etc.) that mentions the use of Microcks.
-- You consent to having your company’s name and logo featured on the [Microcks.io website](https://microcks.io/), included in our adopters' section, and potentially displayed in our rotating logo carousel.
-
-> You can contact the project [maintainers](https://github.com/microcks/.github/blob/main/MAINTAINERS.md) if you have any questions or need further information.
-
-
-| Organization | Contact | Description of Use / Reference |
-|-----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Lombard Odier Group](https://www.lombardodier.com/) | [Ludovic Pourrat](https://github.com/ludovic-pourrat) | Multi-protocol API Mocking and Sandbox as a service #APIOps
-| [Lombard Odier Group](https://www.lombardodier.com/) | [Ludovic Pourrat](https://github.com/ludovic-pourrat) | APIdays Paris 2022 - Adding a mock as a service capability to your API strategy portfolio 👉 [slide deck](https://speakerdeck.com/apidays/apidays-paris-2022-adding-a-mock-as-a-service-capability-to-your-api-strategy-portfolio-ludovic-pourrat-lombard-odier) ⭐️
-| [La Poste Groupe](https://www.lapostegroupe.com/) | [Nicolas Matelot](https://www.linkedin.com/in/nicolas-matelot/) [Romain Gil](https://www.linkedin.com/in/romain-gil-8444898a) | Cloud-native application development, API Mocking and Sandbox
-| [J.B. Hunt](https://www.jbhunt.com/) | [Carol Gschwend](https://github.com/carolgschwend) | Accelerating cloud-native application development "The developers of the project mentioned above saved at least 7 months using Microcks. They were not only able to work concurrently but also captured the exact business requirements specified by the product owner in the form of example request/response pairs. These persistent mocks can now be utilized in sandbox environments if needed." See J.B. Hunt ⭐️ [blog post](https://microcks.io/blog/jb-hunt-mock-it-till-you-make-it/) ⭐️
-| [Société Générale](https://www.societegenerale.com/en) | [Patrice Lachance](https://github.com/patlachance) | Multi-protocol API Mocking, Testing and Sandbox for cloud-native APIs / applications. Integrated in [Cloud Innovation Platform](https://github.com/societe-generale/cloud-innovation-platform).
-| [Société Générale](https://www.societegenerale.com/en) | [Patrice Lachance](https://github.com/patlachance) | Cloud Innovation Platform presentation and Microcks demo 👉 [Red Hat Summit 2019](https://www.redhat.com/files/summit/session-assets/2019/T8B6B4.pdf) ⭐️
-| [Deloitte](https://www.deloitte.com/global/en.html) | [Madiha Rehman](https://www.linkedin.com/in/madihar/) | Utilised Microcks to create backend mocks for 170+ APIs including REST and SOAP services
-| [sesam-vitale](https://www.sesam-vitale.fr/) | [Vincent Fasciaux](mailto:vincent.fasciaux@sesam-vitale.fr) | We use Microcks to replace the SUT's dependencies with test doubles in order to accelerate our API deliveries
-| [BNP PARIBAS](https://group.bnpparibas/en/) | [Nadji BERRAF](https://www.linkedin.com/in/nadji-berraf-26707148/) | We use Microcks since 2022 to mock our legacy core banking systems and mainframe APIs in order to increase agility, accelerate development, and reduce costs. Microcks is also integrated into our API-first strategy for building and delivering new cloud-native services.
-| [Akwatype](https://akwatype.io) | [Pierre-Michel Bret](https://www.linkedin.com/in/pierre-michel-bret/) | Use of Microcks to mock the APIs corresponding to the OpenAPI contracts generated by Akwatype, integration through Git.
-| [codecentric AG](https://www.codecentric.de) | [Daniel Kocot](https://www.linkedin.com/in/danielkocot/) | API Operations pipeline with an integration of Microcks and consulting services around API Mocking and Testing.
-| [CNAM](https://www.ameli.fr) | [Sébastien Fraigneau](https://www.linkedin.com/in/s%C3%A9bastien-fraigneau-82826a2) | Using Microcks to mock SOAP services for the French healthcare system. REST is coming.
-| [API Quality](https://apiquality.io/en/) | [Omar del Valle](https://www.linkedin.com/in/omardelvalle/)| We are using Microcks for a step of the API first cycle.
-| [CloudAPPi](https://cloudappi.net) | [Marco Antonio Sanz Molina Prados](https://www.linkedin.com/in/marco-antonio-sanz-molina-prados-09733518/)| We manage over 40 APIs strategies in medium and big companies and install Microcks as a mock server.
-| [Sypid](https://www.sypid.com/) | [Zubair Aslam](https://www.linkedin.com/in/zubes1/)| Sypid consultants are highly experienced in the Spec-first approach to API and integration design. We use Microcks to implement this approach effectively. We found the docker extension is specifically useful to get started quickly.
-| [Inetum Software](https://www.inetum.com/) | [Jérôme Palon](https://www.linkedin.com/in/jpalon/)| We use Microcks as an API centralisation and mock server for the social and civil security division, paving the path for migration to microservices and event-driven cloud architecture.
-| [Fluent CI](https://fluentci.io/) | [Tsiry Sandratraina](https://github.com/tsirysndr)| We use Microcks to mock and test our REST and GraphQL APIs. We also provide an open source [Microcks module](https://github.com/fluent-ci-templates/microcks-pipeline) for [Dagger](https://dagger.io) and [Fluent CI](https://fluentci.io).
-| [Nordic Semiconductor](https://nordicsemi.com) | [Patrick Barnes](https://www.linkedin.com/in/patrick-barnes-pdx/) | We use Microcks mainly via testcontainers to test the REST APIs (and probably soon, our async, event-based APIs) for the microservices that comprise our IoT platform, [nRFCloud.com](https://nrfcloud.com/). Microcks has been invaluable, and the Microcks team a real pleasure to work with!
-| [Office national de l'emploi (ONEm)](https://www.onem.be/) | [Samuel Antoine](https://www.linkedin.com/in/samuel-antoine-07347b171/) [Christophe Lopez](https://www.linkedin.com/in/aeoncl/) | We use Microcks as both OpenAPI contract testing tool and mock provider.
diff --git a/assets/images/documentation/custome-dispatcher-pastry.png b/assets/images/documentation/custom-dispatcher-pastry.png
similarity index 100%
rename from assets/images/documentation/custome-dispatcher-pastry.png
rename to assets/images/documentation/custom-dispatcher-pastry.png
diff --git a/assets/images/documentation/first-soap-searchPets.png b/assets/images/documentation/first-soap-searchPets.png
new file mode 100644
index 00000000..0f459c58
Binary files /dev/null and b/assets/images/documentation/first-soap-searchPets.png differ
diff --git a/config/_default/module.toml b/config/_default/module.toml
index 18836928..a96bb870 100644
--- a/config/_default/module.toml
+++ b/config/_default/module.toml
@@ -38,9 +38,6 @@ path = "github.com/gethugothemes/hugo-modules/shortcodes/button"
[[imports]]
path = "github.com/gethugothemes/hugo-modules/accordion"
-[[imports]]
-path = "github.com/gethugothemes/hugo-modules/shortcodes/notice"
-
[[imports]]
path = "github.com/gethugothemes/hugo-modules/shortcodes/codepen"
diff --git a/config/_default/params.toml b/config/_default/params.toml
index 47985e72..6e71ed42 100644
--- a/config/_default/params.toml
+++ b/config/_default/params.toml
@@ -37,7 +37,7 @@ table_of_content = true
# copyright
theme_copyright = false
-copyright = "The Linux Foundation® (TLF) has registered trademarks and uses trademarks. For a list of TLF trademarks, see [**Trademark Usage**.](https://www.linuxfoundation.org/legal/trademark-usage)
**Microcks** is a [**Cloud Native Computing Sandbox**](https://landscape.cncf.io/?selected=microcks) project 🚀"
+copyright = "The Linux Foundation® (TLF) has registered trademarks and uses trademarks. For a list of TLF trademarks, see [**Trademark Usage**.](https://www.linuxfoundation.org/legal/trademark-usage)
**Microcks** is a [**Cloud Native Computing Sandbox**](https://landscape.cncf.io/?selected=microcks&item=app-definition-and-development--application-definition-image-build--microcks) project 🚀"
# Preloader
[preloader]
diff --git a/content/documentation/guides/automation/gitlab.md b/content/documentation/guides/automation/gitlab.md
index 6dac73a8..9e224fb7 100644
--- a/content/documentation/guides/automation/gitlab.md
+++ b/content/documentation/guides/automation/gitlab.md
@@ -3,7 +3,7 @@ draft: false
title: "Using GitLab CI"
date: 2019-11-11
publishdate: 2019-11-11
-lastmod: 2025-09-08
+lastmod: 2025-10-03
weight: 7
---
@@ -14,7 +14,13 @@ This guide shows how to integrate Microcks within your GitLab CI pipelines. You
- **Import** API [Artifacts](/documentation/references/artifacts/) (OpenAPI, Postman, AsyncAPI, etc.) into a Microcks instance
- **Launch tests** against a deployed API endpoint to verify contract conformance
-We rely on the [Microcks CLI](/documentation/guides/automation/cli) executed via its container image inside GitLab CI jobs. Authentication uses a Microcks [Service Account](/documentation/explanations/service-account).
+To Integrate Microcks within your GitLab CI pipelines you can rely on [GitLab CI/CD Components](https://gitlab.com/explore/catalog/microcks-cncf/microcks-community/microcks-gitlab-components).
+
+Authentication uses a Microcks [Service Account](/documentation/explanations/service-account).
+
+## Finding the Component
+The Microcks GitLab Components are available in the GitLab CI/CD Catalog at:
+https://gitlab.com/explore/catalog/microcks-cncf/microcks-community/microcks-gitlab-components
## 1. Prerequisites
@@ -30,118 +36,87 @@ We recommend storing credentials as masked GitLab CI variables:
In your project, navigate to Settings → CI/CD → Variables and add the variables above. Mark credentials as masked and protected according to your workflow.
-## 2. Import job (push artifacts into Microcks)
+## 2. Importing API Artifacts (push artifacts into Microcks)
-Use the `microcks-cli` container to import one or multiple specification files. Optionally mark artifacts as `primary` to drive multi-artifact behavior (see [Multi-artifacts](/documentation/explanations/multi-artifacts)).
+Use the `microcks-import` component to import one or multiple specification files.
```yaml
# .gitlab-ci.yml (excerpt)
+include:
+ - component: gitlab.com/microcks-cncf/microcks-community/microcks-gitlab-components/microcks-import@~latest
+ inputs:
+ specs: "specs/weather-forecast-openapi.yml:true,specs/weather-forecast-postman.json:false"
+ microcks_url: "https://microcks.apps.acme.com/api/"
+ keycloak_client_id: $KEYCLOAK_CLIENT_ID
+ keycloak_client_secret: $KEYCLOAK_CLIENT_SECRET
+ stage: import
+ image: "quay.io/microcks/microcks-cli:latest"
+
stages:
- import
-
-import-specs:
- stage: import
- image: quay.io/microcks/microcks-cli:latest
- variables:
- MICROCKS_URL: "$MICROCKS_URL" # set at project/group level
- KEYCLOAK_CLIENT_ID: "$KEYCLOAK_CLIENT_ID" # set at project/group level
- KEYCLOAK_CLIENT_SECRET: "$KEYCLOAK_CLIENT_SECRET" # set at project/group level
- script:
- - |
- microcks-cli import \
- 'specs/weather-forecast-openapi.yml:true,specs/weather-forecast-postman.json:false' \
- --microcksURL="$MICROCKS_URL" \
- --keycloakClientId="$KEYCLOAK_CLIENT_ID" \
- --keycloakClientSecret="$KEYCLOAK_CLIENT_SECRET"
```
-Notes:
+## Inputs
-- The argument to `import` is a comma-separated list of `` entries.
-- If you use self-signed certificates, add `--insecure`.
+| Input | Description | Type | Default |
+|-------|-------------|------|---------|
+| `microcks_url` | URL of the Microcks instance | string | `$MICROCKS_URL` |
+| `keycloak_client_id` | Keycloak client ID for authentication | string | `$KEYCLOAK_CLIENT_ID` |
+| `keycloak_client_secret` | Keycloak client secret for authentication | string | `$KEYCLOAK_CLIENT_SECRET` |
+| `specs` | Specification files to import (format: 'file1:mainArtifact,file2:mainArtifact') | string | `specs/weather-forecast-openapi.yml:true,specs/weather-forecast-postman.json:false` |
+| `stage` | CI/CD stage for the import job | string | `import` |
+| `image` | Docker image to use for the import job | string | `quay.io/microcks/microcks-cli:latest` |
-## 3. Test job (run contract tests)
+Note:
+By default, the component `gitlab.com/microcks-cncf/microcks-community/microcks-gitlab-components/microcks-import@~latest` uses the latest released component version. You can use a specific version by specifying it in the component reference. For example to use the component version 0.0.1 use the following component reference:
+```
+include:
+ - component: gitlab.com/microcks-cncf/microcks-community/microcks-gitlab-components/microcks-import@0.0.1
+```
-Run a contract test against your deployed API endpoint with one of the supported runners (`HTTP`, `SOAP`, `SOAP_UI`, `POSTMAN`, `OPEN_API_SCHEMA`, `ASYNC_API_SCHEMA`).
+## 3. Running Conformance Tests
+
+Run a contract test against your deployed API endpoint with one of the supported runners (`HTTP`, `SOAP`, `SOAP_UI`, `POSTMAN`, `OPEN_API_SCHEMA`, `ASYNC_API_SCHEMA`) by using `microcks-test` component
```yaml
# .gitlab-ci.yml (excerpt)
+include:
+ - component: gitlab.com/microcks-cncf/microcks-community/microcks-gitlab-components/microcks-test@~latest
+ inputs:
+ api_name_version: "My API:1.0.0"
+ test_endpoint: "https://my-api.example.com"
+ test_runner: "OPEN_API_SCHEMA"
+ microcks_url: "https://microcks.apps.acme.com/api/"
+ keycloak_client_id: $KEYCLOAK_CLIENT_ID
+ keycloak_client_secret: $KEYCLOAK_CLIENT_SECRET
+ stage: test
+ image: "quay.io/microcks/microcks-cli:latest"
+
stages:
- test
-
-test-api-contract:
- stage: test
- image: quay.io/microcks/microcks-cli:latest
- variables:
- MICROCKS_URL: "$MICROCKS_URL"
- KEYCLOAK_CLIENT_ID: "$KEYCLOAK_CLIENT_ID"
- KEYCLOAK_CLIENT_SECRET: "$KEYCLOAK_CLIENT_SECRET"
- script:
- - |
- microcks-cli test \
- 'API Pastry - 2.0:2.0.0' \
- 'https://my-api-pastry.apps.example.com' \
- OPEN_API_SCHEMA \
- --microcksURL="$MICROCKS_URL" \
- --keycloakClientId="$KEYCLOAK_CLIENT_ID" \
- --keycloakClientSecret="$KEYCLOAK_CLIENT_SECRET" \
- --waitFor=10sec
```
-Notes:
-
-- The first three arguments are: `` `` ``.
-- `--waitFor` lets the job wait for test completion up to the specified duration.
-- Add `--insecure` if your Microcks endpoint uses self-signed certificates.
-
-## 4. End-to-end example pipeline
-
-Below is a minimal pipeline with two stages: import artifacts and test the deployed API. Adapt the `only/except` or `rules` to your workflow.
-
-```yaml
-# .gitlab-ci.yml
-stages: [import, test]
-
-variables:
- # Prefer defining these at project/group level in Settings → CI/CD → Variables
- MICROCKS_URL: "$MICROCKS_URL"
- KEYCLOAK_CLIENT_ID: "$KEYCLOAK_CLIENT_ID"
- KEYCLOAK_CLIENT_SECRET: "$KEYCLOAK_CLIENT_SECRET"
-
-import-specs:
- stage: import
- image: quay.io/microcks/microcks-cli:latest
- script:
- - microcks-cli version
- - |
- microcks-cli import \
- 'specs/weather-forecast-openapi.yml:true,specs/weather-forecast-postman.json:false' \
- --microcksURL="$MICROCKS_URL" \
- --keycloakClientId="$KEYCLOAK_CLIENT_ID" \
- --keycloakClientSecret="$KEYCLOAK_CLIENT_SECRET"
- rules:
- - if: $CI_COMMIT_BRANCH
-
-test-api-contract:
- stage: test
- image: quay.io/microcks/microcks-cli:latest
- needs: ["import-specs"]
- script:
- - |
- microcks-cli test \
- 'API Pastry - 2.0:2.0.0' \
- 'https://my-api-pastry.apps.example.com' \
- OPEN_API_SCHEMA \
- --microcksURL="$MICROCKS_URL" \
- --keycloakClientId="$KEYCLOAK_CLIENT_ID" \
- --keycloakClientSecret="$KEYCLOAK_CLIENT_SECRET" \
- --waitFor=10sec
- rules:
- - if: $CI_COMMIT_BRANCH
+## Inputs
+
+| Input | Description | Type | Default |
+|-------|-------------|------|---------|
+| `microcks_url` | URL of the Microcks instance | string | `$MICROCKS_URL` |
+| `keycloak_client_id` | Keycloak client ID for authentication | string | `$KEYCLOAK_CLIENT_ID` |
+| `keycloak_client_secret` | Keycloak client secret for authentication | string | `$KEYCLOAK_CLIENT_SECRET` |
+| `api_name_version` | API name and version to test (format: 'API Name:version') | string | `API Pastry - 2.0:2.0.0` |
+| `test_endpoint` | Endpoint URL to test against | string | `https://my-api-pastry.apps.example.com` |
+| `test_runner` | Test runner to use | string | `OPEN_API_SCHEMA` |
+| `wait_for` | Time to wait for test completion | string | `10sec` |
+| `stage` | CI/CD stage for the test job | string | `test` |
+| `image` | Docker image to use for the test job | string | `quay.io/microcks/microcks-cli:latest` |
+
+Note:
+By default, the component `gitlab.com/microcks-cncf/microcks-community/microcks-gitlab-components/microcks-test@~latest` uses the latest released component version. You can use a specific version by specifying it in the component reference. For example to use the component version 0.0.1 use the following component reference:
+```
+include:
+ - component: gitlab.com/microcks-cncf/microcks-community/microcks-gitlab-components/microcks-test@0.0.1
```
## Wrap-up
-You have learned how to use the `microcks-cli` inside GitLab CI to import API artifacts and run contract tests. The CLI reuses the same authentication foundation described in the [Automation API guide](/documentation/guides/automation/api) and relies on a [Service Account](/documentation/explanations/service-account). For CLI flags and options, check the [Microcks CLI](/documentation/guides/automation/cli) guide and the tool's README.
-
-If you prefer a native CI integration, see also the guides for [GitHub Actions](/documentation/guides/automation/github-actions) and [Jenkins](/documentation/guides/automation/jenkins).
+You have learned how to use the Microcks GitLab Components to import API artifacts and run conformance tests directly from the GitLab CI/CD Catalog. The components provide a reusable and versioned integration that simplifies your pipeline configuration. Behind the scenes, they leverage the `microcks-cli` and use the same authentication foundation described in the [Automation API guide](/documentation/guides/automation/api), relying on a [Service Account](/documentation/explanations/service-account). For the most up-to-date information and available versions, check the [GitLab CI/CD Catalog](https://gitlab.com/explore/catalog/microcks-cncf/microcks-community/microcks-gitlab-components).
diff --git a/content/documentation/guides/integration/backstage-plugin.md b/content/documentation/guides/integration/backstage-plugin.md
index 121a8ef0..43c75f26 100644
--- a/content/documentation/guides/integration/backstage-plugin.md
+++ b/content/documentation/guides/integration/backstage-plugin.md
@@ -2,7 +2,7 @@
draft: false
title: "Configuring the Backstage Plugin"
date: 2024-04-30
-publishdate: 205-09-29
+publishdate: 2025-09-29
lastmod: 2025-09-29
weight: 3
---
@@ -16,8 +16,7 @@ The Microcks Backstage provider discovers APIs from one or more Microcks instanc
- A running Backstage application (backend package available)
- A running Microcks instance and its base URL, for example: `https://microcks.acme.com`
-- A Microcks Service Account in your Keycloak realm, with client id and secret
- - See: [/documentation/explanations/service-account](/documentation/explanations/service-account)
+- A Microcks Service Account in your Keycloak realm, with client id and secret. See [Service Account explanations](/documentation/explanations/service-account)
## 1. Install the provider
@@ -55,11 +54,11 @@ catalog:
```
- **baseUrl**: Public base URL of your Microcks instance (no trailing `/api/`).
-- **serviceAccount / serviceAccountCredentials**: Credentials of a Service Account in the Microcks Keycloak realm used to query Microcks. Prefer storing secrets in environment variables. See the Service Account documentation: [/documentation/explanations/service-account](/documentation/explanations/service-account).
+- **serviceAccount / serviceAccountCredentials**: Credentials of a Service Account in the Microcks Keycloak realm used to query Microcks. Prefer storing secrets in environment variables. See the [Service Account documentation](/documentation/explanations/service-account).
- **systemLabel / ownerLabel**: Microcks labels to map onto Backstage `system` and `owner` fields of the `API` entity. Choose labels that exist on your APIs in Microcks.
- **schedule**: Optional sync cadence. If omitted, the default provider schedule applies.
-For guidance on creating and managing Service Accounts and understanding default roles, see [/documentation/explanations/service-account](/documentation/explanations/service-account). For Keycloak-related configuration in Microcks, see [/documentation/references/configuration/security-config](/documentation/references/configuration/security-config).
+> For guidance on creating and managing Service Accounts and understanding default roles, see the [Service Account documentation](/documentation/explanations/service-account). For Keycloak-related configuration in Microcks, see [Security Configuration reference](/documentation/references/configuration/security-config).
## 3. Register the provider in your backend
@@ -83,8 +82,8 @@ Ensure your backend loads configuration from `app-config.yaml` and that the prov
The provider authenticates to Microcks using a Keycloak client (Service Account). At minimum, it needs read access to list APIs and artifacts in Microcks. If you use the default realm import, the `microcks-serviceaccount` exists by default. For production, create a dedicated client for Backstage and scope it to read-only permissions.
-- How to inspect or create accounts: [/documentation/explanations/service-account](/documentation/explanations/service-account)
-- How Microcks references Service Accounts in its own configs: [/documentation/references/configuration/security-config](/documentation/references/configuration/security-config)
+- How to inspect or create accounts: [Service Account explanations](/documentation/explanations/service-account)
+- How Microcks references Service Accounts in its own configs: [Security Configuration reference](/documentation/references/configuration/security-config)
## 5. Verify the synchronization
@@ -113,6 +112,6 @@ The provider authenticates to Microcks using a Keycloak client (Service Account)
## See also
-- Blog overview and screenshots: [/blog/backstage-integration-launch/](/blog/backstage-integration-launch/)
-- Provider source and issues: `https://github.com/microcks/microcks-backstage-provider`
-- Backstage Catalog concepts: `https://backstage.io/docs/features/software-catalog/`
\ No newline at end of file
+- Blog announcement with screenshots: [Backstage Integration Launch](/blog/backstage-integration-launch/)
+- Provider source and issues: [GitHub repository](https://github.com/microcks/microcks-backstage-provider)
+- Backstage Catalog concepts: [Software Catalog](https://backstage.io/docs/features/software-catalog/)
diff --git a/content/documentation/guides/usage/custom-dispatchers.md b/content/documentation/guides/usage/custom-dispatchers.md
index 7da609d3..442caa6b 100644
--- a/content/documentation/guides/usage/custom-dispatchers.md
+++ b/content/documentation/guides/usage/custom-dispatchers.md
@@ -31,11 +31,11 @@ For a broader tour and advanced strategies, see [Dispatcher & dispatching rules]
We will use the `API Pastry - 2.0` sample from the Getting Started tutorial. It contains multiple examples for the `GET /pastry/{name}` operation. We’ll set a custom dispatcher to demonstrate a default response using `FALLBACK` when the requested pastry doesn’t exist (something distinct from default content negotiation, which Microcks already handles automatically).
-### 2.1 Load the sample API
+### Load the sample API
To load the `API Pastry-2.0` sample into your Microcks instance, follow the [Getting started](/documentation/tutorials/getting-started) tutorial.
-### 2.2 Set a custom dispatcher via the UI
+### Set a custom dispatcher via the UI
1. Open the `API Pastry - 2.0` service page.
2. Locate the `GET /pastry/{name}` operation. Open the 3-dots menu on the right and choose **Edit Properties**.
@@ -71,7 +71,7 @@ This tries to match a response by the `name` path parameter first (using `URI_PA
Note: You do not need `QUERY_HEADER` to implement content negotiation on `Accept` — Microcks already returns the appropriate representation if multiple media types exist for the same example.
-### 2.3 Verify with curl
+### Verify with curl
Call the mock endpoint with an existing pastry name, then with an unknown one to observe the fallback:
@@ -94,7 +94,7 @@ The second call returns the `Millefeuille` example thanks to the `FALLBACK` conf
UI editing is convenient, but you may prefer a declarative approach that travels with the API or is managed externally.
-### 3.1 Using OpenAPI extensions
+### Using OpenAPI extensions
Add an `x-microcks-operation` block at the operation level in your OpenAPI file, then re-import:
@@ -114,7 +114,7 @@ paths:
On the next import, this will overwrite any UI-edited dispatcher configuration for that operation. See [OpenAPI extensions](/documentation/references/artifacts/openapi-conventions/#openapi-extensions).
-### 3.2 Using API Metadata
+### Using API Metadata
Keep dispatch config outside of the API definition using an `APIMetadata` artifact:
diff --git a/content/documentation/guides/usage/importing-content.md b/content/documentation/guides/usage/importing-content.md
index eb1b68fe..e1a0fb27 100644
--- a/content/documentation/guides/usage/importing-content.md
+++ b/content/documentation/guides/usage/importing-content.md
@@ -109,7 +109,7 @@ Using the 3-dotted menu, you can easily enable/disable or force the job.
### Configure scheduling interval
-The scheduling interval can be globally configured for all Jobs. It is a global setting and not a per-job one. This is achieved through the `services.update.interval` property in the `application.properties` configuration file, which takes the value of the `SERVICES_UPDATE_INTERVAL` environment variable. The value should be set to a valid [CRON expression](https://en.wikipedia.org/wiki/Cron#CRON_expression); the default is every 2 hours.
+The scheduling interval can be globally configured for all Jobs. It is a global setting and not a per-job one. This is achieved through the `services.update.interval` property in the `application.properties` configuration file, which takes the value of the `SERVICES_UPDATE_INTERVAL` environment variable. The value should be set to a valid [CRON expression](https://spring.io/blog/2020/11/10/new-in-spring-5-3-improved-cron-expressions); the default is every 2 hours.
```properties
services.update.interval=${SERVICES_UPDATE_INTERVAL:0 0 0/2 * * *}
diff --git a/go.mod b/go.mod
index f0a41ca3..8af9e24c 100644
--- a/go.mod
+++ b/go.mod
@@ -3,36 +3,38 @@ module examplesite.com
go 1.20
require (
- github.com/gethugothemes/hugo-modules/accordion v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20241202174442-fd870d01c544 // indirect
- github.com/gethugothemes/hugo-modules/images v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20240925042433-d2b5d05977e8 // indirect
+ github.com/gethugothemes/hugo-modules/accordion v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/adsense v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/images v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/pwa v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20250702070945-cd8319c6b26e // indirect
github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20240925042433-d2b5d05977e8 // indirect
github.com/gethugothemes/hugo-modules/shortcodes/gallery v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240925042433-d2b5d05977e8 // indirect
+ github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20250702070945-cd8319c6b26e // indirect
github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20240925042433-d2b5d05977e8 // indirect
github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20240925042433-d2b5d05977e8 // indirect
github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20240925042433-d2b5d05977e8 // indirect
github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/tab v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gethugothemes/hugo-modules/videos v0.0.0-20240925042433-d2b5d05977e8 // indirect
- github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20200 // indirect
+ github.com/gethugothemes/hugo-modules/tab v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gethugothemes/hugo-modules/videos v0.0.0-20250702070945-cd8319c6b26e // indirect
+ github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20400 // indirect
+ github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2 v2.21100.20000 // indirect
+ github.com/twbs/bootstrap v5.3.8+incompatible // indirect
)
diff --git a/go.sum b/go.sum
index 069b2a71..608d191d 100644
--- a/go.sum
+++ b/go.sum
@@ -1,133 +1,69 @@
-github.com/gethugothemes/hugo-modules/accordion v0.0.0-20230705095442-1f2d5ac8b18d h1:jQSqk58QBOw45BDkTMoMgjCvIuCkdjWM786NzDwZuos=
-github.com/gethugothemes/hugo-modules/accordion v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:D4DpauKPDcUHI9CVKYmJeO6bkSJIhUN864TyXZ2o0VI=
-github.com/gethugothemes/hugo-modules/accordion v0.0.0-20240925042433-d2b5d05977e8 h1:glx/9W1+SUOc3YQROIA59CBr6myIo3gzsJysJJaQe/A=
-github.com/gethugothemes/hugo-modules/accordion v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:D4DpauKPDcUHI9CVKYmJeO6bkSJIhUN864TyXZ2o0VI=
-github.com/gethugothemes/hugo-modules/adsense v0.0.0-20230705095442-1f2d5ac8b18d h1:AVqybWwrZ9OSQhmYLd4sTCoULxTMAKFUD3owgn6VGSQ=
-github.com/gethugothemes/hugo-modules/adsense v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:8p/gG/cyyu20z4q5cFN/JGE5TOFA55Xsp+aIP9KCsqo=
-github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240925042433-d2b5d05977e8 h1:ewKsG7Nfk55KHJbOLiRNHu01UURu6fS6RWA2RY6S8k4=
-github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:8p/gG/cyyu20z4q5cFN/JGE5TOFA55Xsp+aIP9KCsqo=
-github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20230705095442-1f2d5ac8b18d h1:dFISe5rnA7vrRuVmP83JP8uXRLgMez/elmAwtB/vI+Y=
-github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:511ERLpGe3ZTfV2z/NAtUSR5NqKF26h9z5lU/zYV4YQ=
-github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240925042433-d2b5d05977e8 h1:oIO0o2wdY2Jhkz+NyzTgwizCGSf6V0IGumuD985SKeU=
-github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:511ERLpGe3ZTfV2z/NAtUSR5NqKF26h9z5lU/zYV4YQ=
-github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20230705095442-1f2d5ac8b18d h1:KcxsNsQbFLTIAukXXw9iIpILt+YtQCyyGOQ5S1qXXD0=
-github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:qiV/PIeVY59RD2W885rFWc7b62uovQZO6VPFHeP5LT0=
-github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20240925042433-d2b5d05977e8 h1:6kmR95oBWLIPXMQ9BC8qdwEg3NfuQOuOE1gMJnH09t8=
-github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:qiV/PIeVY59RD2W885rFWc7b62uovQZO6VPFHeP5LT0=
-github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20230705095442-1f2d5ac8b18d h1:7CrXusaqUGzWcf7D9XSggxrSZ8K4AQ5io+mL9g+2W04=
-github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:RuDHq4WnK8sNEzAIJr4BZQ7oXhzcct/EKaAxc2Xvi9E=
-github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240925042433-d2b5d05977e8 h1:b/zLhGA++K6BBuat2bc8LX1EUUgfbXr0csu3CBaR/9s=
-github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:RuDHq4WnK8sNEzAIJr4BZQ7oXhzcct/EKaAxc2Xvi9E=
-github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20230705095442-1f2d5ac8b18d h1:/04Nzs7aQ+YzMAcrK7byZXDzX8rDe66n6y9uEvsbXqk=
-github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:FP0iQ3tMOesuWFZhLst2KEvUEYPb5Jk1GW+QBP9lrwg=
-github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240925042433-d2b5d05977e8 h1:qXQgATaoB64NwDGxtEsN3dvL79eoJc8de7qzhY1qlGs=
-github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:FP0iQ3tMOesuWFZhLst2KEvUEYPb5Jk1GW+QBP9lrwg=
-github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20230705095442-1f2d5ac8b18d h1:jQA77cMSmYoCD8LZJsIxwZBPtoACgSv9pY4LjmFTDAg=
-github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:z3YcIeEBUonAoRDY1/Jv1ojNVkZ5ud35a0Nn8L4Inx0=
-github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240925042433-d2b5d05977e8 h1:mK0hf8QyPHHT+vYTnAJ23R8S0oudNluyQ8N24Gg3Buk=
-github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:z3YcIeEBUonAoRDY1/Jv1ojNVkZ5ud35a0Nn8L4Inx0=
-github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20230705095442-1f2d5ac8b18d h1:YafsTBhqpK/7zPms9rK4D5wwEsfuFYujqhFknD1zNfs=
-github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:Gcj4RM/EBECsJMZnPeWjfy/1roRYGqzV9GYNmeHkvFA=
-github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20240925042433-d2b5d05977e8 h1:+cMV+5ctKpE5rL3gwHJphIWmIr0+PNJvsLhopiC8biY=
-github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:Gcj4RM/EBECsJMZnPeWjfy/1roRYGqzV9GYNmeHkvFA=
-github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20230705095442-1f2d5ac8b18d h1:q3GLopQAtqYaB0+/E/30TdrTMrai/Tg9WEpL2SJCoIQ=
-github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:MvQ2js/ofZ22CTX5wuvE+dC0rMe6C5HAWL2fEOu/yzE=
-github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20240925042433-d2b5d05977e8 h1:/2gTKMuTvHO+PoZ7H6SGBHB8vtCaFi6lttfBtY74i3E=
-github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:MvQ2js/ofZ22CTX5wuvE+dC0rMe6C5HAWL2fEOu/yzE=
-github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20230705095442-1f2d5ac8b18d h1:G/UA6GpJzIY1Dau3crhPbmdSDPFlpTbyvPE74xLPNSY=
-github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:0ZMjTZVG4XLZU2/icc8Saqo4mmgMpfRTrUZU2Aa2Pwg=
-github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240925042433-d2b5d05977e8 h1:5/R8j8xG2tvH6bsBrrF1zG6JdBxzzGf7ITlgysgteI0=
-github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:0ZMjTZVG4XLZU2/icc8Saqo4mmgMpfRTrUZU2Aa2Pwg=
-github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20230705095442-1f2d5ac8b18d h1:4iFMEVLb/NK7heoGFw4rjD3fm3Ig/rLZDpZ8JVIZUgU=
-github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:d3gy1vQyfasPmGpau7HpQLrXbOv23PfXclSnjyOBxeU=
-github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240925042433-d2b5d05977e8 h1:h2xHThbg1laJN6t2+bMr6dIAcD/b0IXBWOp+kJlzJec=
-github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:d3gy1vQyfasPmGpau7HpQLrXbOv23PfXclSnjyOBxeU=
-github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20241202174442-fd870d01c544 h1:Vo2ga+ujG2dJ3kKET81lQM8BJJXhbe4ty3luzDlZwis=
-github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20241202174442-fd870d01c544/go.mod h1:d3gy1vQyfasPmGpau7HpQLrXbOv23PfXclSnjyOBxeU=
-github.com/gethugothemes/hugo-modules/images v0.0.0-20230705095442-1f2d5ac8b18d h1:4BSpUG0gKaEV0P5KTS37Z3GQuzfuEM3cZWBAql1XztU=
-github.com/gethugothemes/hugo-modules/images v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:FKliP3qOW9diIcQeLtyZ0Hdhg3PL8bdAkC/6O+XtU90=
-github.com/gethugothemes/hugo-modules/images v0.0.0-20240925042433-d2b5d05977e8 h1:rGWMqcpmotd5G+q5HS9p9sC4GQF2hMxEesuJx8aKvKE=
-github.com/gethugothemes/hugo-modules/images v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:FKliP3qOW9diIcQeLtyZ0Hdhg3PL8bdAkC/6O+XtU90=
-github.com/gethugothemes/hugo-modules/pwa v0.0.0-20230705095442-1f2d5ac8b18d h1:MpWB3xZuPIttuRmAuaC8AHPcMmmPilq2VfmJSvV6aco=
-github.com/gethugothemes/hugo-modules/pwa v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:TRv7iszdfo37O1PbBEE+S8X/enAdpRIxK5DGrp13Qbo=
-github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240925042433-d2b5d05977e8 h1:cTObVCZAxl/yW2oVH3FVmg8npXqLWRemuJjXHnnTq0Y=
-github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:TRv7iszdfo37O1PbBEE+S8X/enAdpRIxK5DGrp13Qbo=
-github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20230705095442-1f2d5ac8b18d h1:SAfuxvf36uy4QIhNRz2UIvxlsZQpb9BBvdy7vKnUcPc=
-github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:D/bbq2hSHE+r582zpC3rEdvuk8GufDnq9sGL3xCk/C0=
-github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20240925042433-d2b5d05977e8 h1:tsYuHy7SsoKlJkADdTrCJIXYs+NRyt0kc6qn+YvbxoU=
-github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:D/bbq2hSHE+r582zpC3rEdvuk8GufDnq9sGL3xCk/C0=
-github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20230705095442-1f2d5ac8b18d h1:/4LCpHtGjTUCepN5S53I0mcHos5K4vXM8xGQvPgKaN4=
-github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:Q8dPgjamV7pxwKSQyWV21Xwh5CGi23/k+M8HPTphYbs=
-github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240925042433-d2b5d05977e8 h1:cyhgsUNA0Kr172aab/Iy/K11KODP/lTzlOxuNY497vA=
-github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:Q8dPgjamV7pxwKSQyWV21Xwh5CGi23/k+M8HPTphYbs=
-github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20230705095442-1f2d5ac8b18d h1:JDY985GHu4ya5mNq4atp6Jwa66IpjsqVpGu7jNyuSR8=
-github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:3kPooRg0PWUkciccThPQbBvIpTfSCo7W9mc3a5GxXHs=
-github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20240925042433-d2b5d05977e8 h1:YpebNS5F+zV8yE9e8W3jHp81cj5/7zWieB34VUTWAOo=
-github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:3kPooRg0PWUkciccThPQbBvIpTfSCo7W9mc3a5GxXHs=
-github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20230705095442-1f2d5ac8b18d h1:fsCAZMRB4Z51rBCzukLoMqDU0dqkj268zsUMo41Bqxk=
-github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:cCq50yd55eFTrpqOfeyOK5X0hU5E7qxsqOD7IzTsgLA=
-github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240925042433-d2b5d05977e8 h1:WDiOV7iyIFGAUwQzDojoYSayovskKB3mPxm11mf99F4=
-github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:cCq50yd55eFTrpqOfeyOK5X0hU5E7qxsqOD7IzTsgLA=
-github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20230705095442-1f2d5ac8b18d h1:goXIeNuaH9UWbvXTnAwxe7OswMA6RJs5MIlddrXp4xo=
-github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:P2GLltWjXFBJlatFKh4l6WOBszW7+f09myLkZoBBgEs=
-github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20240925042433-d2b5d05977e8 h1:GQ5hErPi3W4sHq9BTcqDoij2jtPB1Xp2dahl5y/pO1Q=
-github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:P2GLltWjXFBJlatFKh4l6WOBszW7+f09myLkZoBBgEs=
-github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20230705095442-1f2d5ac8b18d h1:R3LY1CIhd6dRRfDxxmw5DcE6tlWc8z5eVMOjVf6MsRA=
-github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:MOJtK8ttzyqQiqs0xQkk6xgPaxGbcH7WI5thobpNvqg=
-github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20240925042433-d2b5d05977e8 h1:VmsGMFVCQgcCNsVuWicafA5fOdVTEBK80ndBj3flDN4=
-github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:MOJtK8ttzyqQiqs0xQkk6xgPaxGbcH7WI5thobpNvqg=
-github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20230705095442-1f2d5ac8b18d h1:uruEG9JH6C1jP07LFeut03+a4foZ70CH+VS0EvJQjSk=
-github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:iXielaya126qJscz7Bc2G2WB91moloQOoWru6UoBUyE=
-github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240925042433-d2b5d05977e8 h1:qlKzcEIQqvbw+q+7RynsqSMVSQ/UafD5Xe3B9A7VMF0=
-github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:iXielaya126qJscz7Bc2G2WB91moloQOoWru6UoBUyE=
-github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20230705095442-1f2d5ac8b18d h1:/iW6rzcTpffNsKi4VvK2yloYqHZqJU/wz/1VONMMVXs=
-github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:MSvxGvjvcGUKTs6YMATU/9kYFrzW+VSVdy4CCOQLdsY=
-github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20240925042433-d2b5d05977e8 h1:lugKYn6GRv4MVCC1vDJwm94Y6r2eq1CCxwMfK/ha51I=
-github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:MSvxGvjvcGUKTs6YMATU/9kYFrzW+VSVdy4CCOQLdsY=
-github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20230705095442-1f2d5ac8b18d h1:zUnFdn+f1hCAd9Wf3LKkRP/z+0vfMnZlAyYiddS1G9g=
-github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:Y4eAJ7fkCSC6k6fl1+qF4DIoRepAYyB9Om4kBCAixcg=
-github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20240925042433-d2b5d05977e8 h1:NayJdgpxNzGKmlWHDEH/Wob3u5JAh+/dsHdUcsdMOsM=
-github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:Y4eAJ7fkCSC6k6fl1+qF4DIoRepAYyB9Om4kBCAixcg=
-github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20230705095442-1f2d5ac8b18d h1:6304Bk8yoM7DAbFO0CPUPKOyvmu5+QuRXTv1qocw6PQ=
-github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:rBCFuR+QzMk0S1npR0zVDzgocFncOmyxWToJlRw4ZxU=
+github.com/gethugothemes/hugo-modules/accordion v0.0.0-20250702070945-cd8319c6b26e h1:yeUGenAenE/TAr+h4N1d9u8TMqZFgyk3RkJg87HY8bY=
+github.com/gethugothemes/hugo-modules/accordion v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:D4DpauKPDcUHI9CVKYmJeO6bkSJIhUN864TyXZ2o0VI=
+github.com/gethugothemes/hugo-modules/adsense v0.0.0-20250702070945-cd8319c6b26e h1:IlTqtQ0ZRSc4ft7yME2x4HVOvNjXsQdf2j67ohlMCuA=
+github.com/gethugothemes/hugo-modules/adsense v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:8p/gG/cyyu20z4q5cFN/JGE5TOFA55Xsp+aIP9KCsqo=
+github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20250702070945-cd8319c6b26e h1:2ESPpEOSc4UnrvuP403RRkH+8ZNDONAmYWKk2iGPQoE=
+github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:511ERLpGe3ZTfV2z/NAtUSR5NqKF26h9z5lU/zYV4YQ=
+github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20250702070945-cd8319c6b26e h1:lZKyrDxOcd9D+zgSpFBXjAoq2d/pJBbOTb6ITujQFZ8=
+github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:qiV/PIeVY59RD2W885rFWc7b62uovQZO6VPFHeP5LT0=
+github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20250702070945-cd8319c6b26e h1:5YQBKlrbIRSSw7VjPZjEg5wZ6xVVXSfQdxoB2dZdp5w=
+github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:RuDHq4WnK8sNEzAIJr4BZQ7oXhzcct/EKaAxc2Xvi9E=
+github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20250702070945-cd8319c6b26e h1:0+Fyqpcl6RSmeuznyp53fWdx/UmSebx4J66q3KWurxk=
+github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:FP0iQ3tMOesuWFZhLst2KEvUEYPb5Jk1GW+QBP9lrwg=
+github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20250702070945-cd8319c6b26e h1:RLVNVedKWohxb+/0rDwf0WcWDYcjDjQsEVwAsODojBc=
+github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:z3YcIeEBUonAoRDY1/Jv1ojNVkZ5ud35a0Nn8L4Inx0=
+github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20250702070945-cd8319c6b26e h1:O5rS96mOri+c4fwIhR+gsAiCvNu1gN/7YWiY69k4th4=
+github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:Gcj4RM/EBECsJMZnPeWjfy/1roRYGqzV9GYNmeHkvFA=
+github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20250702070945-cd8319c6b26e h1:NgDMR7siU4Co054+OtF3mbm5LZxeILQM7RxGWZQWsFk=
+github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:MvQ2js/ofZ22CTX5wuvE+dC0rMe6C5HAWL2fEOu/yzE=
+github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20250702070945-cd8319c6b26e h1:LXPCTA8RsFXfcj8/jiIb2eY0WHFDQmJOeYUsJRsnJBk=
+github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:0ZMjTZVG4XLZU2/icc8Saqo4mmgMpfRTrUZU2Aa2Pwg=
+github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20250702070945-cd8319c6b26e h1:G73VfYfePhAlt0OKW2LEzXRhfcgdbCdAod4eVmqsW3Y=
+github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:d3gy1vQyfasPmGpau7HpQLrXbOv23PfXclSnjyOBxeU=
+github.com/gethugothemes/hugo-modules/images v0.0.0-20250702070945-cd8319c6b26e h1:qM7Y9IUOEXk+3D3cT4nIowJoEUhPKnaWuDLNKmDbo3g=
+github.com/gethugothemes/hugo-modules/images v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:FKliP3qOW9diIcQeLtyZ0Hdhg3PL8bdAkC/6O+XtU90=
+github.com/gethugothemes/hugo-modules/pwa v0.0.0-20250702070945-cd8319c6b26e h1:2H9ZMpna5lgtEKjgOZfxB6yfcmcBArALMaZefS4sn00=
+github.com/gethugothemes/hugo-modules/pwa v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:TRv7iszdfo37O1PbBEE+S8X/enAdpRIxK5DGrp13Qbo=
+github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20250702070945-cd8319c6b26e h1:nn4aTOy/W8xkUNTypbVH7q1xle9njBqJG2qB/TON5eA=
+github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:D/bbq2hSHE+r582zpC3rEdvuk8GufDnq9sGL3xCk/C0=
+github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20250702070945-cd8319c6b26e h1:cQYmFwZ2+vlhzrz2FK5tSDy9/XbnxmSFIO6JMkfmXs4=
+github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:Q8dPgjamV7pxwKSQyWV21Xwh5CGi23/k+M8HPTphYbs=
+github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20250702070945-cd8319c6b26e h1:3YcRgEznXZDLAJlXsdvCOiF/+BvHScZCoB/R4qThrgk=
+github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:3kPooRg0PWUkciccThPQbBvIpTfSCo7W9mc3a5GxXHs=
+github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20250702070945-cd8319c6b26e h1:+xtmpzJdZmSDbGtGx3hyLlz/8Z+EsCK0dDNZlSDTyBE=
+github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:cCq50yd55eFTrpqOfeyOK5X0hU5E7qxsqOD7IzTsgLA=
+github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20250702070945-cd8319c6b26e h1:QSsnkwUytvfFTfNOim7woIQsJ0x4xUM+EoDyrOx4030=
+github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:P2GLltWjXFBJlatFKh4l6WOBszW7+f09myLkZoBBgEs=
+github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20250702070945-cd8319c6b26e h1:WUMcM6VXmRtvAYuymjlrTCntOWK98Ko3QggxeapBs/E=
+github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:MOJtK8ttzyqQiqs0xQkk6xgPaxGbcH7WI5thobpNvqg=
+github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20250702070945-cd8319c6b26e h1:T7z6lO/lTCC0Fmolj5oAzF1dUMZBeDwOWW64HS4aujA=
+github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:iXielaya126qJscz7Bc2G2WB91moloQOoWru6UoBUyE=
+github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20250702070945-cd8319c6b26e h1:Smgl9VRE+TEvRQ4jYsR4wfnyOX2abq0TYftGJF6sSmA=
+github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:MSvxGvjvcGUKTs6YMATU/9kYFrzW+VSVdy4CCOQLdsY=
+github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20250702070945-cd8319c6b26e h1:Glmx9BwIzJT4+LOIOKStD1TeXDu96espVRKCU5Qxlw4=
+github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:Y4eAJ7fkCSC6k6fl1+qF4DIoRepAYyB9Om4kBCAixcg=
github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20240925042433-d2b5d05977e8 h1:/ekDbxlWbloUT149PLaCKTORR7rKoeJaqOdOXlFsDSg=
github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:rBCFuR+QzMk0S1npR0zVDzgocFncOmyxWToJlRw4ZxU=
-github.com/gethugothemes/hugo-modules/shortcodes/gallery v0.0.0-20230705095442-1f2d5ac8b18d h1:Yi3x4PvEx/91Fjiucr8SNa/dlsxGPGdh3FSmFJUsLxw=
-github.com/gethugothemes/hugo-modules/shortcodes/gallery v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:nPS/s/W7rrOwgt46g4/tOkBhiJzg61M6AzUbGbNTNKY=
github.com/gethugothemes/hugo-modules/shortcodes/gallery v0.0.0-20240925042433-d2b5d05977e8 h1:AhY4qvFxv9J6UzbDwXsYHqyamTFBR6OaEv2LJOtfoBg=
github.com/gethugothemes/hugo-modules/shortcodes/gallery v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:nPS/s/W7rrOwgt46g4/tOkBhiJzg61M6AzUbGbNTNKY=
-github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20230705095442-1f2d5ac8b18d h1:k66Lbkjz413r8HgwpgH4uAnSsNGiPLP6G3EYm5LdABM=
-github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:ljWyMJx82WA+6SlKjbGFhEdxcriyvUTCjXkJHDa4lho=
-github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240925042433-d2b5d05977e8 h1:OODdhrS3Fy9GTGvKzk704NfwR4p+1s4ymVrCPEGct1o=
-github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:ljWyMJx82WA+6SlKjbGFhEdxcriyvUTCjXkJHDa4lho=
-github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20230705095442-1f2d5ac8b18d h1:+Tpdpd8spMLOuwOHvw85H0aQk43ioSgc/y3k5mG0REU=
-github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:LKCp/rg9cHtfjHpIEYmpR8kuauI8JNN79nmdkFURXp0=
+github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20250702070945-cd8319c6b26e h1:PSRioId6cJ+niztdLkbGyxpuu4YETRTau8e7KvlZYlo=
+github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:ljWyMJx82WA+6SlKjbGFhEdxcriyvUTCjXkJHDa4lho=
github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20240925042433-d2b5d05977e8 h1:UfZLrz9c/e6jZwNjJPRPOVL+k/vNIPzCve7QA9VcNbQ=
github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:LKCp/rg9cHtfjHpIEYmpR8kuauI8JNN79nmdkFURXp0=
-github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20231128022238-01f05014fce9 h1:pytN0Rx/maif2qHLC3wEQ0RKRGg1mXy7sEfZo2XjHUc=
-github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20231128022238-01f05014fce9/go.mod h1:zaQhvQgsSOWfSm/zP3NbWWEfrxgrcdpBblljz2IA2vA=
github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20240925042433-d2b5d05977e8 h1:wGiEHblbXl9qYzFcIoOk+LzNmhukToXjf+YVVFZwHvY=
github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:zaQhvQgsSOWfSm/zP3NbWWEfrxgrcdpBblljz2IA2vA=
-github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20231128022238-01f05014fce9 h1:4Ae4aaFZ4aSx6yCQMwcWeOgrDlsfxBRPjJ/VF1loaQc=
-github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20231128022238-01f05014fce9/go.mod h1:s5CHMBd7/NalnckFfRhZJvqXPY/QTrluDvRgZm7+Cr0=
github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20240925042433-d2b5d05977e8 h1:GmBpIrEhfkBG5MTw++XOvKqVUcqCMy0TFnPXGFOBL60=
github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:s5CHMBd7/NalnckFfRhZJvqXPY/QTrluDvRgZm7+Cr0=
-github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20230705095442-1f2d5ac8b18d h1:WZmbpCiuHg5PwVubd/7aEumDhjipX1ZyeduOEFpbUJE=
-github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:DtWNw6au8NQg1Y0x470DstCHqjWZPnwm61Uu6ZIMy50=
github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20240925042433-d2b5d05977e8 h1:37TeExumLSf8kV1MGGk8YgeloDASIRqejc+65YAZcAg=
github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:DtWNw6au8NQg1Y0x470DstCHqjWZPnwm61Uu6ZIMy50=
-github.com/gethugothemes/hugo-modules/tab v0.0.0-20230705095442-1f2d5ac8b18d h1:dC5Q6Av0cIymvQSMTCkvmUTPtE+3K87C4G0cw6CN1b0=
-github.com/gethugothemes/hugo-modules/tab v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:h3UxlxrFoU19JldxWLPBKaTZFe3AJtABrqo1wfxr+Ng=
-github.com/gethugothemes/hugo-modules/tab v0.0.0-20240925042433-d2b5d05977e8 h1:/CjcG8HFYt6ROy9jLpikozjVAQngN0gnVsw/Jbs8lCg=
-github.com/gethugothemes/hugo-modules/tab v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:h3UxlxrFoU19JldxWLPBKaTZFe3AJtABrqo1wfxr+Ng=
-github.com/gethugothemes/hugo-modules/videos v0.0.0-20230705095442-1f2d5ac8b18d h1:uQ/wG/8Dj13J/Yv60fua86XNN/AehNF6pigULseTef0=
-github.com/gethugothemes/hugo-modules/videos v0.0.0-20230705095442-1f2d5ac8b18d/go.mod h1:P722lLWdnNhdZVq6gvMrOLqECUwrAYQWaOWlChta5H0=
-github.com/gethugothemes/hugo-modules/videos v0.0.0-20240925042433-d2b5d05977e8 h1:0nNuE80/NDYplmQPj0lB0O5xUUdC13qHnxcaMOOul9E=
-github.com/gethugothemes/hugo-modules/videos v0.0.0-20240925042433-d2b5d05977e8/go.mod h1:P722lLWdnNhdZVq6gvMrOLqECUwrAYQWaOWlChta5H0=
-github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20003 h1:pt/JGVD5YYRsVVijOHPZI6YKTUvbR4e0hgV9B0S6rbI=
-github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20003/go.mod h1:mvM05r93HiefwoaxQTaYiJxtJAhTebwQtU1Xh/J+Okk=
-github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20200 h1:SmpwwN3DNzJWbV+IT8gaFu07ENUFpCvKou5BHYUKuVs=
-github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20200/go.mod h1:kx8MBj9T7SFR8ZClWvKZPmmUxBaltkoXvnWlZZcSnYA=
+github.com/gethugothemes/hugo-modules/tab v0.0.0-20250702070945-cd8319c6b26e h1:9Lo06KpXEKlMeFzjHKukNQ/WHOCRIJw9bQs9q/HXyiQ=
+github.com/gethugothemes/hugo-modules/tab v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:h3UxlxrFoU19JldxWLPBKaTZFe3AJtABrqo1wfxr+Ng=
+github.com/gethugothemes/hugo-modules/videos v0.0.0-20250702070945-cd8319c6b26e h1:tOnlYxVEet334mwKNlUmPVEOLKNJpy3/IRhegSI9ItE=
+github.com/gethugothemes/hugo-modules/videos v0.0.0-20250702070945-cd8319c6b26e/go.mod h1:P722lLWdnNhdZVq6gvMrOLqECUwrAYQWaOWlChta5H0=
+github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20400 h1:L6+F22i76xmeWWwrtijAhUbf3BiRLmpO5j34bgl1ggU=
+github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20400/go.mod h1:uekq1D4ebeXgduLj8VIZy8TgfTjrLdSl6nPtVczso78=
+github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2 v2.21100.20000 h1:GZxx4Hc+yb0/t3/rau1j8XlAxLE4CyXns2fqQbyqWfs=
github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2 v2.21100.20000/go.mod h1:mFberT6ZtcchrsDtfvJM7aAH2bDKLdOnruUHl0hlapI=
-github.com/twbs/bootstrap v5.3.0+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
-github.com/twbs/bootstrap v5.3.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
+github.com/twbs/bootstrap v5.3.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
+github.com/twbs/bootstrap v5.3.8+incompatible h1:eK1fsXP7R/FWFt+sSNmmvUH9usPocf240nWVw7Dh02o=
+github.com/twbs/bootstrap v5.3.8+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
diff --git a/public b/public
index 591d1f91..563f79a8 160000
--- a/public
+++ b/public
@@ -1 +1 @@
-Subproject commit 591d1f91346e897b0958e18ddda2d51d723a5a6b
+Subproject commit 563f79a8c8694d0d1b8390d0cf76f4352a7a086a