Skip to content

feat: journal - Render Markdown entries on journal routes #365

Open

Description

@ashleyshaw

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

  • /journal and /journal/:slug use 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; feat fits 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions