Repository navigation
feat: journal - Render Markdown entries on journal routes #365
Description
Outcome
Render actual journal bodies through existing archive/detail routes.
Verified context
Book-site journal pages currently look up mock records; detail prose is explicitly placeholder text.
Scope
Connect #364 data, supported Markdown formatting and supplied companion-media references. Use #41’s approved launch manifest; do not select entries here. Launch-content checks wait for approved selection/publication clearance and runnable prerequisites. Keep filtering tests in #366 and shared regression infrastructure in #14. Fixtures do not satisfy launch content minimums; online checks confer no offline eligibility.
Acceptance criteria
-
/journaland/journal/:sluguse source-backed metadata and bodies. - Headings, paragraphs and links render without duplicate title/excerpt output.
- Unknown slugs and unavailable optional media have recovery states.
- On the recorded build/revision, compare archive/detail content with every selected journal revision: at least three complete approved entries, cleared image/SEO mappings, usable navigation and draft/private exclusion. Record results, approved accessibility checks and unresolved failures; missing prerequisites remain blocked, not passed.
Boundaries and sources
Creation defines work only; it does not start implementation. Preserve unrelated code, protected assets, editorial wording and existing records. Do not fabricate content, identity, media, manuscript chapters, dates or engagement data. Use approved repository-native authoring, validation, preview and publication decisions; do not provision an external CMS or database. Existing editorial verification remains with its current issues. All acceptance criteria remain unchecked until evidenced.
Repository evidence was inspected on develop at 4ecdb26d9655a48bf000a7c89da2f70383edce87. Recheck before implementation; no build or browser tests were run for this draft. Follow repository instructions and applicable Spec Kit requirements. Paths below refer to this repository.
Sources: repository instructions, application, editorial content.
Branch instructions
- Repository: lightspeedwp/ThisOneTimeOnAcidCom
- Proposed branch:
feat/journal-source-rendering - Base:
develop - Naming policy: local guide, validator, organisation strategy.
- Pull request template: Organisation .github/PULL_REQUEST_TEMPLATE/pr_feature.md, per inspected local routing; recheck before opening a PR.
- Constraints: Preserve unrelated changes; do not force-push, merge or deploy. Complete applicable Spec Kit requirements before implementation.
- Conflicts or missing evidence: Proposed branch, not an existing branch; collision freedom is unverified. Recheck current branch routing and open governance changes, including PR automation: repo-governance - Add governance automation and validation #346. Older instructions claim branch rules are absent; the inspected local guide and executable validator establish the current convention. This draft creates no branch or pull request.
Branch instructions — verification addendum
For branch-existence and PR-template verification only, this addendum supersedes the earlier Branch instructions. Existing outcomes, scope, acceptance criteria and other constraints remain unchanged.
- Repository:
lightspeedwp/ThisOneTimeOnAcidCom - Implementing scope: this issue’s source-backed journal archive/detail rendering and recovery states; not adapter or filtering completion.
- Branch state: proposed new branch; existing proposal
feat/journal-source-rendering, not found remotely at review. - Base:
develop. - Naming evidence: local naming guide and validator at develop revision
4ecdb26d9655a48bf000a7c89da2f70383edce87;featfits source-backed runtime rendering. Recheck before implementation. - Existing work: no journal-specific open PR found. Do not reuse the governance branch automatically.
- PR template: the shared organisation feature template is the current workflow suggestion only. Automatic branch-based selection, named-template loading and default-template inheritance remain unverified. Read the matching shared template when preparing the PR and use its sections; do not create local template files, modify shared locked templates or assume routing comments load template content.
- Parent context: coordination only; omit parent identifiers from reusable branch/PR text pending association verification. Never use the parent as a native development or closing target.
- Allowed closing targets: none currently; verify this issue’s whole outcome and association effects before proposing closing syntax.
- Dependencies: approved publication policy, journal adapter contract, media/SEO mapping, safe Markdown rendering approach and applicable Spec Kit completion.
- Constraints: coordinate shared archive-page changes with filtering work; preserve unrelated changes, editorial wording and protected images. No force-push, merge or deployment.
Expected file changes
Provisional plan; existing paths checked at develop revision 4ecdb26d9655a48bf000a7c89da2f70383edce87.
| Operation | Path | Intended change | Evidence | Dependency |
|---|---|---|---|---|
| Edit | src/app/components/pages/book-site/JournalPage.tsx |
Consume eligible source-backed entries instead of mock records | Existing path at checked revision | Adapter/publication contract; coordinate filtering overlap |
| Edit | src/app/components/pages/book-site/JournalSinglePage.tsx |
Render source body, remove placeholder/legacy branding and handle missing slugs/media without duplicate titles/excerpts | Existing path at checked revision | Approved content, SEO and media mapping |
| Edit, conditional | src/app/utils/simpleMarkdown.ts |
Adjust formatting/escaping only if selected after suitability review | Existing path at checked revision | Do not assume current HTML conversion is safe unchanged |
| Create, proposed | e2e/journal-rendering.spec.ts |
Source-content, formatting, recovery and approved SEO/media checks | New filename proposed within confirmed Playwright directory | Approved fixtures and runnable environment |
| Edit, conditional | e2e/routing.spec.ts |
Update journal expectations only where source eligibility requires | Existing path at checked revision | Preserve unrelated routing checks |
UI/recovery copy must use src/app/data/mock/; the exact module remains unresolved. Existing src/app/routes.ts already declares both journal routes, so no route change is currently expected.
Out of scope: editorial rewrites, filtering functionality, protected component edits, managed workflows and asset replacement. Changelog permission is separate. This plan authorises no edits.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Activity
linear-code commentedon Oct 18, 2026
TOA-313