Commit Graph

110 Commits

Author SHA1 Message Date
kennethreitz 3336863a4d Improve keyboard navigation consistency across site
- Add KJVNav.initGridNav for standardized 2D grid navigation
- Migrate books.html, topics.html, resources.html to use initGridNav
- Add sidebarActive check to all templates with custom keyboard handlers
- Add [ and ] shortcuts for prev/next chapter on chapter pages
- Add [ and ] shortcuts for prev/next book on book pages
- Update accessibility page with comprehensive keyboard shortcut docs
- Add honest note about keyboard navigation complexity
- Fix sidebar nav conflicting with main content selection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 01:26:09 -05:00
kennethreitz f0a4b34bfa Redesign homepage and add section IDs across site
Homepage improvements:
- Cleaner title section with divider and prominent daily verse
- Simplified search bar design
- Button-style quick links with primary action
- 2-column resource grid with breathing room
- Original Language Study section with Hebrew (Gen 1:1) and Greek (John 1:1) samples
- Theological Commentary section highlighting 20,000+ verses with commentary
- Interactive Resources section (Genealogies, Timeline, Maps, Stories)
- Full theological studies grid
- Streamlined footer

Section IDs for anchor links:
- verse.html: #interlinear, #cross-references, #commentary, #analysis, #historical, #theological, #questions
- books.html: #old-testament, #new-testament
- chapter.html: #related-resources
- resources.html: dynamic category IDs
- topics.html: #major-topics
- study_guides.html: dynamic category IDs
- reading_plans.html: #your-reading-plans, #available-reading-plans
- stories_index.html: #categories
- biblical_timeline.html: #timeline-introduction, #conclusion
- resource_detail.html: #description, #key-verses

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 23:50:15 -05:00
kennethreitz 9a1657558c Make sidenotes unselectable site-wide via style.css
Added sidenote selection styles to style.css instead of
tufte.css to keep third-party CSS unmodified.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:32:59 -05:00
kennethreitz cfe5327785 Revert "Make sidenotes unselectable site-wide"
This reverts commit 31541c9b4b.
2025-12-02 20:32:30 -05:00
kennethreitz 31541c9b4b Make sidenotes unselectable site-wide
Moved sidenote user-select styles to tufte.css so they apply
across all pages, not just chapter pages.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:32:20 -05:00
kennethreitz 2e3e7703bb Add newline between verses when copying multiple verses
When selecting multiple verses, each verse is now separated
by a newline in the clipboard. Single verse or partial
selections still get normalized whitespace.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:21:28 -05:00
kennethreitz 1371fa615d Fix sidenote selection highlight showing through
Added vendor prefixes for user-select and transparent
selection background to prevent sidenotes from showing
blue highlight when selecting verse text.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:20:41 -05:00
kennethreitz aa0b940641 Normalize whitespace when copying verse text
Collapses multiple spaces/newlines into single spaces for
cleaner clipboard content.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:19:52 -05:00
kennethreitz b0232d5473 Make sidenotes unselectable
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:17:45 -05:00
kennethreitz 74e2ef2870 Allow copying sidenote text when explicitly selected
If the selection is entirely within a sidenote or marginnote,
allow normal copy behavior. Only strip sidenotes from copied
text when selecting verse content that includes sidenotes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:17:02 -05:00
kennethreitz 95995161c7 Fix copy to exclude sidenotes and verse numbers
Added copy event handler that cleans selected text before
copying to clipboard, removing sidenotes, marginnotes, and
verse number links. Also added user-select: none to verse
number links for visual consistency.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:12:32 -05:00
kennethreitz 3d3e0a7be0 Exclude sidenotes from text selection
Sidenotes, marginnotes, and sidenote number labels are now
excluded from text selection, so selecting verse text only
captures the actual verse content.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:11:43 -05:00
kennethreitz 441f77ac0c Make verse text selectable on chapter pages
Changed click behavior so text can be selected:
- Single click now allows normal text selection
- Double-click navigates to verse page
- Verse number link still works for single-click navigation
- Updated nav help tip to explain new behavior

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 20:11:06 -05:00
kennethreitz d24903a8dc Add specific resource pages to related content and fix reading plan API
- Expand related resources with specific chapter mappings (Beatitudes, Armor of God,
  I Am Statements, Trinity, Eschatology, Soteriology, etc.)
