Add feed page like reference site #159

Merged
erik merged 2 commits from feat/task-baf7f357-feed-page into main 2026-06-19 22:19:42 -05:00
Owner

Summary

  • Add a public /feed page modeled on the erikcraddock.me feed page.
  • Render a reference-style two-column feed layout with profile/sidebar cards and a main feed panel.
  • List published articles, links, and notes in reverse chronological order with visually distinct type treatments.
  • Add pagination for longer feeds while keeping /feed.xml unchanged.
  • Update the homepage feed CTA to point to /feed.
  • Add tests for mixed post ordering, type rendering, pagination, invalid page handling, and draft filtering.

Verification

  • npm run build --workspace @slugkit/template-site
  • npm test --workspace @slugkit/template-site
  • ./scripts/pre-pr.sh
  • Browser smoke test for /feed
## Summary - Add a public `/feed` page modeled on the `erikcraddock.me` feed page. - Render a reference-style two-column feed layout with profile/sidebar cards and a main feed panel. - List published articles, links, and notes in reverse chronological order with visually distinct type treatments. - Add pagination for longer feeds while keeping `/feed.xml` unchanged. - Update the homepage feed CTA to point to `/feed`. - Add tests for mixed post ordering, type rendering, pagination, invalid page handling, and draft filtering. ## Verification - `npm run build --workspace @slugkit/template-site` - `npm test --workspace @slugkit/template-site` - `./scripts/pre-pr.sh` - Browser smoke test for `/feed`
feat: add reference-style feed page
All checks were successful
CI / build-lint-test (pull_request) Successful in 48s
55a8e69a28
Task: #task-baf7f357
Author
Owner

PR Review: Approved

Summary

The PR adds a public /feed page modeled on the erikcraddock.me feed page: two-column layout, profile/sidebar cards, main feed panel, empty state, mixed post rendering, and pagination. The existing RSS endpoint remains at /feed.xml.

Acceptance criteria

  • GET /feed renders a public web feed page — implemented and browser-smoke tested.
  • The page lists published articles, links, and notes in reverse chronological order — covered by route test with controlled timestamps.
  • Article, link, and note entries are distinguishable — rendered with data-feed-post-type and type badges; covered by tests.
  • GET /feed.xml still returns the RSS feed — existing RSS test remains passing and route is unchanged.
  • Existing implemented public routes continue to work — full pre-PR suite passes.
  • Relevant tests and local checks pass.

Blocking issues

None.

Warnings

None.

Verification

  • npm run build --workspace @slugkit/template-site
  • npm test --workspace @slugkit/template-site
  • ./scripts/pre-pr.sh
  • Browser smoke test for /feed
  • Forgejo Actions run #219 passed.

Verdict

Approved. Stop at the human merge gate.

PR Review Worker Result

  • pr: open
  • review: approved
  • pr_comment: posted
  • task_comment: posted
  • blocking_issues: 0
  • warnings: 0
  • criteria_total: 6
  • criteria_met: 6
  • criteria_missing: 0
## PR Review: Approved ### Summary The PR adds a public `/feed` page modeled on the `erikcraddock.me` feed page: two-column layout, profile/sidebar cards, main feed panel, empty state, mixed post rendering, and pagination. The existing RSS endpoint remains at `/feed.xml`. ### Acceptance criteria - [x] `GET /feed` renders a public web feed page — implemented and browser-smoke tested. - [x] The page lists published articles, links, and notes in reverse chronological order — covered by route test with controlled timestamps. - [x] Article, link, and note entries are distinguishable — rendered with `data-feed-post-type` and type badges; covered by tests. - [x] `GET /feed.xml` still returns the RSS feed — existing RSS test remains passing and route is unchanged. - [x] Existing implemented public routes continue to work — full pre-PR suite passes. - [x] Relevant tests and local checks pass. ### Blocking issues None. ### Warnings None. ### Verification - `npm run build --workspace @slugkit/template-site` - `npm test --workspace @slugkit/template-site` - `./scripts/pre-pr.sh` - Browser smoke test for `/feed` - Forgejo Actions run #219 passed. ### Verdict Approved. Stop at the human merge gate. PR Review Worker Result - pr: open - review: approved - pr_comment: posted - task_comment: posted - blocking_issues: 0 - warnings: 0 - criteria_total: 6 - criteria_met: 6 - criteria_missing: 0
fix: refine feed previews and credits
All checks were successful
CI / build-lint-test (pull_request) Successful in 45s
5ff199228b
Task: #task-baf7f357
Author
Owner

PR Review Update: Approved

Follow-up visual changes were applied after review:

  • Feed meta tags now align with the date/type/credit line using feed-specific tag badges.
  • Feed credit contacts now link to /contacts/:id.
  • Article feed cards now render a banner preview from the first Markdown image in post content.
  • Link feed cards now render a preview image from the post content image when present, otherwise the linked source imageUrl.
  • Tests now cover linked credits and article/link preview images.

Verification

  • npm run build --workspace @slugkit/template-site
  • npm test --workspace @slugkit/template-site -- src/routes/__tests__/public.test.ts
  • ./scripts/pre-pr.sh
  • Browser smoke test for /feed
  • Forgejo Actions run #220 passed.

Verdict

Approved. Stop at the human merge gate.

## PR Review Update: Approved Follow-up visual changes were applied after review: - Feed meta tags now align with the date/type/credit line using feed-specific tag badges. - Feed credit contacts now link to `/contacts/:id`. - Article feed cards now render a banner preview from the first Markdown image in post content. - Link feed cards now render a preview image from the post content image when present, otherwise the linked source `imageUrl`. - Tests now cover linked credits and article/link preview images. ### Verification - `npm run build --workspace @slugkit/template-site` - `npm test --workspace @slugkit/template-site -- src/routes/__tests__/public.test.ts` - `./scripts/pre-pr.sh` - Browser smoke test for `/feed` - Forgejo Actions run #220 passed. ### Verdict Approved. Stop at the human merge gate.
erik merged commit ac924b1c9b into main 2026-06-19 22:19:42 -05:00
erik deleted branch feat/task-baf7f357-feed-page 2026-06-19 22:19:42 -05:00
erik referenced this pull request from a commit 2026-06-19 22:19:43 -05:00
Sign in to join this conversation.
No description provided.