Commit Graph

378 Commits

Author SHA1 Message Date
kennethreitz 2ba69fef69 Move Genealogies from History & Culture to People section
Better categorization as genealogies are people-focused content.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:46:19 -05:00
kennethreitz 9f28d006d3 Make mobile menu slide content over on smallest screens
On screens 480px and below, sidebar now pushes content to the right
instead of overlaying it. Includes smooth transition animation.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:45:04 -05:00
kennethreitz ebaab06560 Make entire cards clickable on topics and books pages
Apply same clickable card treatment as resources page for better UX.
Users can now click anywhere on topic/book cards to navigate.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:43:49 -05:00
kennethreitz aad91cbc5c Make sidebar resource sections collapsible and collapsed by default
Convert People, Theology, History & Culture, and Study Tools sections
to use details/summary elements with disclosure triangles.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:40:50 -05:00
kennethreitz db8ad5d29c Tighten spacing throughout homepage
Reduce margins on title, verse lookup, featured studies, and footer
for a more compact, efficient layout.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:38:14 -05:00
kennethreitz 4d1b222923 Make entire resource card clickable
Wrap card in anchor tag instead of just the title, improving UX.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:37:21 -05:00
kennethreitz 82f6c67cda Replace section tags with divs on resources page
Reduces excessive whitespace by avoiding Tufte CSS section spacing.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:35:55 -05:00
kennethreitz 1cea38cf0d Set sidebar search box width to 90% for better spacing
Gives the search input proper breathing room within the narrow sidebar.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:34:20 -05:00
kennethreitz e607e262bd Fix search box overflow in narrower sidebar
Add box-sizing: border-box to include padding within width.
Slightly reduce vertical padding for better fit.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:32:03 -05:00
kennethreitz 0fd498431b Remove box-shadow from mobile sidebar and set width to 140px
Removes the drop shadow in the mobile/tablet breakpoint and ensures
consistent 140px width across all screen sizes.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:31:12 -05:00
kennethreitz 3d813144e6 Remove drop shadow from sidebar
Clean up visual clutter by removing subtle box-shadow on the right edge.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:28:56 -05:00
kennethreitz 7590a93a4d Set sidebar to consistent 140px width across all breakpoints
Previously 160px on desktop and 150px on medium screens.
Now 140px everywhere for more screen real estate.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:28:37 -05:00
kennethreitz cb2cf485b4 Move sidebar scrollbar to left side
Added direction: rtl to sidebar to position scrollbar on left.
Child elements reset to direction: ltr to maintain normal text flow.

This creates a more intuitive layout with the scrollbar between
the sidebar and main content rather than at the edge.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:26:06 -05:00
kennethreitz 93f94a9749 Remove Recent section from sidebar
Removed the Recently Viewed section to simplify the sidebar:
- Removed CSS styling for recently-viewed section
- Removed HTML markup and empty state
- Removed JavaScript localStorage tracking code

This makes the sidebar cleaner and more focused on navigation.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:25:33 -05:00
kennethreitz f30f6654f7 Improve sidebar compactness and add enhanced TOC to timeline
Sidebar improvements:
- Reduced top padding from 3rem to 1.5rem
- Reduced base font size from 0.75rem to 0.7rem
- Tightened line-height from 1.5 to 1.3
- Reduced all section margins from 1.5rem to 0.75rem
- Reduced list item spacing and link padding
- Reduced medium-width sidebar from 280px to 150px

Biblical Timeline TOC:
- Changed "Quick Reference" to proper "Table of Contents" heading
- Restructured events in vertical list format
- Added dates next to each event
- Enhanced styling with border, better spacing, dividers
- Made period names bolder and more prominent
- Added mobile responsive styles

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:24:31 -05:00
kennethreitz 076b435a5c Fix trailing comma before period in book lists
Changed all book list loops to filter the list first using Jinja2's
select() filter, so loop.last correctly refers to the last book that
will actually be rendered, not the last book in the original list.

This fixes issues like "Job, Psalms, Proverbs, Ecclesiastes, ."
where a book at the end of the list might not be in the books variable.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 13:01:51 -05:00
kennethreitz c914952f61 Fix link underlines having excessive spacing on mobile
Removed min-height: 44px and display: inline-block from all links,
which was causing extra vertical space around inline text links.

