← All playbooks · Raw API
resources-hub-pages
# 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/events/` | `articleType` `resources/events` | Events hub — Image Hero, upcoming meeting rows, shared inquiry form |
| `/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. |
| `/resources/events/{tag}/` | Tag + article type | Events filtered by conference venue |
| `/categories/` | `customType` `categories` | Master taxonomy directory |
| `/categories/{tag}/` | Tag entry | Category landing (often publication-source or academic tags) |
Article **detail** URLs: `/{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 **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
### Events hub (`/resources/events/`)
- **Image Hero** on article type `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 (`/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` / `events-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.