Projects BibleWeb Search Jesus-words-only filter
Done

Jesus-words-only filter

Area: Search Milestone: v1

Context

Problem: When searching for a topic, users studying Jesus' teachings specifically want to filter results to only verses where Jesus is speaking — not narrator text or other speakers.

Solution: A toggle button on the search page that filters results to only include verses tagged as Jesus' direct speech in the jesus_speech table.

Not included: Filtering by other speakers (Paul, Moses, etc.) or by speech type (direct vs. indirect).

Functional

User flow:

  1. User types a search query
  2. Clicks the "Jesus's Words" toggle button (or presses Tab key)
  3. Results filter to only verses containing Jesus' direct speech
  4. Jesus-speech results rendered in gold text color
  5. Toggle off to return to all results

Edge cases:

  • Only applies to Gospel verses (books 40-43) since that's where Jesus speaks
  • Tab key toggles the filter (keyboard shortcut)
  • Filter state is local (not persisted across sessions)

UX & Design

Toggle button: Pill-shaped "Jesus's Words" button below the search input. Active state: filled/highlighted.

Result styling: Jesus-speech results use var(--color-jesus-words) (amber/gold).

Technical

Implementation: When jesusOnly=true, the search query adds JOIN jesus_speech js ON js.verse_id = v.id to the SQL.

Files:

  • apps/web/src/routes/(app)/search/+page.sveltejesusOnly state, Tab handler
  • apps/web/src/lib/server/queries/search.ts — conditional JOIN

Status

Current: DONE Milestone: v1 Priority: Medium — enhances search for Jesus-focused study

Dependencies:

  • Requires: full-text search (DONE), jesus_speech data (DONE)

Screenshots

Feature screenshot