Touch target sizing now only applies to actual interactive elements
(buttons, form inputs) that need 44px minimum height, not inline text links.

This fixes the underline spacing issue in narrow browser windows.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 12:35:40 -05:00
kennethreitz f6f02fa9d6 Fix sidenote background showing dark in light mode
The tufte.css @media (prefers-color-scheme: dark) was applying
dark backgrounds to sidenotes even when the page was in light mode.

Fixed by explicitly setting:
- Light mode: transparent background with dark text (#444)
- Dark mode (manual): dark background (#151515) with light text (#aaa)
- Dark mode (system): dark background (#151515) with light text (#aaa)

Used !important to override tufte.css base styles.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 12:29:51 -05:00
kennethreitz 950adab6ea Fix sidenote color to distinguish from main text
Changed sidenotes from pure black (#000) to dark gray (#444).
Sidenotes should be visually distinct as secondary content while
maintaining good readability.

Dark mode: Changed to #aaa for appropriate contrast.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 12:26:10 -05:00
kennethreitz b19a48d1b8 Make h1 and h2 headings much more prominent on mobile
- h1: Increased to font-weight 800, size 2.2rem, pure black color
- h2: Increased to font-weight 700, size 1.65rem, removed italic style
- h3: Increased to font-weight 700, size 1.3rem
- Homepage title: Extra bold at font-weight 900, size 2.75rem
- All headings now pure #000 (white in dark mode) for maximum contrast
- Added tight letter-spacing to h1 for better readability

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 12:25:45 -05:00
kennethreitz 13b157f300 Massively increase mobile contrast for iOS
Replaced subtle backgrounds with strong borders and colors:

- Removed all rgba background tints (too subtle)
- Increased all borders from 2-3px to 4-5px thickness
- Changed border colors from CSS vars to solid #999 (strong contrast)
- Increased font-weights to 600-700 for headings
- All text now pure black (#000) instead of CSS vars
- Link underlines increased to 2-3px thickness
- Button styling: solid black background with white text
- Section dividers now 3px instead of 2px

Dark mode: All elements have explicit dark equivalents with #666 borders.

This provides much stronger visual hierarchy and readability on iOS.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 12:24:20 -05:00
kennethreitz 99288c734e Comprehensive mobile/iOS styling improvements
Enhanced mobile experience across the entire site:

Base Template (all pages):
- Added iOS-specific webkit optimizations
- Increased all touch targets to 44px minimum (Apple HIG)
- Enhanced link visibility with 2px borders and darker colors
- Improved sidenotes with background tint and thicker borders
- Better button styling with proper tap highlights
- Stronger section dividers with 2px borders
- Improved breadcrumb contrast and weight

Homepage:
- Enhanced verse lookup with background tint and thicker border
- Better input/button styling with 2px borders
- Study entries with subtle backgrounds and better contrast
- Quick link buttons with proper touch targets and borders
- Epigraph with background tint for better visibility
- All text using primary color for maximum readability

Dark mode support for all new background tints.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 12:20:26 -05:00
kennethreitz f73252d4fb Improve resource page mobile/iOS styling
Enhanced mobile view with better contrast and readability:
- Increased border thickness from 1px to 2px with darker colors
- Changed category titles to primary text color for prominence
- Made card borders and shadows more visible
- Improved text contrast by using primary color for descriptions
- Added font-weight and thicker underlines for links
- Increased spacing for better touch targets

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 12:16:54 -05:00
kennethreitz 194c1b52dd Delete server.log 2025-11-23 01:02:40 -05:00
kennethreitz b739b6e59d Add GitHub source code link to homepage footer
Add open source attribution and GitHub link at bottom of homepage.
Styled subtly with centered text and tertiary color.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:45:21 -05:00
kennethreitz cc13081892 Add GitHub source code link to sidebar navigation
Add "View Source Code" link at bottom of sidebar pointing to repository.
Styled subtly with tertiary text color and dotted underline.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:44:20 -05:00
kennethreitz b318e61322 Update all links to use kjvstudy.org domain
Changed all links from kjvstudy.fly.dev to kjvstudy.org to use
the proper custom domain instead of the Fly.io subdomain.

All 31 feature links now point to kjvstudy.org.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:41:04 -05:00
kennethreitz b21997352c Add live links to all features in README
Every feature and resource mentioned in the README now links directly
to the live site at kjvstudy.fly.dev, making it easy for readers to
explore the platform while reading the documentation.

Links added for:
- Bible reading features (books, search, cross-references, verse of the day)
- Interlinear Bible with example verse
- All 9 study guides
- Biblical resources (apostles, women, prophets, angels)
- Themes & topics (parables, names of God, covenants, festivals, fruits)
- Historical context (timeline, maps, family tree)

The README is now interactive and allows readers to immediately see
examples of each feature mentioned.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:39:19 -05:00
kennethreitz b582c12c04 Completely rewrite README with comprehensive documentation
Replaced merge-conflicted, duplicative README with clean, professional
documentation from the ground up.

New structure includes:
- Clear project description and live site link
- Comprehensive feature inventory organized by category
- All study guides, biblical resources, and tools documented
- Complete tech stack breakdown
- Installation and deployment instructions
- Project structure diagram
- Contributing guidelines and roadmap
- No merge conflicts, no duplicates, no emojis

The README now accurately reflects the full scope of the platform
and provides clear onboarding for developers, contributors, and users.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:37:02 -05:00
kennethreitz 5a223a90d4 Keep one machine running to eliminate cold starts
Changed Fly.io configuration to maintain one active machine:
- min_machines_running: 0 → 1
- auto_stop_machines: 'stop' → 'suspend'

This eliminates cold start delays by keeping the application warm and ready
to serve requests immediately. The machine will suspend (not stop) when idle,
allowing much faster wake-up times.

With PRELOAD_INTERLINEAR enabled, the 14MB interlinear data stays loaded
in memory, making all requests fast without repeated decompression.

Trade-off: Slightly higher costs for always-on machine, but much better
user experience with instant page loads.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:32:25 -05:00
kennethreitz dd8580c6ac Expand all study guides and Fruits of the Spirit with comprehensive theological content
This commit completes a major content expansion across the site:

Fruits of the Spirit Resource:
- Expanded all 9 fruits (Love, Joy, Peace, Longsuffering, Gentleness,
  Goodness, Faith, Meekness, Temperance) from brief descriptions to
  comprehensive 4-5 paragraph theological expositions
- Each fruit now includes Greek word studies, biblical foundations,
  practical applications, and cultivation methods
- Added extensive Scripture quotations throughout

Study Guides Expansion (3 sections → 8 sections each):
- The Gospel Message: Nature of gospel, holiness vs sin, divine wrath,
  Christ's atonement, resurrection, repentance/faith, justification,
  commission to proclaim
- Fruits of the Spirit: Source of fruit, Godward/outward/inward graces,
  unity of fruit, fruit vs flesh, cultivation, evidence of faith
- Prayer & Faith: Nature of prayer, Lord's Prayer model, prayer elements,
  praying in faith, persistence, nature of faith, faith through obedience,
  growing in faith
- Christian Living: Living sacrifice, separation from world, Spirit vs flesh,
  shining as lights, pursuit of holiness, faithful stewardship, love in action,
  perseverance
- God's Love: God's essential nature, love in creation/providence, covenant love,
  Calvary demonstration, unfailing love, experiencing God's love, responding
  to love, loving others
- Hope & Comfort: God of all comfort, purpose in affliction, God our refuge,
  hope in resurrection, certainty of glory, comfort through Word, ministry
  of comfort, blessed hope of Christ's return
- Wisdom & Guidance: Fear of Lord as beginning, asking for wisdom, trusting
  God not self, Scripture as source, discerning God's will, godly counsel,
  daily decisions, growing in wisdom

All content maintains consistent theological depth, classical scholarly voice,
KJV quotations, and compatibility with Tufte CSS styling.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 00:12:11 -05:00
kennethreitz aa1a2cb7c8 Add verse reference linking to Fruits of Spirit and resource pages
- Apply link_verses filter to fruit descriptions in fruits_of_spirit.html
- Add link_verses filter to resource_detail.html for individual fruit pages
- Inline verse references like "(Romans 5:1)" are now clickable links
- Expand Joy and Peace fruit descriptions with theological depth

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:57:18 -05:00
kennethreitz 1e10d9339f Expand Parenting topic and Fruits of the Spirit content
- Add comprehensive theological overview to Parenting topic
- Update topic_detail.html template to support custom overview text
- Heavily expand Love fruit description with theological depth
- Add Fruits of the Spirit and Parenting to sidebar navigation
- Add both resources to resources page

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:54:35 -05:00
kennethreitz 6d03151cd4 Add Fruits of the Spirit resource
Create comprehensive resource for the 9 fruits of the Spirit from
Galatians 5:22-23 with individual pages for each fruit:

- Love - The Supreme Christian Virtue
- Joy - The Gladness of Grace
- Peace - The Tranquility of Trust
- Longsuffering - Patient Endurance
- Gentleness - Kindness and Compassion
- Goodness - Moral Excellence
- Faith - Steadfast Faithfulness
- Meekness - Humble Strength
- Temperance - Disciplined Self-Control

Each fruit includes 6-7 carefully selected Bible verses with
theological exposition and Greek word studies.

Main page: /fruits-of-the-spirit
Detail pages: /fruits-of-the-spirit/{fruit-slug}

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:45:17 -05:00
kennethreitz b603e245c4 Add Parenting topic with biblical guidance
Add comprehensive Parenting topic to topical index with 6 subtopics:

1. Teaching Children - Instructing children in God's ways
   - Deuteronomy 6:6-7, Proverbs 22:6, Ephesians 6:4, etc.

2. Discipline - Godly correction and discipline
   - Proverbs 13:24, 29:15, 23:13-14, Hebrews 12:7, etc.

3. Father's Role - The father's responsibility
   - Ephesians 6:4, Colossians 3:21, 1 Thessalonians 2:11-12, etc.

4. Mother's Role - The mother's influence
   - Proverbs 31:1, 31:26-28, 2 Timothy 1:5, etc.

5. Children's Obedience - Children honoring and obeying parents
   - Ephesians 6:1-3, Colossians 3:20, Exodus 20:12, etc.

6. Love and Provision - Caring for children's needs
   - Psalms 127:3, 103:13, Matthew 7:11, 1 Timothy 5:8, etc.

Available at /topics/Parenting

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:39:35 -05:00
kennethreitz cb18b0e19e Add daily caching for sitemap generation
Implement caching for sitemap.xml to avoid regenerating the massive
sitemap on every request. The sitemap is now:
- Generated once and cached with the current date
- Served from cache for all requests on the same day
- Automatically regenerated the next day

This significantly improves performance as the sitemap includes thousands
of URLs for all Bible verses, chapters, books, topics, and other resources.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:37:40 -05:00
kennethreitz acfd74f06d Fix TOC to include h3 headings in article tags
Update JavaScript selector in resource page TOCs to capture h3 headings
nested inside article tags. Changed selector from:
  'section h2, section h3'
to:
  'section h2, section h3, section article h3'

This ensures individual entries (angel names, prophet names, etc.) appear
in the table of contents as indented sub-items under their category headings.

Updated templates:
- biblical_angels.html
- biblical_prophets.html
- names_of_god.html
- twelve_apostles.html
- women_of_the_bible.html
- parables.html

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:36:20 -05:00
kennethreitz d29f0ae2cf Add Grief subtopic to Suffering
Add new "Grief" subtopic under Suffering with 8 comforting verses
about mourning and sorrow, including:
- Psalms 34:18 - The LORD is nigh unto them of a broken heart
- Matthew 5:4 - Blessed are they that mourn
- John 11:35 - Jesus wept
- Psalms 30:5 - Weeping may endure for a night
- 2 Corinthians 1:3-4 - Father of mercies and God of all comfort
- Revelation 21:4 - God shall wipe away all tears
- 1 Thessalonians 4:13 - Sorrow not as others who have no hope
- Psalms 147:3 - He heals the broken in heart

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:33:43 -05:00
kennethreitz fe443d11cd Remove background from TOC for cleaner appearance
Remove background color from table of contents on all resource pages
for a simpler, cleaner look. The left border provides sufficient
visual distinction without needing a background fill.

Updated templates:
- tetragrammaton.html
- biblical_angels.html
- biblical_prophets.html
- biblical_covenants.html
- biblical_festivals.html
- names_of_god.html
- twelve_apostles.html
- women_of_the_bible.html
- parables.html

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:33:00 -05:00
kennethreitz 684ec18eea Standardize breadcrumbs on interlinear page
Update interlinear page breadcrumbs to match site-wide styling:
- Use standard .breadcrumb class instead of .breadcrumbs
- Use CSS variables (--link-color, --text-secondary) instead of hardcoded colors
- Change separator from / to > to match other pages
- Add border-bottom and proper spacing
- Remove inline styles
- Apply consistent dark mode styling

Breadcrumbs now match the refined navigation style used throughout
the rest of the site.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 23:30:32 -05:00
kennethreitz 7e411df9ba Add table of contents to all resource pages
Add auto-generated TOC to resource page templates including:
- tetragrammaton.html
- biblical_angels.html
- biblical_prophets.html
- biblical_covenants.html
- biblical_festivals.html
- names_of_god.html
- twelve_apostles.html
- women_of_the_bible.html
- parables.html

TOC features:
- Automatically generates from h2 and h3 section headings
- H3 headings indented to show hierarchy
- Classical styling with left border matching site aesthetic
- JavaScript-powered navigation links
- Positioned after title/subtitle for easy access

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 16:27:14 -05:00
kennethreitz d271cc29d9 Move chapter commentary after Bible text
Reorder chapter view so commentary appears after the Scripture text
rather than before it, allowing readers to engage with the primary
text before reading interpretive material.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 16:16:02 -05:00
kennethreitz 887a0eb9ec Correct chronology terminology to Successor Method
Change "Masoretic (Gap-Allowing)" to "Masoretic (Successor Method)"
to accurately reflect the Masoretic chronology's successor method of
reckoning, where each patriarch's time period continues until the next
patriarch's birth.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 16:14:10 -05:00
kennethreitz 310eb188a1 Refine homepage with classical scholarly styling
Remove modern design elements from verse lookup and quick links sections.
Replace card-based layouts with classical border-left styling.
Simplify button styling to match traditional academic presentation.
Adjust spacing and typography for consistency with Tufte CSS principles.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 16:12:06 -05:00
kennethreitz ce46c21740 Fix Sarah biography aliases for GEDCOM name variations
- Added aliases for "Sarai or Sarah" and "Sarai" -> "Sarah"
- Removed duplicate "Abraham's wife Sarah" entry (now aliased to "Sarah")
- Sarah's biography now appears for all name variations in GEDCOM

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 16:04:19 -05:00
kennethreitz 8c93378a43 Add 17 more biblical biographies
Added comprehensive biographies for:
- Sarah (direct entry in addition to "Abraham's wife Sarah")
- Leah, Boaz, Bathsheba (OT figures)
- Mark, Luke (Gospel authors)
- Miriam, Deborah, Gideon (Judges period)
- Hezekiah, Josiah (Kings)
- Mary Magdalene, Martha, Lazarus (Jesus' close followers)
- Zacchaeus, Nicodemus (conversion stories)
- Silas (Paul's companion)

Total biographies: 65 biblical figures

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 16:03:18 -05:00
kennethreitz 0c5b91d3f3 Add GEDCOM data caching for improved performance
Created caching infrastructure to avoid re-parsing GEDCOM file on every request:
- Added global caches for tree_data, generations, and name_to_person_id mapping
- Created get_family_tree_data() to return cached tree and generations
- Created get_person_name_mapping() for name lookups
- Updated search_family_tree() to use cached data
- Updated link_person_names_in_text() to use cached name mapping
- Updated /family-tree route to use cached data

This significantly improves performance for all family tree pages and searches.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 16:01:17 -05:00
kennethreitz a6fcc88222 Show family tree results above Bible verses in search
Makes it easier to find people when searching by name, as the person's
profile appears before all the verses mentioning them.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:59:08 -05:00
kennethreitz a1519d5689 Add exact match redirect and family tree search integration
Family tree search:
- Exact name matches now redirect directly to person page
- Added search_family_tree() helper function

Homepage search:
- Now includes family tree people in search results
- Shows up to 5 matching people with their info
- Results separated into "Bible Verses" and "People in Family Tree"

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:56:46 -05:00
kennethreitz 9232c66409 Add name alias support for biblical biographies
Handle alternate name forms like "Noah or Noe" by adding BIOGRAPHY_ALIASES
dictionary. Updated get_biography() and has_biography() to check aliases
when exact match not found.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:53:16 -05:00