Replaced complex D3.js SVG visualization with simple HTML/CSS tree:
- Collapsible branches with ▶/▼ toggles
- Default depth limit of 3 levels for performance
- Keyboard navigation (arrows, hjkl, Enter, e/c)
- Search to find and jump to any person
- Multiple starting points (Adam, Noah, Abraham, etc.)
- Jesus ancestors view
- Gold highlighting for Christ's lineage (Kekulé numbers)
- Expand/Collapse All buttons
- Dark mode support
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Use getAttribute('class') instead of classList for SVG elements
- Fix hasExpandableChildren to check for empty children array
- Apply fixes to all click handlers (renderTree, renderTreeFromId, updateTree)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The renderTreeFromId click handler was missing the expand
indicator logic, so clicking the "+" button didn't work.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed scripture links to use chapter view with anchor
(e.g., /book/Genesis/chapter/5#verse-3) for better context.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Scripture references in the sidebar now link to the actual
verse pages instead of being disabled with onclick="return false".
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>
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>
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>
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>
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>
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>
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>
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>
Ezra 3:5-7 and 3:9 had malformed data with numeric keys
instead of proper analysis/historical/questions fields.
Added proper scholarly theological commentary.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Previously, stories.py loaded all story JSON files on every request
and timeline.py loaded biblical_timeline.json on every request.
Now both use module-level caching for better performance.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Press 0 from anywhere on the site to return to the homepage.
Also updated the keyboard help modal to show this shortcut.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
All resource pages (parables, christology, biblical-prophets, etc.)
now correctly highlight the Resources nav item in the sidebar.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
New stories added:
- Joseph Interprets Pharaoh's Dreams (patriarchs)
- Manna and Quail from Heaven (exodus)
- Water from the Rock at Horeb (exodus)
- David and Bathsheba (kings)
- Absalom's Rebellion (kings)
- Solomon Builds the Temple (kings)
- The Kingdom Divided (kings)
- Elisha Raises the Shunammite's Son (elijah/elisha)
- Daniel's Faithfulness with Food (prophets)
- An Angel Appears to Joseph (jesus birth)
- Jesus Calls His Disciples (ministry)
- The Sermon on the Mount (ministry)
- The Trial of Jesus (passion)
Each story includes adult and kids versions with full narratives.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Links now point to chapter view with verse anchor instead of individual
verse pages. Handles verse ranges (4:14-21), chapter ranges (27-28),
and single chapters properly.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add dedicated Bible Stories stats section showing categories, story count,
kids versions, word counts (85k adult / 58k kids), characters, and themes
- Fix story search autocomplete on both /stories and /stories/kids pages
(was looking for h3>a but cards are structured as a.story-card>h3)
- Increase autocomplete results from 5 to 8
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
New stories added across multiple categories:
- Exodus/Wilderness: Balaam and the Talking Donkey, Joshua Commissioned
- Conquest & Judges: Sun Stands Still, Ehud, Jephthah's Vow
- Kings: David Spares Saul, Hezekiah's Prayer, Josiah Finds the Law
- Prophets: Jeremiah in the Cistern
- Jesus Ministry: Boy Jesus at Temple, Cleanses Temple, Widow's Mite,
Nicodemus, Rich Young Ruler, Heals Demon-Possessed Boy
- Acts: Stephen the Martyr, Ananias/Sapphira, Peter Escapes Prison,
Paul at Mars Hill
Each story includes adult and kid-friendly versions with full narratives,
themes, characters, and verse references.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
- 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>
Users can access books via the Books page. Cleaner nav focuses on
features and actions rather than duplicating book navigation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Increase --text-secondary from #a3a3a3 to #c4c4c4 for better readability
- Update verse text to use text-primary with 0.85 opacity for clearer Scripture
- Change verse item border to accent-color for better visual hierarchy
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add thermometer-style green fill on "Your Reading Plans" items
- Singular/plural heading based on number of plans with progress
- Keyboard navigation includes "Your Reading Plans" items first
- j/k navigates through your plans then into the grid
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add "Your Reading Plans" section showing plans with saved progress
- Display progress bars and percentage on plan cards
- Show "Up next: Day X" for in-progress plans
- Include full Scripture text in all PDFs (including 365-day plans)
- Show Scripture references in collapsed day headers
- Arrow points right when collapsed, down when expanded
- Use green (#4a7c59) for completed days instead of dark color
- Enhanced keyboard navigation for chapter sections when expanded
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add API endpoint /api/reading-plans/{plan_id}/day/{day_num} for fetching
Scripture text on demand
- Update template to load text via API when days are expanded (not upfront)
- Implement cascading progress: checking a day marks all previous days
as complete, unchecking removes all subsequent days
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Features:
- Full Scripture text now available for ALL plans (including 365-day)
- Collapsible day sections - click to expand/collapse
- "Mark as Read" checkboxes with localStorage persistence
- Progress bar showing completion percentage
- Day navigation with completed days highlighted
- Expand All / Collapse All / Reset Progress buttons
- Keyboard shortcuts: j/k navigate, Enter/Space expand, x mark complete
- PDF verses now display one per line
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
New reading plans:
- Books of Moses in 40 Days (pentateuch_40)
- Major Prophets in 60 Days (prophets_60)
- Minor Prophets in 14 Days (minor_prophets_14)
- Wisdom Literature in 30 Days (wisdom_30)
- Historical Books in 45 Days (historical_45)
- General Epistles in 14 Days (general_epistles_14)
Features:
- Reading plan pages now show full Scripture text for plans 90 days or less
- Day navigation bar for quick jumping between days
- PDF exports include full Bible text for shorter plans
- Refactored Jinja filters into separate jinja_filters.py module
- Added parse_reading_reference() and get_reading_text() helpers
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Original Language Analysis: collapsible, expanded by default, remembers preference
- Cross References: collapsible, expanded by default, remembers preference
- Both sections use toggle buttons with arrow icons and keyboard focus support
- Preferences stored in localStorage (interlinear-expanded, crossrefs-expanded)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>