The post page links previous_in_category and next_in_category (the Journal's opt-in scored related mode) as server-rendered links with the title in the anchor text when the Journal answers one, else the site-wide previous_post and next_post (postNeighbours). Types, a fixture post and expectation lines for both cases.
536 lines
14 KiB
JSON
536 lines
14 KiB
JSON
[
|
|
{
|
|
"id": 1,
|
|
"title": "Hello Acme",
|
|
"slug": "hello-acme",
|
|
"excerpt": "Acme says hello and introduces its blog.",
|
|
"content": "## Welcome to Acme\n\nAcme builds anvils, rockets and very fast roller skates.\n",
|
|
"content_html": "<h2>Welcome to Acme</h2>\n<p>Acme builds anvils, rockets and very fast roller skates.</p>\n<figure data-embed=\"youtube\" data-id=\"dQw4w9WgXcQ\"></figure>\n<p>Read <a href=\"https://partner.test/review\" rel=\"ugc\">the review</a>, <a href=\"https://shop.ads.test/deal\">a deal</a> and <a href=\"/blog/acme-note-04\">an older note</a>.</p>\n<p><img src=\"/storage/app/uploads/public/acme/anvil.png\" alt=\"\" width=\"640\" height=\"480\"></p>\n",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-14T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [
|
|
{
|
|
"id": 1,
|
|
"name": "Release",
|
|
"slug": "release"
|
|
}
|
|
],
|
|
"featured_images": [
|
|
{
|
|
"id": 1,
|
|
"url": "/storage/app/uploads/public/acme/hello.png",
|
|
"file_name": "hello.png",
|
|
"file_size": 1024
|
|
}
|
|
],
|
|
"featured_image_url": "/storage/app/uploads/public/acme/hello.png",
|
|
"translations": {},
|
|
"created_at": "2026-01-14T09:00:00+00:00",
|
|
"updated_at": "2026-02-01T10:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"title": "Unsafe Sample",
|
|
"slug": "unsafe-sample",
|
|
"excerpt": "Unsafe Sample: a short summary.",
|
|
"content": "Before",
|
|
"content_html": "<p>Before</p><script>alert(1)</script><p>After</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-13T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-13T09:00:00+00:00",
|
|
"updated_at": "2026-01-13T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 3,
|
|
"title": "Acme Note 03",
|
|
"slug": "acme-note-03",
|
|
"excerpt": "Acme Note 03: a short summary.",
|
|
"content": "Acme Note 03 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 03 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-12T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-12T09:00:00+00:00",
|
|
"updated_at": "2026-01-12T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 4,
|
|
"title": "Acme Note 04",
|
|
"slug": "acme-note-04",
|
|
"excerpt": "Acme Note 04: a short summary.",
|
|
"content": "Acme Note 04 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 04 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-11T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-11T09:00:00+00:00",
|
|
"updated_at": "2026-01-11T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 5,
|
|
"title": "Acme Note 05",
|
|
"slug": "acme-note-05",
|
|
"excerpt": "Acme Note 05: a short summary.",
|
|
"content": "Acme Note 05 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 05 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-10T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-10T09:00:00+00:00",
|
|
"updated_at": "2026-01-10T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 6,
|
|
"title": "Acme Note 06",
|
|
"slug": "acme-note-06",
|
|
"excerpt": "Acme Note 06: a short summary.",
|
|
"content": "Acme Note 06 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 06 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-09T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-09T09:00:00+00:00",
|
|
"updated_at": "2026-01-09T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 7,
|
|
"title": "Acme Note 07",
|
|
"slug": "acme-note-07",
|
|
"excerpt": "Acme Note 07: a short summary.",
|
|
"content": "Acme Note 07 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 07 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-08T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-08T09:00:00+00:00",
|
|
"updated_at": "2026-01-08T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 8,
|
|
"title": "Acme Note 08",
|
|
"slug": "acme-note-08",
|
|
"excerpt": "Acme Note 08: a short summary.",
|
|
"content": "Acme Note 08 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 08 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-07T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-07T09:00:00+00:00",
|
|
"updated_at": "2026-01-07T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 9,
|
|
"title": "Acme Note 09",
|
|
"slug": "acme-note-09",
|
|
"excerpt": "Acme Note 09: a short summary.",
|
|
"content": "Acme Note 09 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 09 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-06T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-06T09:00:00+00:00",
|
|
"updated_at": "2026-01-06T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 10,
|
|
"title": "Acme Note 10",
|
|
"slug": "acme-note-10",
|
|
"excerpt": "Acme Note 10: a short summary.",
|
|
"content": "Acme Note 10 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 10 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-05T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-05T09:00:00+00:00",
|
|
"updated_at": "2026-01-05T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 11,
|
|
"title": "Acme Note 11",
|
|
"slug": "acme-note-11",
|
|
"excerpt": "Acme Note 11: a short summary.",
|
|
"content": "Acme Note 11 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 11 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-04T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-04T09:00:00+00:00",
|
|
"updated_at": "2026-01-04T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 12,
|
|
"title": "Acme Note 12",
|
|
"slug": "acme-note-12",
|
|
"excerpt": "Acme Note 12: a short summary.",
|
|
"content": "Acme Note 12 is a sample post for the Acme blog.",
|
|
"content_html": "<p>Acme Note 12 is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-03T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-03T09:00:00+00:00",
|
|
"updated_at": "2026-01-03T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 13,
|
|
"title": "Uncategorised Note",
|
|
"slug": "uncategorised-note",
|
|
"excerpt": "Uncategorised Note: a short summary.",
|
|
"content": "Uncategorised Note is a sample post for the Acme blog.",
|
|
"content_html": "<p>Uncategorised Note is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2026-01-02T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": null,
|
|
"categories": [],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-02T09:00:00+00:00",
|
|
"updated_at": "2026-01-02T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 14,
|
|
"title": "Draft Note",
|
|
"slug": "draft-note",
|
|
"excerpt": "Draft Note: a short summary.",
|
|
"content": "Draft Note is a sample post for the Acme blog.",
|
|
"content_html": "<p>Draft Note is a sample post for the Acme blog.</p>",
|
|
"reading_time": 1,
|
|
"published": false,
|
|
"published_at": "2026-01-20T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": {
|
|
"id": 1,
|
|
"first_name": "Jane",
|
|
"last_name": "Doe",
|
|
"login": "jdoe",
|
|
"slug": "jane-doe"
|
|
},
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": "News",
|
|
"slug": "news"
|
|
}
|
|
],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2026-01-20T09:00:00+00:00",
|
|
"updated_at": "2026-01-20T09:00:00+00:00"
|
|
},
|
|
{
|
|
"id": 15,
|
|
"title": "Heading On Sample",
|
|
"slug": "heading-on",
|
|
"excerpt": "Heading On Sample shows the Journal H1 setting on.",
|
|
"content": null,
|
|
"content_html": "<h1>Body heading one</h1>\n<p>The body opens with its own top heading.</p>\n<h2>Body heading two</h2>\n<p>And continues below it.</p>\n",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2025-12-20T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": null,
|
|
"categories": [],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2025-12-20T09:00:00+00:00",
|
|
"updated_at": "2025-12-20T09:00:00+00:00",
|
|
"content_h1_to_h2": true,
|
|
"previous_in_category": {
|
|
"id": 4,
|
|
"title": "Acme Note 04",
|
|
"slug": "acme-note-04"
|
|
},
|
|
"next_in_category": {
|
|
"id": 6,
|
|
"title": "Acme Note 06",
|
|
"slug": "acme-note-06"
|
|
}
|
|
},
|
|
{
|
|
"id": 16,
|
|
"title": "Heading Off Sample",
|
|
"slug": "heading-off",
|
|
"excerpt": "Heading Off Sample shows the Journal H1 setting off.",
|
|
"content": null,
|
|
"content_html": "<h1>Body heading one</h1>\n<p>The body opens with its own top heading.</p>\n<h2>Body heading two</h2>\n<p>And continues below it.</p>\n<p>See <a href=\"https://partner.test/x\" rel=\"ugc\">the partner</a> and <a href=\"https://other.test/y\">another site</a>.</p>\n",
|
|
"reading_time": 1,
|
|
"published": true,
|
|
"published_at": "2025-12-19T09:00:00+00:00",
|
|
"is_pinned": false,
|
|
"metadata": null,
|
|
"sources": null,
|
|
"author": null,
|
|
"categories": [],
|
|
"tags": [],
|
|
"featured_images": [],
|
|
"featured_image_url": null,
|
|
"translations": {},
|
|
"created_at": "2025-12-19T09:00:00+00:00",
|
|
"updated_at": "2025-12-19T09:00:00+00:00",
|
|
"content_h1_to_h2": false
|
|
}
|
|
]
|