You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: update puzzle-page.md for the now-active puzzleDate
Documents puzzleDate's new roles: rendered as a human-readable date
next to the title, and passed through as PuzzleContext.puzzleDate to
the iframe. Removes the stale "accepted but not yet used" limitation
bullet, notes that frontend now always resolves and sends a date
(owns the date-in-URL/redirect-to-archive logic entirely), and adds
an open question that DCR does not validate puzzleDate is a real,
sensible calendar date beyond basic shape checking.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|`config`|`ConfigType`| Same shape frontend sends for `/Article`, `/PuzzlesPage`, etc. Only checked for a `serverSideABTests: Record<string, string>` shape, content otherwise unused (no AB gate today). |
191
-
|`nav`|`FENavType`| Same shape as other routes. |
192
-
|`pageFooter`|`FooterType`| Same shape as other routes. |
193
-
|`canonicalUrl`|`string`| Canonical link tag. |
194
-
|`editionId`|`EditionId` (`'UK' \| 'US' \| 'AU' \| 'INT' \| 'EUR'`) | Validated against the known edition set. |
195
-
|`instance.title`|`string` (required) | Rendered as the page `<h1>` and the iframe `title` attribute. |
196
-
|`instance.puzzleDate`|`string?` (e.g. `"2026-09-11"`) | Which day's puzzle the reader wants to see. Accepted and validated as an optional string only. **Not yet wired into any rendering or the iframe URL**(see "Open questions"). Prep work for a future V1 calendar-navigation feature; unrelated to the removed crossword-only `date`display-string field. |
197
-
|`instance.moreFromPuzzlesAndGames`|`PuzzleItem[]?` (from `src/types/puzzlesPage.ts`) | Rendered as a plain "More from Puzzles & games" list when present and non-empty. |
|`config`|`ConfigType`| Same shape frontend sends for `/Article`, `/PuzzlesPage`, etc. Only checked for a `serverSideABTests: Record<string, string>` shape, content otherwise unused (no AB gate today). |
191
+
|`nav`|`FENavType`| Same shape as other routes. |
192
+
|`pageFooter`|`FooterType`| Same shape as other routes. |
193
+
|`canonicalUrl`|`string`| Canonical link tag. |
194
+
|`editionId`|`EditionId` (`'UK' \| 'US' \| 'AU' \| 'INT' \| 'EUR'`) | Validated against the known edition set. |
195
+
|`instance.title`|`string` (required) | Rendered as the page `<h1>` and the iframe `title` attribute. |
196
+
|`instance.puzzleDate`|`string?` (e.g. `"2026-09-11"`) | Which day's puzzle the reader wants to see. Rendered as a human-readable date (e.g. "11 September 2026") next to the page title, and passed through unformatted as `PuzzleContext.puzzleDate` to the puzzle iframe (see below). `frontend` now always resolves and sends this for every request (its Puzzle Page URLs carry a date segment), though DCR still treats the field as optional and simply omits the display/context value when absent. |
197
+
|`instance.moreFromPuzzlesAndGames`|`PuzzleItem[]?` (from `src/types/puzzlesPage.ts`) | Rendered as a plain "More from Puzzles & games" list when present and non-empty. |
198
198
199
199
### User/context info passed to the puzzle iframe
200
200
@@ -203,18 +203,20 @@ about the current reader to the puzzle provider two ways:
203
203
204
204
- As a single JSON-encoded `guardian-puzzle-context` query parameter on the
0 commit comments