- Click on verse text navigates to verse page (mouse users), green selection is
  keyboard-only
- Fix reading plan API import error (get_reading_text from reading_plans route)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 18:24:46 -05:00
kennethreitz 8ca561d591 Add Related Resources section to chapter pages with stories and topics
- Add related_content to chapter page route with topics, people, resources, and stories
- Add Bible stories matching based on verse references in story data
- Improve topic matching to use actual verse references instead of hardcoded book list
- Display Related Resources section at bottom of chapter and verse pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 18:08:47 -05:00
kennethreitz 338b1e7a43 Make links inside red letter text inherit red color
Links inside words-of-christ spans now stay red with underline to indicate clickability, in both light and dark modes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 13:09:43 -05:00
kennethreitz c22000287c Simplify chapter nav tip and change 'p' shortcut to PDF
- Shortened nav help to "Tip: ↑/↓ to select verses • ? for more shortcuts"
- Changed 'p' keyboard shortcut from Reading Plans to PDF download

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 13:04:27 -05:00
kennethreitz 6a9cebae22 Improve keyboard navigation, PDFs, and add non-writing prophets
- Add KJVNav.initSimpleNav() for DRY keyboard navigation across site
- Fix broken keyboard nav on 10+ resource pages (orphaned JS code)
- Left arrow on chapters now does browser back
- Add non-writing prophets: Moses, Samuel, Nathan, Elijah, Elisha
- Redesign chapter PDFs with glossary, cross-refs, book intro
- Style sidenotes as inline notes in all PDFs (fix checkbox squares)
- More liberal word studies in PDF output (for_pdf parameter)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 00:28:25 -05:00
kennethreitz 7606fa8c3a Remove smooth scrolling animation from all keyboard navigation
Changed scrollIntoView behavior from 'smooth' to 'auto' across all
templates for instant, non-animated navigation between selections.

Affected ~75 instances across 50+ template files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 00:02:24 -05:00
kennethreitz 2d7e9843b0 updates to data storage 2025-11-30 21:26:59 -05:00
kennethreitz 3681359291 Enhance resource reader functionality and improve selection handling across templates 2025-11-30 12:59:41 -05:00
kennethreitz 93c5c70cb9 Update spacebar reading behavior for chapters 2025-11-30 11:36:19 -05:00
kennethreitz d0a74673cd Add '=' shortcut to read chapters with auto-advance 2025-11-30 11:34:45 -05:00
kennethreitz 1f892978f8 Enhance theming support by updating color variables and ensuring consistent styling across sidenotes and marginnotes 2025-11-30 10:38:29 -05:00
kennethreitz bcb9617d84 Fix stuttering in chapter view keyboard navigation
Changed scrollIntoView behavior from 'smooth' to 'auto' to prevent overlapping scroll animations when holding down arrow keys. This eliminates stuttering and makes rapid navigation smooth.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 09:08:59 -05:00
kennethreitz 84fb89f806 Revert chapter.html to working state before navigation changes
Restored chapter.html to the version from commit fb4e970 which had the perfect working keyboard navigation. The recent changes to chapter view were not needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 09:07:33 -05:00
kennethreitz 2a94971a38 Refactor book view to use drilldown navigation with green box styling
**Book View Changes:**
- Chapter section is now a single item with green box outline
- Press ↓ to select chapter section
- Press Enter to drill down into individual chapters
- Press Esc to exit drilldown mode
- All paragraphs now use green box outline styling (consistent UX)

**Chapter View Changes:**
- Removed 'c' keyboard shortcut (reserved keyword)
- Updated help text

**Navigation Flow:**
1. Start: Press ↓ → selects chapter section (green box)
2. Press Enter → drills into first chapter number
3. Navigate ↑/↓ through chapter numbers
4. Press Enter on a chapter → navigate to that chapter
5. Press Esc → exit back to chapter section
6. Press ↓ from chapter section → move to paragraphs below

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 09:03:33 -05:00
kennethreitz 18c4359e10 Add two-zone keyboard navigation to book and chapter views
Book view now supports navigating both chapter links and introduction paragraphs. Chapter view supports navigating action buttons, verses, and chapter selector controls.

