When using ?person= URL parameter, automatically finds the closest
"save point" ancestor (David > Jacob > Abraham > Noah > Adam) and
starts the tree from there for a better viewing experience.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix verse tooltip getting stuck after browser back (Safari bfcache)
- Remove kekule number badges from ancestors/descendants pages
- Keep gold border lines for Christ's lineage highlighting
- Fix Interactive Tree button text color in light mode
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Now checks actual DOM state instead of collapsedNodes set,
which fixes behavior with depth-based auto-collapse.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Cleaner multi-line layout: name, generation, details on separate lines
- Simple +/− expand toggles instead of arrows
- Wider container (80%) for better readability
- Gold kekule styling consistent with other pages
- Details line with lifespan, children count, spouse, verse reference
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added kekule-badge and gold border styling
- Pass kekule_number in tree data from routes
- Show gold left border for ancestors of Christ
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Show lifespan (e.g., "930 yrs") when available
- Show number of children
- Add scripture reference link for each person
- Make spouse names clickable links when they exist in data
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
When expanding a path to a person, add all ancestor nodes to
expandedNodes set so they override the depth limit.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fourth batch of commentary expansion via 10 parallel agents:
- Hosea: 68 new (now 100 total)
- Daniel: 80 new (now 136 total)
- Esther: 100 new (now 138 total)
- 1 Peter: 100% complete (105 verses)
- Joel, Amos, Obadiah, Jonah: 47 new
- Nahum, Habakkuk: 34 new
- Various minor prophets expanded
Total commentary now covers 18,701 verses across all 66 books.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Allows linking directly to a person, e.g., ?person=i77
Will expand the path and highlight the person.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>