Skip to main content

Task recipe · ARC 2.0.0-beta.28

Recipe: collection list page

Build a list page over a content collection by linking source binding and layout component unit pages — no prop tables here.

Task: one collection list page that selects objects under content/<type>/ and presents them with a list layout component. Contracts live on unit pages; this recipe only sequences them.

Outcome

  • At least two real content objects with front matter + body
  • A page (or collection layout) that declares an unfiltered source for that type
  • A list component bound to $source.<name> with an empty state
  • List + one detail route checked in every declared locale
  1. Start from a working first site: Recipe: first site.
  2. Object shape and locales: Content objects, metadata, and locales.
  3. Declare path / optional sort / limit / filter and bind $source.<name>: Bind content to a page · Source-binding reference.
  4. Bind the source into the layout (task order only): Recipe: bind source to layout.
  5. Full vertical-slice narrative and evidence boundary: Content site.

Canonical units for the list surface

RoleUnit page
Card list for posts / newscontent-card
Related bandrelated-content
Tags on a card or indextag-list
Optional editorial home mixsite-home · site override site content-card if the site shadows the theme

Do not restate manifest props on this page — open the unit page for the component you chose.

Markdown on list/detail bodies (optional)

If list items open Markdown detail pages, structure and cards come from MD unit pages, not from inventing HTML in the layout:

Acceptance order

  1. Unfiltered /content/<type>/ source → list shows items.
  2. Add sort, then limit, then filter — rebuild and re-check after each layer.
  3. Open one detail route; confirm locale variants if you declared more than one locale.
  4. Force an empty source and confirm the component empty state (see the unit page).

Next