Skip to content

Add unified resources catalog page at /resources - #4710

Closed
Kushal1272 wants to merge 1 commit into
chef:mainfrom
Kushal1272:resources-unified-docs
Closed

Add unified resources catalog page at /resources#4710
Kushal1272 wants to merge 1 commit into
chef:mainfrom
Kushal1272:resources-unified-docs

Conversation

@Kushal1272

Copy link
Copy Markdown

Summary

Introduces a single, authoritative Resources discovery page at docs.chef.io/resources that lists every resource across Chef Infra Client and Chef InSpec, with a compatibility matrix, SEO-friendly descriptions, and links to each product's documentation.

Today, /resources is only a redirect to the Infra bundled pages, and resources are documented per product and per release with no unified view. This page provides that unified catalog without replacing the existing version-specific documentation — release pages continue to list only the resources introduced in each version.

What's included

  • New page content/resources/_index.md — top-level hub, registered in the Overview nav via page front matter (same pattern as platforms.md / versions.md; no menu.toml change).
  • New layout layouts/_default/resources_matrix.html — adapted from the existing infra_resources_all.html. Merges the canonical Infra resource YAML (data/client/19/resources) with a committed InSpec snapshot into one 4-column compatibility matrix (Resource | Chef Infra Client | Chef InSpec | Description). Checkmark cells link to each product's authoritative page.
  • New partial layouts/partials/resource_short_desc.html — trims descriptions to the first sentence so cells stay scannable and SEO-friendly.
  • New data data/resources/inspec.yaml — a committed snapshot of the InSpec resource catalog (name → platform, description, deprecated), generated once from inspec/inspec. InSpec docs are deployed as a separate site and aren't built from this repo, so a snapshot is the least-coupled way to include them.
  • netlify.toml — documents the /resources/* redirect. It's non-forced (301), so Netlify serves the generated /resources/index.html for the hub while legacy per-resource deep links (for example /resources/apt_package/) still redirect to the Infra resource page.

Data of record

Chef Infra Client resources: 181 · Chef InSpec resources: 407 · Supported by both: 16 · Total catalog: 572.

Design rationale

  • Reuse over new infrastructure. The Infra half reads existing canonical YAML at build time (no duplication, auto-syncs). The new layout is a clone of the repo's existing all-resources generator.
  • No re-coupling of InSpec. Re-importing InSpec as a Hugo module would drag ~407 pages and shortcodes into this build and undo the deliberate separate-site deployment. A thin committed snapshot mirrors the existing "resource data generated from a source repo, committed here" pattern.
  • No duplication of resource docs. Rows link out to authoritative pages; the page is a discovery/index layer.

Validation

  • Isolated Hugo build against real data: no errors, no raw HTML omitted / ZgotmplZ.
  • Matrix verified: 16 both-rows, 572 total rows, 181 Infra links, 407 InSpec links, no list bloat in cells.
  • markdownlint-cli2: 0 issues. vale --minAlertLevel warning: 0 errors/warnings.
  • hugo_lint.sh ASCII rule: new content and data files are ASCII-clean.

Reviewer notes

  • Highest-attention item: the netlify.toml redirect. Behavior relies on Netlify's file-precedence for non-forced redirects. Please confirm on a deploy preview that /resources/ renders the new page and /resources/apt_package/ still redirects.
  • InSpec snapshot is a point-in-time capture; see the header comment in data/resources/inspec.yaml for the source and how to regenerate.

Intentionally out of scope (follow-ups)

  • A committed refresh script and CI wiring to auto-update the InSpec snapshot.
  • Per-resource unified detail pages (currently link-out only).
  • A filter/search UI on the matrix if the flat table proves large.

Introduce a single authoritative discovery page listing every resource
across Chef Infra Client and Chef InSpec, with a compatibility matrix,
SEO-friendly descriptions, and links to each product's documentation.

The page reuses the existing data-driven resource pipeline: it reads the
canonical Chef Infra Client resource YAML (data/client/19/resources) at
build time and a committed InSpec snapshot (data/resources/inspec.yaml)
generated from the inspec/inspec docs. Version-specific resource pages are
unchanged and continue to list only resources introduced in each release.

- content/resources/_index.md: new top-level page (nav via front matter)
- layouts/_default/resources_matrix.html: 4-column matrix (adapted from
  infra_resources_all.html)
- layouts/partials/resource_short_desc.html: first-sentence descriptions
- data/resources/inspec.yaml: committed InSpec resource snapshot
- netlify.toml: document /resources/* redirect (non-forced; the new page
  is served while legacy deep links still redirect)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Kushal1272
Kushal1272 requested a review from a team as a code owner August 3, 2026 08:24
@netlify

netlify Bot commented Aug 3, 2026

Copy link
Copy Markdown

Deploy Preview for chef-web-docs ready!

Name Link
🔨 Latest commit 0a31a69
🔍 Latest deploy log https://app.netlify.com/projects/chef-web-docs/deploys/6a705053c1720600081a5e41
😎 Deploy Preview https://deploy-preview-4710--chef-web-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@Kuxhul

Kuxhul commented Aug 3, 2026

Copy link
Copy Markdown

Superseded by #4711, which is opened from the office account with the same commit. Closing this one.

@Kuxhul Kuxhul closed this Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants