docs: reorganize supported languages and tools by scan type - #2731
Conversation
Replace the single 10-column, 50-row table with one section per scan type (static analysis, secret detection, dependency vulnerability scanning, etc.), each holding a narrow language-to-tool table. The page's TOC now lists 9 scan types instead of forcing readers to scroll a table that ran off-screen horizontally.
Up to standards ✅🟢 Issues
|
|
Overall readability score: 53.74 (🔴 -0.16)
View detailed metrics🟢 - Shows an increase in readability
Averages:
View metric targets
|
<sup> inherits font-size: smaller with no custom styling anywhere in the theme, so footnote links like <a href="#opengrep"><sup>1</sup></a> render a ~5x15px clickable area. Pad the sup and pull back with a matching negative margin so the hit area grows without shifting surrounding text or the visible marker size.
- Enable the footnotes markdown extension so [^id] renders as proper numbered, back-linkable footnotes instead of hand-rolled <sup><a>...</a></sup> HTML with no theme styling. - Add an Overview section (Language | File extensions | Supported scans / Others) ahead of the scan-type sections, with each scan name linking to its section, so a language lookup and a category lookup both work from this page. - Reorder sections: Overview, Static analysis, Secret detection, Dependency vulnerability scanning, Malicious packages detection, License scanning, Others (Suggested fixes, Duplication, Complexity), Docker images of supported tools. - Convert the Docker images tool-to-repository table from raw HTML to a markdown table, needed for its footnote references to render. - Drop forced <br> line breaks in the Dependency vulnerability scanning and Malicious packages detection tables — leftover from when these were columns in a 10-column table and needed to wrap narrowly; they read as broken mid-sentence wraps in the new, wider 2-column layout. - Flag with a TODO that Complexity may conflate a per-language tool (what's listed) with a separate file-level metric Codacy also calculates; no documented per-language breakdown of the metric exists yet to model that split. Theme: a footnote referenced from many rows (e.g. the "opengrep" footnote, used by ~20 languages) gets one back-reference link per usage. Material renders those one per line instead of flowing inline, turning a heavily-referenced footnote into a list item several screens tall. Keep only the first back-link. Also extend the sup tap-target fix to cover both the footnotes extension's <sup><a> markup and the hand-rolled <a><sup> pattern still used on other pages.
- Drop per-row #suggest-fixes anchor links left dangling after the footnote/section rework — htmltest flagged 11 broken hashes since the anchor they used to jump to no longer exists on the page. - Wrap file extensions in the new Overview table as code spans, and the literal github.com domain reference as code, so Vale's Terms rule stops matching them as miscapitalized product names. - Fix "Agentlinter" -> "AgentLinter" to match the tool's actual name used elsewhere on the same page. - Add SQLFluff, pipenv, Bundler, and lockfile to the Vale vocabulary — pre-existing terms that were dormant because reviewdog only lints added lines, and this page's whole table just became "added". Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Promotes Suggested fixes, Duplication, and Complexity to top-level sections so they show up in the page's on-page TOC, and stacks multi-value file extensions with <br> instead of a long comma-separated list. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull Request Overview
The PR successfully reorganizes the 'Supported languages and tools' documentation by scan type and modernizes the underlying structure using native Markdown footnotes. Codacy analysis indicates the changes are up to standards, and the CSS improvements for footnote tap targets enhance mobile accessibility.
There is a notable implementation gap: the PR description mentions an 'Others' section containing 'Suggested fixes', 'Duplication', and 'Complexity', but the current implementation uses individual H2 headers for these categories without a parent 'Others' header. Additionally, a high-severity issue was identified regarding a broken link for the Prospector tool that must be corrected before merging.
About this PR
- The PR implementation uses individual H2 headers for 'Suggested fixes', 'Duplication', and 'Complexity'. This contradicts the PR description and test plan which specified these should be grouped under an 'Others' section. Please align the header hierarchy with the intended TOC structure.
Test suggestions
- Found recommended test scenario: Verify that Overview table links correctly anchor to their respective scan-type headers.
- Found recommended test scenario: Verify that the 'footnotes' extension is enabled and rendering proper back-links in the build.
- Found recommended test scenario: Verify that footnote markers have an enlarged tap target (padding) as specified in CSS.
- Found recommended test scenario: Verify that footnotes with multiple references only display a single back-reference link to prevent layout bloat.
- Found recommended test scenario: Verify that relative links to ../faq/code-analysis/which-metrics-does-codacy-calculate.md are valid and resolve correctly.
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
…managers Prospector pointed to landscapeio/prospector2, an unrelated repo, instead of landscapeio/prospector (already correct elsewhere on the page) — caught by AI PR review. Also renames the License scanning table's "Tools" header to "Package managers" since it lists Conan, NuGet, npm, etc. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ub.com/codacy/docs into docs-supported-languages-scan-type-toc
* docs: reorganize roles and permissions by Codacy role Splits the three wide GitHub/GitLab/Bitbucket permission grids (up to 10 columns each) into short per-provider role-mapping lists plus one shared set of narrow Operation|Allowed tables per Codacy role. The same permission values were being repeated identically across all three provider tables; this states each fact once instead of three times and removes the horizontal scroll. Follow-up to #2731, which did the analogous reorg for supported-languages-and-tools.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs: merge per-role permission tables into one comparison matrix The five separate Operation|Allowed tables made it hard to compare roles side by side, which is the more common use case (an admin deciding what role to assign) than looking up a single role. Replaces them with one table (Operation rows x 5 Codacy-role columns) so all roles are visible at once, still narrower than the original per-provider tables. Anchors for each role are preserved via id attributes on the table header cells. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs: use tables for the Git provider role mappings Bulleted lists forced a comma-separated set of provider roles into a bolded "term," which is an awkward fit for a plain role-to-role mapping. A two-column table (Git provider role | Codacy role) is the more direct container for that comparison. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs: scope the GitHub App footnote to GitHub The footnote on "Add and remove repository" only existed on the original GitHub table; GitLab and Bitbucket's identical Yes had no such caveat. Merging the three provider tables into one shared Repository admin column left the footnote attached to a value GitLab/Bitbucket readers also see, so make the scope explicit rather than let it read as a cross-provider requirement. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix: correct table border CSS comment and include th in border rules The comment said borders were "disabled" for horizontal lines when the rule actually adds them via border-top. th was also missing from the selector, so header cells lacked the vertical dividers body cells get. Addresses Codacy AI review feedback on #2732. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Summary
<sup><a>...</a></sup>HTML (unstyled anywhere in the theme, and its bottom-of-page list read oddly) to thefootnotesmarkdown extension ([^id]/[^id]: text), which Material renders as proper numbered, back-linkable footnotes. Enabledfootnotesinmkdocs.yml— confirmed via repo-wide grep that no page currently uses[^...]syntax, so this is additive, not a behavior change elsewhere.<br>line breaks in the Dependency vulnerability scanning and Malicious packages detection tables — leftover from when these were columns in a 10-column table and needed to wrap narrowly; they read as broken mid-sentence wraps in the new, wider 2-column layout.<!-- TODO -->marker on Complexity: the table currently lists a per-language tool (Lizard, detekt), but Codacy also calculates a separate file-level complexity metric, and there's no documented per-language breakdown of that metric to model the distinction — flagging rather than guessing.hrefwith a directory-style path that doesn't apply to a markdown link).##sections (no "Others" wrapper) so they show up directly in the page's on-page TOC.<br>(e.g. C++'s five extensions each on their own line) instead of one long comma-separated string, so the column reads narrower.landscapeio/prospector2, an unrelated repo, instead oflandscapeio/prospector(already used correctly twice elsewhere on the page).Theme fixes (
theme/stylesheets/content.css)sup's browser-defaultfont-size: smallerand had no styling anywhere in the theme (~5×15px clickable area). Rule covers both the footnotes extension's<sup><a>markup and the hand-rolled<a><sup>pattern still used on a couple of other pages.Test plan
mkdocs build --strictpasses (anchor validation iswarn→error under--strict, confirming every footnote and Overview jump-link resolves)vale docs/getting-started/supported-languages-and-tools.md— 0 errors/warnings/suggestions#docker-images-of-supported-tools— both referenced by inbound links/redirects elsewhere in the repo — are unchanged and present in the built HTML<ol>with back-references; item height back to ~17px (was ~1150px) after the backref fix, verified across all 10 footnotes<sup><a>markup (~15×22px) and spot-checked on the pre-existing<a><sup>pattern onmanaging-security-and-risk.mdandorganization-overview.mdlandscapeio/prospector2resolves to a real but unrelated repo, andlandscapeio/prospectoris the correct, already-used-elsewhere link🤖 Generated with Claude Code