# Resources hub & listing pages — Pedestal Health

Playbook for **resource indexes and tag listing pages** — not individual news/publication articles.

## URL patterns

| Public path | Driven by | Role |
|-------------|-----------|------|
| `/resources/news/` | `articleType` `resources/news` | News hub — filtered grids + hero |
| `/resources/publications/` | `articleType` `resources/publications` | Publications hub — list + filters |
| `/resources/news/{tag}/` | Tag + article type | News filtered by topic/partner/conference |
| `/resources/publications/{tag}/` | Tag + article type | Publications filtered by presentation type, TA, etc. |
| `/categories/` | `customType` `categories` | Master taxonomy directory |
| `/categories/{tag}/` | Tag entry | Category landing (often publication-source or academic tags) |

Article **detail** URLs: `/resources/{articleType}/{primaryTopic}/{slug}/` — use `news-pages` or `publications-pages`.

## How listing pages work

Listing URLs are **generated from taxonomy** — do not create standalone **page** entries for `/resources/news/hepatology/` or similar.

Edit content via:

| Target | What to edit |
|--------|--------------|
| **Article type** entry | `indexPageTopContent` — hero blocks above listings |
| **Tag** entry | `title`, `description`, `indexPageTopContent` (when tag has custom hero) |
| **customType** `categories` | Category Directory + Publications List + News Grid on `/categories/` |
| **Articles** | Tags on entries control which listings they appear in |

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

## Index page components

### News hub (`/resources/news/`)

- **News hero articles** collection on article type `indexPageTopContent` (not Tag Listing Hero)
- Listing body auto-renders from tagged news articles
- Heading resolves from collection override, else article type name — see `ARTICLE_PATTERNS.md`

### Publications hub (`/resources/publications/`)

- **Tag listing hero** on article type `indexPageTopContent` (auto-resolves title from tag or article type)
- **Publications list** collection for filterable grid
- Filter labels come from tag taxonomy — edit tags, not duplicate list markup

### Categories hub (`/categories/`)

| Region | Type | Role |
|--------|------|------|
| `indexPageTopContent` | **Category directory** | Browse taxonomy tree |
| `topContent` | **Publications list** + **News grid** | Cross-type discovery |

### Tag listing pages

When a tag URL renders (under `/resources/.../` or `/categories/.../`):

- **Tag listing hero** heading/body: override on component, else tag `title` / `description`
- Article grids/lists hydrate from articles linked to that tag

## Reference paths

| Path | Edit when |
|------|-----------|
| `/resources/news/` | News hub intro or hero collection |
| `/resources/publications/` | Publications hub hero or list filters |
| `/resources/publications/poster-presentation/` | Example presentation-type listing |
| `/resources/news/press-release/` | Example news asset-type listing |
| `/categories/` | Taxonomy directory layout |

Fetch markdown: `https://www.pedestalhealth.com/resources/publications.md`

## Workflow

1. Read `cms-edit://customer/articles` for URL and primary-tag rules
2. Identify whether the goal is **hub** (article type / customType) or **tag** (single tag entry)
3. Open the **articleType**, **tag**, or **customType** entry — not a page slug
4. Edit `indexPageTopContent` / `topContent` components only; confirm headings via preview
5. To change which articles appear: retag articles or create new articles — see `news-pages` / `publications-pages`
6. `preview urls` on the listing URL → `task-publish-handoff`

## Out of scope

- Creating **page** entries for listing URLs
- Hand-adding articles to **Publications grid** / **News carousel** on marketing pages (those auto-hydrate)
- Bulk tag migration — coordinate with engineering / `task-taxonomy` for large taxonomy changes

## Publish handoff

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