**Book View:**
- Navigate through chapter numbers with ↑/↓
- Continue down to navigate through introduction paragraphs
- Press Enter on chapters to read them
- Visual feedback with green highlights for both zones

**Chapter View:**
- Three-zone navigation: actions, verses, chapter selector
- Press 'c' to jump to chapter selector
- Press Enter in chapter selector to focus dropdown
- Escape to clear selections

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 09:00:07 -05:00
kennethreitz 7f25e58c81 Add left/right arrow navigation for action buttons
- Left/right arrows navigate between Interlinear and PDF buttons
- When in action zone, arrows move horizontally between buttons
- When in verse zone, left/right still navigate chapters as before

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:54:29 -05:00
kennethreitz 71462d3097 Add keyboard-selectable action buttons on chapter pages
- Interlinear and PDF buttons now selectable with up/down navigation
- Up from first verse moves to action buttons, down from actions to verses
- Initial selection starts with verses (not actions) as requested
- Fixed read-aloud to exclude sidenotes from verse text
- Added selected state styling for action buttons

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:53:38 -05:00
kennethreitz df2272188f Add universal text-to-speech for keyboard-selected content
- Added KJVSpeech global helper using Web Speech API
- Space key reads aloud any element with green box selection
- Works on all pages with keyboard navigation (resources, parables, etc.)
- Chapter page has specialized handler for verse text
- Prefers English voices, cleans up text (removes verse numbers)
- Added Space key to keyboard shortcuts help modal

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:50:20 -05:00
kennethreitz 0d9cf71a87 Add viewport-aware keyboard navigation site-wide
Added global KJVNav helpers to base.html and updated 32 templates
to start keyboard selection from the viewport when the current
selection is off-screen. This provides a more intuitive navigation
experience - pressing up/down after scrolling starts from what's
visible rather than jumping to an off-screen location.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:39:20 -05:00
kennethreitz 40b86ffaf7 Comprehensive keyboard navigation improvements
- Remove study guides from homepage keyboard nav (too inline/sloppy)
- Add paragraph-level nav to resource_index.html (soteriology, etc.)
- Stories index: add category navigation, Enter jumps to first story in category
- Story kids: add adult callout and PDF button to nav
- Detail pages (topic, resource, reading_plan, parable): include paragraphs,
  verse items, and PDF buttons in keyboard nav
- Chapter page: add 'i' for interlinear, 'p' for PDF shortcuts
- Book page: add 'p' for PDF shortcut
- Chapter interlinear: add 'p' for PDF shortcut

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:24:33 -05:00
kennethreitz d8e7c999bd Use browser back when navigating from verse-highlighted chapter
Left arrow now uses history.back() when the URL has a verse hash
(indicating the user came from a story or verse link), otherwise
navigates to previous chapter as before.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 00:01:30 -05:00
kennethreitz f852ad602f Improve keyboard navigation consistency
Verse page:
- Now paragraph-based instead of section-based
- Up/down moves through paragraphs, cross-refs, interlinear
- Enter on interlinear enters word mode (like interlinear page)
- Left/right for word navigation in word mode
- Enter toggles word expansion
- Escape exits modes

Chapter page:
- Added h/l vim keys for prev/next chapter
- Added Escape to clear verse selection
- Left now falls back to book page if no prev chapter

