Something Else

cms-edit · Headwater Science

← All playbooks · Raw API

resources-hub-pages

# Resources hub & listing pages — Headwater Science

Playbook for **resource indexes and tag listing pages** — not article detail pages.

## URL patterns

| Public path | Driven by |
|-------------|-----------|
| `/resources/news/` | `articleType` `resources/news` |
| `/resources/publications/` | `articleType` `resources/publications` |
| `/resources/events/` | `articleType` `resources/events` |
| `/resources/news/{tag}/` | Tag + article type |
| `/resources/publications/{tag}/` | Tag + article type |
| `/resources/events/{tag}/` | Tag + article type |
| `/categories/` | `customType` `categories` |
| `/categories/{tag}/` | Tag entry |

Article details: `/{articleTypeSlug}/{primaryTopic}/{slug}/` (e.g. `/resources/news/press-release/{slug}/`) — use `news-pages`, `publications-pages`, or `events-pages`. Markdown: append `.md` to the public path. Do not `open --page-slug` a listing URL.

## How listing pages work

Listing URLs are **taxonomy-generated** — do not create standalone **page** entries for `/resources/news/press-release/` etc.

| Target | What to edit |
|--------|--------------|
| **Article type** | `indexPageTopContent` — news hero collection or tag listing hero |
| **Tag** | `title`, `description`, optional hero overrides |
| **customType** `categories` | Category directory + listing collections on `/categories/` |
| **Articles** | Tags control listing membership |

```bash
cms-edit list --type articleType
cms-edit list --type tag
cms-edit index sync
```

## Index components

### News hub

- **News hero articles** on `resources/news` `indexPageTopContent`
- Listing grids auto-hydrate from tagged articles

### Publications hub

- **Tag listing hero** on `resources/publications` `indexPageTopContent`
- **Publications list** collection for filterable grid

### Events hub

- **Image Hero** on `resources/events` `indexPageTopContent` (photo + overlay card)
- **Events listing** collection — upcoming conference landers only. Horizontal rows: lockup, title, Where/When/Booth from `subtitle`, `summary`, outline CTA
- **Pardot form handler** on the same `indexPageTopContent` — same shared form as the event template; hub inquiry copy on the left (`anchor: inquiry`)

### Categories hub

- **Category directory** + publications/news listing blocks on `customType` `categories`

## Workflow

1. Read `cms-edit://customer/articles`
2. Identify hub (articleType/customType) vs tag entry
3. Edit `indexPageTopContent` / hero components — retag articles to change listings
4. `preview urls` on listing path
5. `diff` → `save` → `task-publish-handoff`

## Out of scope

- Creating page entries for listing URLs
- Article body edits — use article playbooks

## Publish handoff

`save` creates drafts only — publish in Contentful UI when ready.