Skip to content

Add unified resources catalog page at /resources - #4711

Draft
Kuxhul wants to merge 2 commits into
mainfrom
resources-unified-docs
Draft

Add unified resources catalog page at /resources#4711
Kuxhul wants to merge 2 commits into
mainfrom
resources-unified-docs

Conversation

@Kuxhul

@Kuxhul Kuxhul commented Aug 3, 2026

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>
@Kuxhul
Kuxhul requested a review from a team as a code owner August 3, 2026 08:37
@netlify

netlify Bot commented Aug 3, 2026

Copy link
Copy Markdown

Deploy Preview for chef-web-docs ready!

Name Link
🔨 Latest commit d709b98
🔍 Latest deploy log https://app.netlify.com/projects/chef-web-docs/deploys/6a7062ccb6881300083e2f80
😎 Deploy Preview https://deploy-preview-4711--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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new top-level Resources hub at /resources/ that serves as a unified discovery/catalog page for resources across Chef Infra Client and Chef InSpec, rendering a compatibility matrix from existing Infra YAML plus a committed InSpec snapshot.

Changes:

  • Adds content/resources/_index.md and a new resources_matrix layout to render a unified resources compatibility matrix.
  • Introduces data/resources/inspec.yaml as a snapshot-backed data source for Chef InSpec resource metadata.
  • Documents /resources/* redirect behavior in netlify.toml and adds a helper partial to shorten descriptions in the matrix.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
netlify.toml Adds documentation comments for the /resources/* redirect intended to preserve legacy deep links while serving the new hub page.
layouts/partials/resource_short_desc.html New partial to derive a short (first-sentence) description for table cells.
layouts/_default/resources_matrix.html New layout that merges Infra YAML and InSpec snapshot data into a unified compatibility matrix with outbound links.
data/resources/inspec.yaml Adds a committed snapshot of the InSpec resource catalog (name → platform/description/deprecated).
content/resources/_index.md New /resources/ content page wiring in the layout, data path, and Overview navigation entry.

deprecated: false
bond:
platform: "linux"
description: "Use the `bond` Chef InSpec audit resource to test a logical, bonded network interface (i.e."
Comment thread netlify.toml
Comment on lines +129 to +132
# The unified resources catalog is a real page at /resources/ (content/resources/_index.md).
# This rule is non-forced (status 301), so Netlify serves the generated /resources/index.html
# for the bare path and only applies this redirect to legacy per-resource deep links
# (for example, /resources/apt_package/), sending them to the Chef Infra Client resource page.
…source packs

- Reparent the page under the Packages & Platforms menu as 'Supported resources',
  matching the Supported versions and Supported platforms pages.
- Fix Chef InSpec resource links: point to /inspec/7.1/resources/core/<name>/
  (the pre-existing /inspec/latest/resources/ links 404 after the InSpec 7 docs
  restructure). Pin the version via an inspec_version variable in the layout.
- Trim data/resources/inspec.yaml to the 130 Chef InSpec core resources. As of
  Chef InSpec 7, cloud and platform resources are no longer part of core.
- Add data/resources/inspec_packs.yaml and a grouped 'Chef InSpec resource packs'
  table (AWS, Azure, GCP, Docker, Kubernetes, and more) that links to each pack's
  landing page instead of listing hundreds of individual resources.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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