- Dark backgrounds for main card, section cards, family cards, verse cards
- Dark styling for navigation, vitals, biography, and bottom nav
- Proper contrast for all text elements and links
- Kekulé ancestor gradient preserved in dark mode
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add autocorrect, autocapitalize, spellcheck, and data-form-type
attributes to prevent Safari and other browsers from showing
autocomplete suggestions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Dark backgrounds for search, feature, stats, and section cards
- Dark styling for search input and dropdown
- Dark mode for generation cards and person cards
- Proper contrast for text, labels, and links
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace /concordance with /strongs, /strongs/hebrew, /strongs/greek
- Add all 14,197 Strong's entries (H1-H8674, G1-G5624) to sitemap
- Sitemap now includes full Strong's coverage for SEO
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace TestConcordanceRoutes with TestStrongsRoutes
- Add tests for Strong's index, search, entry pages
- Add tests for Hebrew and Greek language indexes
- Add tests for pagination and invalid entries
- Update integration tests to use /strongs instead of /concordance
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add get_all_strongs() function for paginated entry listing
- Create /strongs/hebrew and /strongs/greek routes with pagination
- Add strongs_language_index.html template with entry cards
- Update main Strong's page with browse cards for each language
- Hebrew: 8,674 entries across 87 pages
- Greek: 5,523 entries across 56 pages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Show all verses containing a Strong's number from interlinear data
- Display each verse as a card with reference, original word, and full text
- Highlight the translated English word in yellow
- Add dark mode support for highlighted text
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update sidebar link to point to /strongs
- Remove old /concordance route and template
- Update cache control settings
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Large centered word card with original Hebrew/Greek
- Definition, KJV translations, and derivation in separate info cards
- Color-coded left borders for each card type
- Improved navigation with prev/next buttons
- Dark mode support
- Mobile responsive
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace naive string replace with regex-based filter
- Only linkify actual Strong's references (G/H followed by digits)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Hebrew (8674 entries) and Greek (5523 entries) dictionaries from openscriptures/strongs
- Create strongs.py module for lookups and search
- Add /strongs web page for search and browsing
- Add /strongs/{number} page for individual entries
- Add /api/strongs and /api/strongs/{number} API endpoints
- Update interlinear templates to link to our Strong's pages instead of BibleHub
Data source: https://github.com/openscriptures/strongs (CC-BY-SA)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Increase font sizes for Hebrew (2.2rem) and Greek (2rem) text
- Add proper RTL direction and font families for Hebrew
- Tighten word spacing for more natural reading flow
- Remove hover tooltips, keep click-to-expand details
- Increase English verse text size in chapter interlinear view
- Add is_old_testament to verse template context
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
GET /api/verse/{book}/{chapter}/{verse}?interlinear=true
Adds optional `interlinear` query parameter. When true, includes
word-by-word Hebrew/Greek data in the response:
- interlinear.available: boolean
- interlinear.words: array of word objects
Existing /api/interlinear/{book}/{chapter}/{verse} endpoint still works
for dedicated interlinear lookups.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
New route: /book/{book}/chapter/{chapter}/interlinear
Shows all verses with word-by-word Hebrew/Greek analysis:
- Hebrew badge for OT, Greek badge for NT
- Same polished UI as verse page interlinear
- Click words for details, hover for definition preview
- Chapter navigation links
- Dark mode support
- Mobile bottom sheet for word details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Hebrew/Greek letters now white in dark mode
- Dark backgrounds for hover and expanded states
- Dark popup card styling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add hover tooltip showing brief definition preview
- Smooth lift animation on word hover
- Green border highlight on expanded word
- Improved detail panel with header section
- Show word position as "X of Y"
- Better typography and spacing
- Hide tooltip on mobile, use bottom sheet instead
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace card grid with inline flow layout
- Click-to-expand word details
- Add link to full interlinear page
- Mobile bottom sheet for word details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Clean inline flow layout for words (no cards/grid)
- Click-to-expand word details with definition popup
- Hebrew/Greek testament badges
- Separated OT/NT book lists with color coding
- Mobile: word details appear as bottom sheet
- Cleaner typography and spacing throughout
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix interactive tree deep linking via query parameter
- Redesign /family-tree main page with card-based layout
- Add feature cards, stats card, generation cards, notable figures
- Highlight Family Tree on /resources with Interactive badge
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Person profile links now include ?person=ID parameter
- Interactive tree reads query param and starts with that person
- Updates breadcrumb and dropdown to show the person name
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Main person card with blue/pink/gold gender & Kekulé coloring
- Section cards for Spouse, Parents, Siblings, Children
- Family member cards with gender colors and Kekulé badges
- Verse cards with scripture references
- Clean navigation with links to generation and interactive tree
- Consistent styling with generation view
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add DISABLE_ANALYTICS=true to docker-compose.yml for local dev
- Pass disable_analytics to Jinja2 templates as global
- Wrap Gauges analytics in conditional block
- Add blue/pink gender-based coloring to generation cards
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace verbose list with compact person cards
- Add generation stats bar (people count, Christ's line, offspring)
- Golden highlight for Kekulé ancestors
- Inline family info (spouse, parents, children)
- Show first verse reference with preview
- Streamlined navigation with prev/next and quick links
- Reduced whitespace throughout
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create timeline page showing when biblical figures lived
- Display horizontal bars for each person's lifespan
- Filter by era (Antediluvian, Patriarchs, Judges, Kings, Exile)
- Filter to show Messianic line only or all people
- Golden highlighting for Christ's ancestors (Kekulé numbers)
- Hover tooltips with detailed person info
- Click to navigate to person's profile
- Zoom and pan support
- Update family tree page with prominent links to visualizations
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add golden/yellow highlight for Kekulé ancestors (blood relations to Christ)
- Add search autocomplete for finding people quickly
- Implement back button navigation with history tracking
- Add more Messianic lineage starting points (Seth, Enoch, Shem, Isaac, Jacob, Judah, Solomon, Josiah, Joseph)
- Set vertical layout as default
- Default to 3 generations for cleaner view
- Adjust zoom for better readability
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Completely rewrote the interactive family tree visualization with a
much more polished, professional design inspired by FamilySearch and
MacFamilyTree applications.
Visual improvements:
- Person cards with gender-based color coding (blue for male, pink for female)
- Rounded card corners with subtle shadows and gradients
- Generation badges on each card
- Birth/death dates displayed on cards
- Smooth hover effects with border highlighting
- Clean, modern control bar with grouped buttons
- Slide-out info sidebar instead of inline panel
Functional improvements:
- Multiple starting points (Adam, Noah, Abraham, David, Jesus ancestors)
- Adjustable generation depth (3-10)
- Horizontal and vertical layout options
- Zoom controls (+, -, reset, fit to view)
- Scroll to zoom, drag to pan
- Click any person to see detailed info in sidebar
- Responsive design for mobile
Technical changes:
- Custom SVG card rendering with D3.js
- Dynamic tree building with direction support (descendants/ancestors)
- Fit-to-view algorithm for automatic centering
- Window resize handling
- Gender inference from name database
This provides a much better user experience for exploring the biblical
genealogy, matching the quality expected from professional genealogy
applications.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Created a new interactive family tree visualization page that allows
users to explore biblical genealogies with a zoomable, clickable tree
diagram.
Features:
- D3.js tree layout with horizontal orientation
- Click nodes to view person details in info panel
- Zoom in/out and pan functionality
- Multiple view options (descendants, ancestors, generation, lineage)
- Multiple layout options (tree, radial, dendrogram - foundation laid)
- Expand/collapse controls
- Hover effects and selection highlighting
- Links to full person profiles
- Responsive design with Tufte CSS styling
Technical details:
- New route: /family-tree/interactive
- Template: family_tree_interactive.html
- D3.js v7 for tree rendering
- Hierarchical data built from GEDCOM family tree data
- Passes family_tree_data and generations to template as JSON
- Max depth control to prevent infinite recursion
Also updated family tree overview page to link to new visualizations
section featuring both the interactive tree and messianic lineage.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed issue where spouse links weren't rendering in the person detail
page. The problem was that Jinja2's `{% set %}` inside a for loop doesn't
persist variable values outside the loop scope.
Solution: Use Jinja2's `namespace()` object to create mutable variables
that persist across scopes. Applied fix to three locations where spouse
lookups occur:
1. Inline spouse in vitals section (line 119)
2. Spouse name in family diagram (line 204)
3. Dedicated Spouse relationship section (line 257)
Now Adam and Eve (and all other spouses) properly show as clickable
links to their person pages with full metadata.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enhanced the person detail page with a proper Spouse relationship section
to match the existing Parents, Siblings, and Children sections.
Features:
- Dedicated "Spouse" section between Parents and Siblings
- Clickable link to spouse's person page if in family tree
- Displays spouse metadata (generation, Kekulé number, lifespan)
- Shows "not in family tree data" note for spouses not in GEDCOM
- Consistent styling with other relationship sections
This makes spouse information more prominent and easier to find,
improving navigation between married couples in the family tree.
Previously spouse was only shown inline in the vitals section.
Now it has its own dedicated section for better visibility and
consistency with how other relationships are displayed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>