A published piece: kicker, title, standfirst, byline, contents, body, tags.
story takes the same object PostList renders, so a post travels from the index to its own page without being reshaped. Direct props win, which is what lets one page override a single field without copying the whole story.
Every author is named. There is no "et al." and no overflow count, because authorship is credit and a truncated list decides for the reader whose name was worth the space. With roles present, people are separated by a middot rather than "and" - "A, Researcher and B, Researcher" reads as three people.
titleAs exists so this can sit under a page that already owns the h1. Two h1s on a page break the outline for anybody navigating by headings.
The paper link is not decoration: a piece that states a finding has to say where the method and the data are, or the number cannot be checked.
import { ArticleLayout } from '@redrob-labs/ui';
| Prop | Type | Notes |
|---|---|---|
story |
PubStory |
The same object the index lists take. Anything passed directly wins over it. |
title |
React.ReactNode |
|
titleAs |
string |
'h2' where the page already has an h1 above, such as a StoryHeader claim. |
kicker |
string |
|
standfirst |
React.ReactNode |
|
authors |
Array<PubAuthor | string> |
|
author |
string |
A single author, as a convenience. |
avatar |
string | React.ReactNode |
|
date |
string |
|
dateTime |
string |
|
reading |
string |
|
finding |
PubFinding |
The headline number, shown above the byline. |
paper |
PubPaper |
Where the method and data are. |
contents |
ArticleTocEntry[] |
|
contentsLabel |
string |
|
tags |
ArticleTag[] |
|
className |
string |
|
children |
React.ReactNode |