diff --git a/docs/assets/javascripts/docs-theme.js b/docs/assets/javascripts/docs-theme.js
index bca89dd5f2..d4fbdefb9f 100644
--- a/docs/assets/javascripts/docs-theme.js
+++ b/docs/assets/javascripts/docs-theme.js
@@ -158,9 +158,24 @@ function initializeDocsTheme() {
if (drawerToggle.checked) {
window.setTimeout(function () {
- var firstLink = drawer.querySelector(".md-nav__list a[href]");
+ // With navigation.tabs, every tab's subtree stays mounted in the
+ // drawer (Material slides the active one into view instead of
+ // removing the rest). Opening the drawer reliably leaves
+ // .md-sidebar__scrollwrap scrolled one panel-width to the right,
+ // hiding the active tab's own list off-screen. Force it back to
+ // the resting position before moving focus.
+ const scrollwrap = drawer.querySelector(".md-sidebar__scrollwrap");
+ if (scrollwrap) {
+ scrollwrap.scrollLeft = 0;
+ }
+
+ // The first link in document order can belong to a tab that
+ // isn't currently visible; focusing it without a scoped lookup
+ // would re-trigger the same off-screen scroll. Prefer the
+ // active tab's first link, and pass preventScroll as a backstop.
+ const firstLink = drawer.querySelector(".md-nav__item--active > .md-nav .md-nav__list a[href]") || drawer.querySelector(".md-nav__list a[href]");
if (firstLink) {
- firstLink.focus();
+ firstLink.focus({ preventScroll: true });
}
}, 0);
} else {
diff --git a/docs/release-notes/index.md b/docs/release-notes/index.md
index f50832d941..aba676dcd3 100644
--- a/docs/release-notes/index.md
+++ b/docs/release-notes/index.md
@@ -2,6 +2,7 @@
rss_title: Codacy release notes RSS feed
rss_href: /feed_rss_created.xml
description: Index of release notes for Codacy Cloud and Codacy Self-hosted.
+icon: megaphone-outline
hide:
- toc
---
diff --git a/mkdocs.yml b/mkdocs.yml
index 6bc71d5559..01e223ef3e 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -39,6 +39,8 @@ theme:
- "content.code.copy"
- "content.tabs.link"
- "navigation.path"
+ - "navigation.tabs"
+ - "navigation.tabs.sticky"
extra_css:
- "stylesheets/fonts.css"
- "stylesheets/tokens.css"
@@ -67,7 +69,8 @@ extra:
user_feedback: "true"
community_url: "https://community.codacy.com/"
support_email: "support@codacy.com"
- # Ionicons displayed for top-level entries in the navigation sidebar.
+ # Ionicons displayed for the top section within each tab's sidebar (see
+ # level == 2 handling in theme/partials/nav-item.html).
sidebar_icons:
"Documentation home": "home-outline"
"Getting started": "rocket-outline"
@@ -82,8 +85,9 @@ extra:
"Codacy API": "code-slash-outline"
"Managing Codacy Self-hosted": "server-outline"
"Troubleshooting and FAQs": "medical-outline"
- "Release notes": "megaphone-outline"
"Special thanks": "heart-outline"
+ "Cloud": "cloud-outline"
+ "Self-hosted": "server-outline"
# Do not show a generated-by badge in the footer.
generator: false
# Add pull request preview banner
@@ -613,137 +617,139 @@ plugins:
"repositories-configure/file-extensions.md": "repositories-configure/languages.md"
nav:
- - Documentation home: "index.md"
- - Getting started:
- - getting-started/codacy-quickstart.md
- - getting-started/configuring-your-repository.md
- - getting-started/integrating-codacy-with-your-git-workflow.md
- - Integrating Codacy with your IDE:
- - getting-started/integrating-codacy-with-intellij-ides.md
- - getting-started/integrating-codacy-with-visual-studio-code.md
- - getting-started/supported-languages-and-tools.md
- - getting-started/which-permissions-does-codacy-need-from-my-account.md
- - getting-started/adding-a-codacy-badge.md
- - Codacy Guardrails (IDE Extension):
- - codacy-guardrails/codacy-guardrails-getting-started.md
- - codacy-guardrails/codacy-guardrails-how-to-use.md
- - codacy-guardrails/codacy-guardrails-how-to-configure-rules.md
- - codacy-guardrails/codacy-guardrails-limitations.md
- - codacy-guardrails/codacy-guardrails-troubleshooting.md
- - codacy-guardrails/codacy-guardrails-faq.md
- - Codacy Cloud CLI:
- - codacy-cloud-cli/index.md
- - Codacy AI:
- - codacy-ai/codacy-ai.md
- - Repositories on Codacy:
- - repositories/repository-dashboard.md
- - repositories/commits.md
- - repositories/files.md
- - repositories/issues.md
- - repositories/coverage.md
- - repositories/pull-requests.md
- - Configuring your repositories:
- - repositories-configure/configuring-code-patterns.md
- - repositories-configure/managing-branches.md
- - Managing integrations:
- - repositories-configure/integrations/github-integration.md
- - repositories-configure/integrations/gitlab-integration.md
- - repositories-configure/integrations/bitbucket-integration.md
- - repositories-configure/integrations/post-commit-hooks.md
- - repositories-configure/ignoring-files.md
- - repositories-configure/languages.md
- - repositories-configure/adjusting-quality-gates.md
- - repositories-configure/adjusting-quality-goals.md
- - Setting up code coverage:
- - coverage-reporter/index.md
- - coverage-reporter/alternative-ways-of-running-coverage-reporter.md
- - coverage-reporter/uploading-coverage-in-advanced-scenarios.md
- - coverage-reporter/troubleshooting-coverage-cli-issues.md
- - Local analysis:
- - repositories-configure/local-analysis/client-side-tools.md
- - repositories-configure/local-analysis/running-aligncheck.md
- - repositories-configure/local-analysis/running-dartanalyzer.md
- - repositories-configure/local-analysis/running-deadcode.md
- - repositories-configure/local-analysis/running-spotbugs.md
- - repositories-configure/local-analysis/running-eslint.md
- - repositories-configure/using-submodules.md
- - repositories-configure/codacy-configuration-file.md
- - repositories-configure/removing-your-repository.md
- - Organizations:
- - organizations/what-are-organizations.md
- - organizations/managing-repositories.md
- - organizations/segments.md
- - Reporting:
- - organizations/reporting/organization-overview.md
- - organizations/reporting/issues-metrics.md
- - organizations/reporting/codacy-usage.md
- - organizations/using-gate-policies.md
- - organizations/using-coding-standards.md
- - organizations/ai-risk-hub.md
- - Managing integrations:
- - organizations/integrations/default-git-provider-integration-settings.md
- - Slack integration for Security issues: organizations/integrations/slack-integration.md
- - Jira integration for Security and risk management: organizations/integrations/jira-integration.md
- - organizations/managing-security-and-risk.md
- - organizations/managing-people.md
- - organizations/audit-logs-for-organizations.md
- - organizations/roles-and-permissions-for-organizations.md
- - organizations/changing-your-plan-and-billing.md
- - Enterprise Cloud:
- - enterprise-cloud/github-enterprise-cloud.md
- - Your account:
- - account/managing-your-profile.md
- - account/emails.md
- - account/user-session-management.md
- - Codacy API:
- - codacy-api/using-the-codacy-api.md
- - codacy-api/api-tokens.md
- - API v3 reference (recommended): https://api.codacy.com/api/api-docs
- - API v2 reference: https://api.codacy.com/api-docs
- - Examples:
- - codacy-api/examples/adding-people-to-codacy-programmatically.md
- - codacy-api/examples/adding-repositories-to-codacy-programmatically.md
- - codacy-api/examples/creating-repository-api-tokens-programmatically.md
- - codacy-api/examples/obtaining-code-quality-metrics-for-files.md
- - codacy-api/examples/obtaining-current-issues-in-repositories.md
- - codacy-api/examples/identifying-commits-without-coverage-data.md
- - codacy-api/examples/uploading-dast-results.md
- - codacy-api/examples/triggering-dast-scans.md
- - Managing Codacy Self-hosted: "!include submodules/chart/mkdocs.yml"
- - Troubleshooting and FAQs:
- - General:
- - faq/general/which-platforms-and-technologies-does-codacy-support.md
- - faq/general/how-does-codacy-support-github-enterprise.md
- - faq/general/how-does-codacy-support-gitlab-cloud.md
- - faq/general/how-does-codacy-support-gitlab-enterprise.md
- - faq/general/how-does-codacy-support-bitbucket-cloud.md
- - faq/general/how-does-codacy-support-bitbucket-server.md
- - faq/general/how-does-codacy-keep-my-data-secure.md
- - faq/general/how-does-codacy-protect-my-privacy.md
- - faq/general/does-codacy-keep-audit-logs.md
- - faq/general/how-do-i-allowlist-codacy-cloud-on-my-git-provider.md
- - faq/general/how-can-i-change-or-cancel-my-plan.md
- - Repositories:
- - faq/repositories/how-do-i-reanalyze-my-repository.md
- - faq/repositories/i-renamed-my-repository-on-the-git-provider.md
- - Code analysis:
- - faq/code-analysis/which-metrics-does-codacy-calculate.md
- - faq/code-analysis/why-does-codacy-show-unexpected-coverage-changes.md
- - faq/code-analysis/does-codacy-place-limits-on-the-code-analysis.md
- - faq/code-analysis/does-codacy-check-for-dependencies.md
- - faq/code-analysis/how-long-does-it-take-for-my-repository-to-be-analyzed.md
- - faq/code-analysis/how-to-skip-an-analysis.md
- - faq/code-analysis/can-i-bypass-codacy-status-check.md
- - faq/code-analysis/how-to-configure-php-codesniffer-coding-standards.md
- - Troubleshooting:
- - faq/troubleshooting/why-cant-i-see-my-organization.md
- - faq/troubleshooting/why-did-codacy-stop-commenting-on-pull-requests.md
- - faq/troubleshooting/why-arent-duplication-metrics-being-calculated.md
- - faq/troubleshooting/why-isnt-my-public-repository-being-analyzed.md
- - faq/troubleshooting/not-a-member-of-the-organization.md
- - faq/troubleshooting/we-no-longer-have-access-to-this-repository.md
- - faq/troubleshooting/why-is-my-file-over-150-kb-missing.md
- - faq/troubleshooting/error-line-endings.md
+ - Documentation:
+ - Documentation home: "index.md"
+ - Getting started:
+ - getting-started/codacy-quickstart.md
+ - getting-started/configuring-your-repository.md
+ - getting-started/integrating-codacy-with-your-git-workflow.md
+ - Integrating Codacy with your IDE:
+ - getting-started/integrating-codacy-with-intellij-ides.md
+ - getting-started/integrating-codacy-with-visual-studio-code.md
+ - getting-started/supported-languages-and-tools.md
+ - getting-started/which-permissions-does-codacy-need-from-my-account.md
+ - getting-started/adding-a-codacy-badge.md
+ - Codacy Guardrails (IDE Extension):
+ - codacy-guardrails/codacy-guardrails-getting-started.md
+ - codacy-guardrails/codacy-guardrails-how-to-use.md
+ - codacy-guardrails/codacy-guardrails-how-to-configure-rules.md
+ - codacy-guardrails/codacy-guardrails-limitations.md
+ - codacy-guardrails/codacy-guardrails-troubleshooting.md
+ - codacy-guardrails/codacy-guardrails-faq.md
+ - Codacy Cloud CLI:
+ - codacy-cloud-cli/index.md
+ - Codacy AI:
+ - codacy-ai/codacy-ai.md
+ - Repositories on Codacy:
+ - repositories/repository-dashboard.md
+ - repositories/commits.md
+ - repositories/files.md
+ - repositories/issues.md
+ - repositories/coverage.md
+ - repositories/pull-requests.md
+ - Configuring your repositories:
+ - repositories-configure/configuring-code-patterns.md
+ - repositories-configure/managing-branches.md
+ - Managing integrations:
+ - repositories-configure/integrations/github-integration.md
+ - repositories-configure/integrations/gitlab-integration.md
+ - repositories-configure/integrations/bitbucket-integration.md
+ - repositories-configure/integrations/post-commit-hooks.md
+ - repositories-configure/ignoring-files.md
+ - repositories-configure/languages.md
+ - repositories-configure/adjusting-quality-gates.md
+ - repositories-configure/adjusting-quality-goals.md
+ - Setting up code coverage:
+ - coverage-reporter/index.md
+ - coverage-reporter/alternative-ways-of-running-coverage-reporter.md
+ - coverage-reporter/uploading-coverage-in-advanced-scenarios.md
+ - coverage-reporter/troubleshooting-coverage-cli-issues.md
+ - Local analysis:
+ - repositories-configure/local-analysis/client-side-tools.md
+ - repositories-configure/local-analysis/running-aligncheck.md
+ - repositories-configure/local-analysis/running-dartanalyzer.md
+ - repositories-configure/local-analysis/running-deadcode.md
+ - repositories-configure/local-analysis/running-spotbugs.md
+ - repositories-configure/local-analysis/running-eslint.md
+ - repositories-configure/using-submodules.md
+ - repositories-configure/codacy-configuration-file.md
+ - repositories-configure/removing-your-repository.md
+ - Organizations:
+ - organizations/what-are-organizations.md
+ - organizations/managing-repositories.md
+ - organizations/segments.md
+ - Reporting:
+ - organizations/reporting/organization-overview.md
+ - organizations/reporting/issues-metrics.md
+ - organizations/reporting/codacy-usage.md
+ - organizations/using-gate-policies.md
+ - organizations/using-coding-standards.md
+ - organizations/ai-risk-hub.md
+ - Managing integrations:
+ - organizations/integrations/default-git-provider-integration-settings.md
+ - Slack integration for Security issues: organizations/integrations/slack-integration.md
+ - Jira integration for Security and risk management: organizations/integrations/jira-integration.md
+ - organizations/managing-security-and-risk.md
+ - organizations/managing-people.md
+ - organizations/audit-logs-for-organizations.md
+ - organizations/roles-and-permissions-for-organizations.md
+ - organizations/changing-your-plan-and-billing.md
+ - Enterprise Cloud:
+ - enterprise-cloud/github-enterprise-cloud.md
+ - Your account:
+ - account/managing-your-profile.md
+ - account/emails.md
+ - account/user-session-management.md
+ - Codacy API:
+ - codacy-api/using-the-codacy-api.md
+ - codacy-api/api-tokens.md
+ - API v3 reference (recommended): https://api.codacy.com/api/api-docs
+ - API v2 reference: https://api.codacy.com/api-docs
+ - Examples:
+ - codacy-api/examples/adding-people-to-codacy-programmatically.md
+ - codacy-api/examples/adding-repositories-to-codacy-programmatically.md
+ - codacy-api/examples/creating-repository-api-tokens-programmatically.md
+ - codacy-api/examples/obtaining-code-quality-metrics-for-files.md
+ - codacy-api/examples/obtaining-current-issues-in-repositories.md
+ - codacy-api/examples/identifying-commits-without-coverage-data.md
+ - codacy-api/examples/uploading-dast-results.md
+ - codacy-api/examples/triggering-dast-scans.md
+ - Managing Codacy Self-hosted: "!include submodules/chart/mkdocs.yml"
+ - Troubleshooting and FAQs:
+ - General:
+ - faq/general/which-platforms-and-technologies-does-codacy-support.md
+ - faq/general/how-does-codacy-support-github-enterprise.md
+ - faq/general/how-does-codacy-support-gitlab-cloud.md
+ - faq/general/how-does-codacy-support-gitlab-enterprise.md
+ - faq/general/how-does-codacy-support-bitbucket-cloud.md
+ - faq/general/how-does-codacy-support-bitbucket-server.md
+ - faq/general/how-does-codacy-keep-my-data-secure.md
+ - faq/general/how-does-codacy-protect-my-privacy.md
+ - faq/general/does-codacy-keep-audit-logs.md
+ - faq/general/how-do-i-allowlist-codacy-cloud-on-my-git-provider.md
+ - faq/general/how-can-i-change-or-cancel-my-plan.md
+ - Repositories:
+ - faq/repositories/how-do-i-reanalyze-my-repository.md
+ - faq/repositories/i-renamed-my-repository-on-the-git-provider.md
+ - Code analysis:
+ - faq/code-analysis/which-metrics-does-codacy-calculate.md
+ - faq/code-analysis/why-does-codacy-show-unexpected-coverage-changes.md
+ - faq/code-analysis/does-codacy-place-limits-on-the-code-analysis.md
+ - faq/code-analysis/does-codacy-check-for-dependencies.md
+ - faq/code-analysis/how-long-does-it-take-for-my-repository-to-be-analyzed.md
+ - faq/code-analysis/how-to-skip-an-analysis.md
+ - faq/code-analysis/can-i-bypass-codacy-status-check.md
+ - faq/code-analysis/how-to-configure-php-codesniffer-coding-standards.md
+ - Troubleshooting:
+ - faq/troubleshooting/why-cant-i-see-my-organization.md
+ - faq/troubleshooting/why-did-codacy-stop-commenting-on-pull-requests.md
+ - faq/troubleshooting/why-arent-duplication-metrics-being-calculated.md
+ - faq/troubleshooting/why-isnt-my-public-repository-being-analyzed.md
+ - faq/troubleshooting/not-a-member-of-the-organization.md
+ - faq/troubleshooting/we-no-longer-have-access-to-this-repository.md
+ - faq/troubleshooting/why-is-my-file-over-150-kb-missing.md
+ - faq/troubleshooting/error-line-endings.md
+ - special-thanks.md
- Release notes:
- release-notes/index.md
- Cloud:
@@ -908,4 +914,3 @@ nav:
- release-notes/self-hosted/self-hosted-v1.1.0.md
- release-notes/self-hosted/self-hosted-v1.0.1.md
- release-notes/self-hosted/self-hosted-v1.0.0.md
- - special-thanks.md
diff --git a/theme/assets/vendor/ionicons/svg/cloud-outline.svg b/theme/assets/vendor/ionicons/svg/cloud-outline.svg
new file mode 100644
index 0000000000..2da3b38e09
--- /dev/null
+++ b/theme/assets/vendor/ionicons/svg/cloud-outline.svg
@@ -0,0 +1 @@
+
diff --git a/theme/partials/header.html b/theme/partials/header.html
index df8bdef565..ddac08b6da 100644
--- a/theme/partials/header.html
+++ b/theme/partials/header.html
@@ -14,7 +14,7 @@
-