Added Escape to clear selection on:
- topic_detail.html
- parable_detail.html
- study_guide_detail.html (also added Enter to follow links)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 23:25:34 -05:00
kennethreitz 1e901d7118 Initialize verse keyboard nav from URL hash
When navigating to a chapter with a verse hash (e.g., #verse-24),
keyboard navigation now starts from that verse instead of -1.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 18:29:42 -05:00
kennethreitz dd0a9d0f9b Add keyboard navigation for verses on chapter and verse pages
Chapter view:
- ↑/↓ or j/k to select verses with visual highlight
- Enter to navigate to selected verse detail page
- Click on verse to select it
- Updated nav help text with new shortcuts

Verse detail page:
- ← to go back to chapter view (scrolls to current verse)
- ↑/↓ or j/k to navigate between verses
- Maintains existing ←/→ for chapter navigation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 18:28:56 -05:00
kennethreitz b025280cf1 Add interlinear link to chapter view
- New Interlinear button next to PDF button
- Links to /book/{book}/chapter/{chapter}/interlinear
- Language/translation icon for the button

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 16:12:17 -05:00
kennethreitz d782378947 Remove chapter overview section from chapter pages
- Removed chapter overview HTML block and conditional rendering
- Removed .chapter-overview-divider CSS styling
- Removed JavaScript code that linked verse references in overview
- Streamlines chapter pages to focus on verse content

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 20:39:45 -05:00
kennethreitz 3ac3498d33 Remove space before period in cross-reference groups
Tightened template formatting to ensure no space appears
between the last reference and the period.

Now: Genesis 2:5.
Not: Genesis 2:5 .

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 16:22:53 -05:00
kennethreitz 86d111942d Add period at end of each cross-reference group line
Each grouped cross-reference line now ends with a period for
proper punctuation.

Example:
References God: Hebrews 6:7; Genesis 1:29; Matthew 6:30.
Creation: Genesis 1:1; Hebrews 11:3; Isaiah 45:18.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 16:22:02 -05:00
kennethreitz 46fb97dd97 Group cross-references by description
Cross-references are now organized by their thematic description
instead of being listed individually. This creates a cleaner display:

Before:
Colossians 3:10 — Parallel theme; Ephesians 4:24 — References God;
Genesis 3:22 — References God; Psalms 100:3 — References God...

After:
**References God:** Ephesians 4:24; Genesis 3:22; Psalms 100:3
**Parallel theme:** Colossians 3:10; 2 Corinthians 3:18

Much more readable and scannable!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 16:21:05 -05:00
kennethreitz 4b97e8e959 Use semicolons to separate cross-references
Changed from line breaks to semicolons for more compact
cross-reference display in sidenotes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 16:17:04 -05:00
kennethreitz d2bfbfd6a3 Group cross-references into single sidenote per verse
Instead of creating multiple sidenotes (one per cross-reference),
all cross-references for a verse are now grouped into a single
sidenote with line breaks between them.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 16:16:32 -05:00
kennethreitz 4ed7706577 Remove sidenote counter reset per verse
Sidenotes now continue numbering throughout the chapter
instead of resetting to 1 at each verse.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 16:09:55 -05:00
kennethreitz c4485423cf Fix red letter color inheritance by using explicit colors
Replace 'color: inherit' with explicit color values to prevent sidenotes and word definitions from inheriting red color. Using #111 for light theme and #ddd for dark theme ensures proper contrast and readability.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 15:17:40 -05:00
kennethreitz 6cc7c3f5e0 Add .sidenote-number to red letter color exclusions
Ensure all sidenote number elements are excluded from inheriting red letter color by adding .sidenote-number selector in addition to label.sidenote-number.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 15:16:16 -05:00
kennethreitz f0b3dc5d27 Fix sidenote markers appearing over verse numbers
Prevent sidenotes from inheriting red color from red letter text by adding CSS rules that reset color inheritance for .sidenote, .marginnote, and .sidenote-number elements nested within .words-of-christ spans.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 15:14:00 -05:00
kennethreitz 099dc253e0 Add comprehensive Revelation commentary and red letter edition support
Expanded Revelation commentary from 45 to 335 verses (83% coverage),
providing detailed apocalyptic interpretation, Greek word studies, and
encouragement for persecuted believers. Also added red letter edition
support to highlight words of Christ throughout the Bible.

Revelation commentary additions:
- 290 new verses with comprehensive analysis
- All 22 chapters now have rich commentary coverage
- Apocalyptic imagery and symbolism explained
- First-century persecution context provided
- Multiple interpretive approaches acknowledged
- Christ-centered application for modern believers

Red letter edition features:
- Words of Christ highlighted in red in verse and chapter displays
- Complete database of Jesus' spoken words across all four Gospels
- Dark mode compatible color scheme
- Enhances readability and focus on Christ's teachings

Total verse commentary database now contains 14,827 verses across
all 66 books of the Bible with theological depth, practical application,
and reflection questions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 14:58:19 -05:00
kennethreitz e40c60e200 Fix sidenote markers appearing over verse numbers
Add CSS to properly space and reset sidenote counters for each verse.
Prevents sidenote numbers from overlapping or appearing too close to
verse numbers.

Changes:
- Add margin to sidenote labels that follow verse numbers
- Reset sidenote counter for each verse paragraph
- Ensures clean numbering within each verse

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 13:09:20 -05:00