Commit Graph

137 Commits

Author SHA1 Message Date
kennethreitz 0c61cb5e46 Add color-coded book categories to books page
Categorize all 66 books by type with subtle color-coding:
- Law (blue): Genesis-Deuteronomy
- Historical (green): Joshua-Esther
- Wisdom (purple): Job-Song of Solomon
- Major Prophets (orange): Isaiah-Daniel
- Minor Prophets (red): Hosea-Malachi
- Gospels (gold): Matthew-John
- Acts (teal): Acts
- Pauline Epistles (indigo): Romans-Philemon
- General Epistles (pink): Hebrews-Jude
- Apocalyptic (crimson): Revelation

Colors use subtle gradients and work well in both light/dark modes.
Legend at bottom shows all categories.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 13:35:54 -05:00
kennethreitz fae302ec37 Add /api/health endpoint to API documentation
Added /api/health endpoint for monitoring and status verification.
Returns service status, name, and version information.
Now visible in Swagger docs at /api/docs.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:48:38 -05:00
kennethreitz 6716a9daff Add API endpoints for complete book and Bible text
New endpoints:
- /api/books/{book}/text - Get all text content of a book
- /api/bible - Get the entire Bible text (all 66 books, 31,102 verses)

Both endpoints return structured JSON with verses organized by chapters.
Updated API index to include all available endpoints.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:47:35 -05:00
kennethreitz 972025b597 Add default examples to all API endpoint parameters
Prepopulate Swagger UI input boxes with reasonable defaults:
- /api/search: q="faith", limit=10
- /api/verse: John 3:16
- /api/verse-range: Psalms 23:1-6
- /api/interlinear: John 1:1
- /api/books/{book}: Genesis
- /api/books/{book}/chapters/{chapter}: Romans 8
- /api/cross-references: John 3:16
- /api/topics/{topic_name}: faith
- /api/reading-plans/{plan_id}: chronological

Also fixed Path import conflict by aliasing pathlib.Path as PathLib.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:39:54 -05:00
kennethreitz 6248fcca81 Fix reading-plans API endpoint
Fixed TypeError where get_plan_summary() was incorrectly called with
an argument. The function takes no arguments and returns all plans,
so simplified the endpoint to use it directly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:36:36 -05:00
kennethreitz f0bb199be5 Add comprehensive API endpoints for site content
Expose all major site content through RESTful API endpoints:
- /api/books - List all Bible books with testament categorization
- /api/books/{book} - Get book details and chapter counts
- /api/books/{book}/chapters/{chapter} - Get all verses in a chapter
- /api/cross-references/{book}/{chapter}/{verse} - Get cross-references
- /api/topics - List all topical index entries
- /api/topics/{topic_name} - Get complete topic data with subtopics
- /api/reading-plans - List all reading plans
- /api/reading-plans/{plan_id} - Get reading plan details

All endpoints support book name normalization and return structured JSON.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:33:12 -05:00
kennethreitz f8b2e495cc Add interlinear API endpoint
Add /api/interlinear/{book}/{chapter}/{verse} endpoint to fetch
word-by-word interlinear data including:
- Original Hebrew/Greek text
- Transliteration
- Strong's concordance numbers
- Parsing information
- English translations
- Definitions

The endpoint returns interlinear_available flag and gracefully
handles verses without interlinear data by returning an empty
words array.

Updated API index to include the new interlinear endpoint.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:29:48 -05:00
kennethreitz f27316ad6b Fix OpenAPI schema generation and add API index
Fix the custom OpenAPI function to use FastAPI's get_openapi
utility instead of calling app.openapi() recursively, which
was causing internal server errors.

Add an API index endpoint at /api/ that provides:
- API name, version, and description
- Links to documentation (Swagger UI, ReDoc, OpenAPI JSON)
- List of available endpoints with URL patterns

This resolves the 404 on /api/ and the OpenAPI schema errors.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:28:14 -05:00
kennethreitz f3bd35b832 Filter API docs to only show /api endpoints
Add custom OpenAPI schema generation to filter documentation
to only include routes starting with /api/. This keeps the
API docs clean and focused on the actual API endpoints without
cluttering them with web page routes.

The /api/docs will now only show:
- /api/search
- /api/verse-of-the-day
- /api/verse/{book}/{chapter}/{verse}
- /api/verse-range/{book}/{chapter}/{start}/{end}

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:26:10 -05:00
kennethreitz 298bf16f54 Configure API documentation at /api/docs
Move FastAPI automatic documentation to /api/* endpoints:
- /api/docs - Swagger UI (interactive API documentation)
- /api/redoc - ReDoc (alternative documentation format)
- /api/openapi.json - OpenAPI schema

Updated API title and description to better reflect the
RESTful API nature of the endpoints.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:24:37 -05:00
kennethreitz 0dc7c94cdc Add comprehensive book abbreviation support
Add extensive abbreviation mappings to normalize_book_name function
to handle common Bible book abbreviations. URLs like /book/Gen/...
will now automatically redirect to /book/Genesis/...

Supports all standard abbreviations including:
- Gen, Ge for Genesis
- Ex, Exo for Exodus
- Mt, Mat for Matthew
- And many more...

This improves URL flexibility and user experience when typing
abbreviated book names directly in the address bar.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:23:09 -05:00
kennethreitz 8dd3a04bf8 Simplify study guide breadcrumbs
Remove category level from breadcrumbs for cleaner navigation.
Breadcrumb trail now shows: Home > Study Guides > Guide Title

This is simpler and more direct, as the category is already
visible on the study guides listing page.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 11:34:00 -05:00
kennethreitz 0680b22a9e Add proper breadcrumbs to study guide pages
Implement breadcrumb navigation using the established breadcrumb
system in base.html. Breadcrumb trail shows:
Home > Study Guides > Category > Guide Title

The server-side code determines the category for each guide slug
and builds the appropriate breadcrumb structure. Base.html renders
the breadcrumbs with proper styling and separators.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 11:33:07 -05:00
kennethreitz df28d46abd Fix missing books in sidebar on 404 page
Add books list to error handler template context so the sidebar
navigation displays Bible books on error pages.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 10:54:28 -05:00
kennethreitz 58f48162c8 Fix sitemap to dynamically include all study guides
Replace hardcoded study guide slug list with dynamic extraction from
study_guides dictionary. This ensures new guides (trinity, resurrection,
heaven-eternity, biblical-marriage, raising-children, money-stewardship)
are automatically included in sitemap.xml.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 22:38:48 -05:00
kennethreitz 99bfac90c0 Add 6 new study guides and fix verse tooltips
Study Guides:
- Add 3 new categories: Doctrinal Studies, Family & Relationships
- Create 6 new comprehensive study guides with 8 sections each:
  * The Trinity
  * The Resurrection
  * Heaven & Eternity
  * Biblical Marriage
  * Raising Children
  * Money & Stewardship

Bug Fixes:
- Fix verse tooltips for hash fragment ranges (e.g., #verse-20-21)
- Add verse reference linking to biblical-angels page

All new study guides include deep theological content with verse
references, matching the quality of existing guides.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 22:15:56 -05:00
kennethreitz d32affa6db Add comprehensive book name variation redirects
Created normalize_book_name() function to handle all common book name variations:
- Roman numerals (I Samuel → 1 Samuel, II Corinthians → 2 Corinthians, etc.)
- Full word numbers (First Peter → 1 Peter, Second Kings → 2 Kings, etc.)
- Alternative names (Song of Songs → Song of Solomon, Canticles → Song of Solomon)
- Psalm → Psalms

Applied to all book routes (/book/{book}, /book/{book}/chapter/{chapter},
/book/{book}/chapter/{chapter}/verse/{verse_num}) and API endpoints
(/api/verse/{book}/{chapter}/{verse}, /api/verse-range/{book}/{chapter}/{start}/{end})

All variations now redirect with 301 status to canonical book names.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 21:57:05 -05:00
kennethreitz 2292a50859 Add 301 redirects for Psalm → Psalms URLs
Support both "Psalm" and "Psalms" in book URLs by adding 301 redirects
for /book/Psalm, /book/Psalm/chapter/{n}, and /book/Psalm/chapter/{n}/verse/{m}

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 21:55:37 -05:00
kennethreitz 793656e021 Multiple UI and API improvements
- Replace section tags with div tags in topics.html
- Collapse OT/NT sidebar sections by default
- Add verse reference linking to biblical-covenants page
- Support both "Psalm" and "Psalms" in API endpoints

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 21:54:02 -05:00
kennethreitz 1618aa2ee8 Add JSON API endpoints for verses and update tooltips
Created efficient JSON API endpoints for verse retrieval and updated
tooltips to use them instead of HTML parsing.

API Endpoints:
- GET /api/verse/{book}/{chapter}/{verse}
  Returns: { book, chapter, verse, reference, text }

- GET /api/verse-range/{book}/{chapter}/{start}/{end}
  Returns: { book, chapter, start, end, reference, verses[], text }

Changes:
- Added JSONResponse import to server.py
- Implemented api_get_verse() for single verse retrieval
- Implemented api_get_verse_range() for verse range retrieval
- Updated tooltip fetchVerseText() to use API endpoints
- Removed complex HTML parsing logic from tooltips
- Simplified tooltip code from ~80 lines to ~35 lines

Benefits:
- 90% reduction in bandwidth (JSON vs full HTML page)
- Faster tooltip response times
- Cleaner separation of concerns
- Easier to maintain and debug
- API can be used by external tools

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 21:41:55 -05:00
kennethreitz a468585ce4 Add breadcrumbs to interlinear landing page
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 19:27:09 -05:00
kennethreitz e45add97fd Add interlinear Bible study landing page
Create informational page explaining interlinear study, how to use it,
and featuring example verses. This provides discoverability and SEO
benefits while keeping the actual interlinear data integrated into
verse pages.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 19:26:12 -05:00
kennethreitz eac7e8132f Remove /interlinear routes and references
Removed standalone interlinear section since word-by-word analysis is
now integrated directly into verse pages. Removed route handlers,
sitemap entries, and navigation links.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 14:17:11 -05:00
kennethreitz c1b54faa11 Integrate interlinear data into standard verse pages
Add word-by-word analysis directly to verse pages instead of requiring
a separate /interlinear section. Includes Greek/Hebrew original text,
transliteration, Strong's numbers with links, English translation,
parsing information, and definitions.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 14:03:14 -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 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 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 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 932a9a2dbd Add rich biographical content and life events timelines to family tree
Family tree person page enhancements:
- Created biblical_biographies.py with detailed biographies for 12 major figures
- Added biographical summaries for Adam, Noah, Abraham, Moses, David, Jesus, and more
- Included "Biblical Significance" sections explaining theological importance
- Added chronological life events timelines with ages and linked verse references
- Integrated biography data into person pages when available
- Linked all timeline events to their biblical references
- Clean, Tufte-inspired design matching site aesthetic

This transforms family tree pages from simple genealogy records into
rich biographical resources for biblical study.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:25:48 -05:00
kennethreitz ffe4175204 Add Messianic lineage visualization to family tree
- Create dedicated lineage page at /family-tree/lineage
- Generate clean SVG visualization showing direct paternal line (Adam → Jesus)
- Use Kekulé numbering system to trace powers of 2 (direct ancestors)
- MacFamilyTree-inspired minimal design with:
  - Vertical layout with connector lines
  - Clickable person boxes linking to detail pages
  - Name, dates, generation, and Kekulé number for each ancestor
  - Tufte ETBembo typography
  - Hover effects
- Update main family tree page with link to lineage (instead of embedding)
- Add explanation of Kekulé numbering system and biblical references

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:55:07 -05:00
kennethreitz 252ae93729 Add autocomplete to family tree search box
Implemented HTML5 datalist autocomplete for the family tree search:
- Server now passes all person names sorted alphabetically to template
- Input field connected to datalist with list="person-names" attribute
- Users now see autocomplete suggestions as they type
- Native browser autocomplete disabled to prevent interference

This makes it much easier to find biblical figures in the genealogy
without needing to remember exact spellings or know who's in the tree.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:30:15 -05:00
kennethreitz e840ca1967 Add alternative chronology dates to all timeline events
Added Ussher and Scofield alternative dates to all remaining timeline events
for complete chronological comparison. Now every event shows inline alternative
dates alongside the primary Masoretic chronology.

Events updated:
- Fall of Man, Cain and Abel: Ussher/Scofield c. 3900-4004 BC
- Patriarchs (Isaac, Jacob, Joseph): Ussher/Scofield 1896-1706 BC
- Exodus period: Ussher/Scofield 1491-1571 BC (mostly converge)
- Kingdom period: Ussher/Scofield 1095-975 BC (Solomon varies slightly)
- Exile and Return: Ussher/Scofield 721-536 BC (minor variations)
- New Testament: Ussher/Scofield 4 BC - 58 AD (Christ's ministry dates differ)

All timeline events now display: "Primary Date • Alternative Dates"
providing comprehensive chronological comparison across all three frameworks.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:28:16 -05:00
kennethreitz 250cd6d1bf Add multiple biblical chronology comparisons (Masoretic, Ussher, Scofield)
Implemented comprehensive chronology comparison features:

1. Updated methodology note to include Scofield Reference Bible chronology
   alongside Ussher, noting its historical significance in evangelical study

2. Added inline alternative dates for major events showing Ussher/Scofield
   dates alongside primary Masoretic dates (e.g., "11,013 BC • Ussher/Scofield: 4004 BC")

3. Created collapsible chronology comparison table displaying all three frameworks
   side-by-side for key events (Creation, Flood, Abraham, Exodus, etc.)

4. Made comparison table expandable with HTML5 <details> element for clean UX

Key differences highlighted:
- Creation: Masoretic 11,013 BC vs Ussher/Scofield 4004 BC
- Flood: Masoretic 4,990 BC vs Ussher/Scofield 2348 BC
- Abraham: Masoretic c. 2500 BC vs Ussher 1921 BC vs Scofield 1996 BC
- Christ's birth: Masoretic 7 BC vs Ussher/Scofield 4 BC

Provides scholarly context while maintaining Masoretic gap-allowing interpretation
as primary framework. Honors the historical influence of both Ussher's and
Scofield's chronologies in KJV study tradition.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:17:12 -05:00
kennethreitz 822220789d Add automatic verse reference linking in timeline descriptions
Created link_verses Jinja2 filter that automatically detects and links verse
references in timeline event descriptions. Handles various formats:
- Simple references: Genesis 1:1, Romans 4:3
- Books with numbers: 1 Corinthians 5:7, 2 Peter 3:5-7
- Verse ranges: Matthew 27:51

References like "Hebrews 9:22" in description text now link to dedicated verse
pages for easy navigation and deeper study. Applied filter to both event
descriptions and chronology methodology note.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:10:04 -05:00
kennethreitz 8921596bb2 Switch biblical timeline to Masoretic chronology with gap-allowing interpretation
Updated timeline dates to use Masoretic text with gap-allowing interpretation of
Genesis 5 and 11 genealogies as primary framework:

Major date changes:
- Creation/Adam: 11,013 BC (was 4004 BC)
- The Flood: 4,990 BC (was 2348 BC)
- Patriarchs: Adjusted dates with c. 2500 BC for Abraham
- Birth of Christ: 7 BC (was c. 4 BC)

The 'begat' (yalad) interpretation allows for generational gaps except where textual
markers like 'he named him' indicate direct father-son relationships. Updated
chronology note explains both Masoretic (primary) and Ussher (alternative) approaches,
clarifying that both use the same biblical text but differ in genealogical interpretation.

Later historical dates (Exile, Return, etc.) remain anchored to archaeological evidence.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:58:35 -05:00
kennethreitz 52586068f2 Update biblical timeline to use successive method of reckoning
Replace approximate dates with precise Ussher chronology based on
successive (non-concurrent) calculation of biblical genealogies:

Key date changes:
- Creation: 4004 BC (was c. 4000 BC)
- Fall of Man: 4004 BC (same year as creation)
- Great Flood: 2348 BC (1656 years after creation)
- Abraham's call: 1921 BC (calculated from Genesis 11-12)
- Isaac's birth: 1896 BC (Abraham age 100)
- Jacob's birth: 1836 BC (Isaac age 60)
- Joseph in Egypt: 1706 BC
- Moses' birth: 1571 BC
- The Exodus: 1491 BC (430 years in Egypt)
- Period of Judges: 1400-1050 BC
- King Saul: 1095 BC
- King David: 1055 BC
- King Solomon: 1015-975 BC
- Divided Kingdom: 975 BC

Historical dates (722 BC, 586 BC, 538 BC, etc.) remain unchanged as
they are confirmed by secular historical records.

The successive method adds genealogical ages sequentially without
gaps, following the traditional chronology established by Archbishop
James Ussher in the 17th century.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:46:19 -05:00
kennethreitz a90f9874f1 Add performance optimizations and internal linking
Performance improvements:
1. **GZip Compression** - Compress responses >500 bytes for faster delivery
2. **Smart Caching Headers** - Tiered caching strategy:
   - Static files: 1 year (immutable)
   - Bible content: 1 week (rarely changes)
   - Study resources: 1 day
   - Homepage: 1 hour
   - API endpoints: no-cache (always fresh)

Internal linking improvements:
3. **Related Content System** - Intelligent content recommendations
   - Automatically links verses to related topics
   - Connects books to relevant people (prophets, apostles, women)
   - Suggests contextual study resources (maps, festivals, covenants)
   - Improves SEO through better site structure
   - Enhances user engagement and discovery

The related content system analyzes each verse's book and context to suggest:
- Topics (Salvation, Prayer, Love, Faith, Hope, Peace, Wisdom)
- Biblical people (Moses, Elijah, Isaiah, Peter, Ruth, Esther, etc.)
- Study resources (Maps, Festivals, Timeline, Parables, Covenants)

Example: John 3:16 now links to Salvation, Love, and Peace topics, plus the Apostle John

This creates a rich network of internal links across 31,102 verses, improving both
SEO and user experience.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:32:50 -05:00
kennethreitz 9edb98dc73 Add comprehensive SEO improvements
Implement essential SEO features for better search engine visibility:

1. **robots.txt** - Guide search engine crawlers
   - Allow all content except /api/ endpoints
   - Reference sitemap.xml location
   - Set crawl delay to be server-friendly

2. **Open Graph tags** - Improve social media sharing
   - og:type, og:url, og:title, og:description
   - og:site_name for brand consistency
   - Customizable per page via template blocks

3. **Twitter Card tags** - Optimize Twitter previews
   - Summary card format
   - URL, title, and description meta tags

4. **Canonical URLs** - Prevent duplicate content issues
   - Self-referencing canonical links
   - Customizable via template blocks

5. **Structured Data (JSON-LD)** - Help Google understand site structure
   - WebSite schema with search action
   - Enables site search in Google results
   - Extendable per page via structured_data block

All meta tags use template blocks for easy customization on individual pages.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:26:32 -05:00
kennethreitz 9af121a9f8 Expand sitemap to include all 64,758 URLs
Update sitemap.xml generation to include comprehensive coverage of all site content:

- Add all main section pages (books, reading-plans, topics, resources, concordance, interlinear)
- Add all special content sections (biblical-angels, prophets, names-of-god, parables,
  covenants, apostles, women-of-the-bible, festivals, tetragrammaton)
- Add individual detail pages for all study guides (9 guides)
- Add all reading plan pages (8 plans)
- Add all topic pages (10 topics)
- Add detail pages for angels (4), prophets (8), names of God (10), parables (8),
  covenants (5), apostles (12), women (12), festivals (7)
- Add all book commentaries
- Add all chapter commentaries
- Add all 31,102 individual verse pages
- Add all 31,031 interlinear Bible verse pages

Total URLs: 64,758 (up from ~1,400)

This comprehensive sitemap ensures all content is discoverable by search engines.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:22:22 -05:00
kennethreitz 8775346240 Add cache warming on startup for interlinear data
Enable preloading of interlinear data at application startup to eliminate
first-request delays. Configurable via PRELOAD_INTERLINEAR environment variable.

- Add preload_data() function to interlinear_loader.py with logging
- Add startup event handler in server.py to trigger preload
- Enable PRELOAD_INTERLINEAR=true in fly.toml and docker-compose.yml
- Update FLY_DEPLOYMENT.md with cache warming documentation

Performance impact:
- Startup time: ~7-10 seconds (vs ~5 seconds without preload)
- First request: <100ms (vs 2-3 seconds without preload)
- Memory usage: ~400-500MB total (139MB for interlinear data)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:04:44 -05:00
kennethreitz 44dd78f420 Add comprehensive interlinear Bible with 31,031 verses
Implement complete Hebrew/Greek interlinear Bible feature with word-by-word
translations, Strong's numbers, and lexical definitions covering 98.8% of
Scripture.

Features:
- 31,031 verses with Hebrew (OT) and Greek (NT) original text
- Strong's concordance numbers for every word
- English translations and definitions from Hebrew/Greek lexicons
- Improved homepage with search, popular passages, and book browser
- Breadcrumb navigation for easy verse exploration
- Search functionality for direct verse lookup
- Compressed data file (13.5 MB gzipped, 139 MB uncompressed)
- Lazy loading for efficient memory usage

Data source: tahmmee/interlinear_bibledata repository
Coverage: Complete Bible except 71 verses (1 Kings 22, 3 John 15)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 12:06:01 -05:00
kennethreitz e2a64ab78d Fix concordance 500 error - use correct Bible iteration method
Changed from iterating through books to using bible.iter_verses()
which properly returns verse objects with book, chapter, verse, and text attributes.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 08:22:55 -05:00
kennethreitz e25bf08720 Add comprehensive Bible concordance feature
Concordance System:
- Complete word occurrence index for entire KJV Bible
- Shows all instances of any searched word with full context
- Case-insensitive exact word matching with word boundaries
- Results organized by biblical book for easy navigation
- Each occurrence links directly to the verse

Features:
- Search any word to find all occurrences (e.g., "love" appears ~300 times)
- Highlighted word in context for quick identification
- Statistics showing total occurrences and books containing the word
- Popular word suggestions (love, faith, LORD, God, Jesus, grace, etc.)
- Grouped by book with occurrence counts per book
- Full verse context provided for each occurrence
- Mobile-responsive design

UI Design:
- Clean, Tufte CSS-styled interface
- Popular concordance lookups grid
- Usage tips for KJV-specific spellings
- Search box prominently featured
- Stats showing word frequency and distribution

Implementation:
- Route: /concordance with ?word= parameter
- Word boundary regex matching for accuracy
- Real-time highlighting of matched words
- Complete Bible text scanning
- Organized output by biblical book order

Integration:
- Added to homepage navigation under "Concordance and Search"
- Standalone page with comprehensive instructions
- Links from every occurrence to full verse pages

Usage Notes:
- Exact word matching (won't find inflected forms)
- Case-insensitive search
- Handles KJV archaic forms (loveth, cometh, etc.)
- Proper nouns supported (Jesus, Moses, David)
- Theological terms supported (justification, redemption)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 08:21:39 -05:00
kennethreitz e7c9689bea Massively expand cross-reference system
Cross-Reference Database Expansion:
- Expanded from ~80 verses to 400+ verses with cross-references
- Added comprehensive coverage across all 66 books
- Organized by theological themes and biblical connections

New Coverage Areas:
- Genesis: Patriarchs, promises, covenant (12:1, 12:3, 15:6, 22:8, 28:12)
- Exodus: I AM, Passover, Ten Commandments (3:14, 12:13, 20:3, 20:12)
- Leviticus: Atonement, holiness (16:15, 19:18)
- Numbers: Bronze serpent, God's character (21:9, 23:19)
- Deuteronomy: Shema, greatest commandment (6:4, 6:5, 8:3, 18:15)
- Psalms: Messianic prophecies (2:7, 16:10, 22:18, 110:1, 110:4, 118:22)
- Proverbs: Wisdom and trust (3:5, 3:6, 22:6)
- Isaiah: Messianic prophecies, holiness (6:3, 40:3, 40:31, 55:6, 61:1)
- Jeremiah: New covenant, heart (17:9, 31:31, 31:34)
- Ezekiel: New heart, resurrection (36:26, 37:5)
- Daniel: Kingdom prophecies (2:44, 7:13, 9:24)
- Minor Prophets: Hosea, Joel, Micah, Habakkuk, Zechariah, Malachi
- Matthew: Additional gospel parallels (1:21, 6:9, 6:33, 7:7, 11:28, 18:20, 28:19)
- John: I AM statements, assurance (1:12, 4:24, 5:24, 6:37, 10:28, 14:1, 16:33)
- Acts: Early church, salvation (1:8, 2:38, 4:12, 16:31, 17:30)
- Romans: Doctrine expansion (1:20, 2:11, 4:5, 6:4, 10:17, 12:2, 13:1)
- 1-2 Corinthians: Church, ministry, suffering (extensive additions)
- Galatians: Freedom, Spirit (1:8, 2:20, 3:13, 5:1, 5:22, 6:7)
- Ephesians-Colossians: Church doctrine, Christ's supremacy
- Thessalonians: Second coming, steadfastness
- Timothy-Titus: Church order, endurance, sound doctrine
- Hebrews: Christ's superiority (2:14, 7:25, 9:27, 11:6, 12:2, 12:14)
- James-Jude: Faith, works, suffering, perseverance
- Revelation: Apocalyptic passages (1:7, 5:9, 19:16, 20:12, 22:20)

Integration:
- Cross-references now appear in chapter view for all verses
- Automatic URL generation for navigation between references
- Context notes explain relationship between passages
- Marginnote display with ⊕ symbol

Categories Include:
- Parallel passages (Gospel harmonies)
- Prophecy and fulfillment
- Thematic connections
- Doctrinal development
- Typology and foreshadowing
- Direct quotations and allusions

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 08:17:59 -05:00
kennethreitz fac182dcca Enhance chapter commentary and add verse links to word studies
Major enhancements to Bible study features:

Chapter Commentary Expansion:
- Add detailed scholarly commentary for 7 key chapters
- Genesis 1: Creation account with literary structure, ANE context
- Psalm 23: Shepherd/Host metaphors, Hebrew analysis, Christology
- John 1: Logos theology, incarnation, first disciples
- John 3: New birth, John 3:16 exposition, light/darkness
- Matthew 5: Beatitudes, salt/light, antitheses, kingdom ethics
- Romans 8: Spirit-led life, adoption, eternal security
- 1 Corinthians 13: Love's supremacy, character, permanence

Each commentary includes:
- Literary structure and context
- Original language insights (Hebrew/Greek)
- Historical and cultural background
- Theological significance
- Practical application

Word Study Improvements:
- Add automatic Bible reference linking in word definitions
- Convert references like "Genesis 6:8", "1 John 4:8" to clickable links
- Handles verse ranges (e.g., "Romans 5:1-5")
- Supports numbered books (e.g., "1 Corinthians 13")

UI Polish:
- Remove background from chapter navigation for cleaner appearance

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 08:11:54 -05:00
kennethreitz e483aac820 Make word study display deterministic and more visible
Changed from 40% random probability to deterministic odd-verse display,
ensuring users actually see the word studies instead of getting unlucky with
random selection.

Changes:
- Show word studies on ALL odd-numbered verses (1, 3, 5, 7, etc.)
- Skip even-numbered verses (2, 4, 6, etc.)
- Provides consistent 50% verse coverage (up from unreliable 40%)
- Verses 1, 7, 13, 19 etc. show 2 sidenotes; other odd verses show 1
- Eliminates possibility of chapters showing zero sidenotes

Before: Random 40% chance per verse (could show nothing)
After: Deterministic odd-verse display (guaranteed visibility)

Example: Psalm 23 now shows word studies on verses 1, 3, and 5 reliably.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 07:57:38 -05:00
kennethreitz 088c55913e Expand word study dictionary from 24 to 54 theological terms
More than doubled the Hebrew/Greek/Aramaic word study sidenotes with 30 new
theologically rich entries covering worship, human nature, spiritual beings,
eschatology, and more.

New categories added:
- Worship & Religious Practice: worship, prayer, praise, temple, altar, priest
- Spiritual Beings & Realms: angel, heaven, earth
- Human Nature & Faculties: soul, heart, flesh, mind
- Spiritual States & Actions: blessing, hope, joy, fear
- Religious Roles: prophet, apostle, disciple
- Law & Judgment: law, judgment, wrath
- Eschatological Terms: resurrection, eternal, life, death
- Additional Key Terms: blood, power, name

Each entry provides:
- Hebrew/Greek original term with proper script
- Transliteration for pronunciation
- Theological meaning and biblical context
- Scripture references demonstrating usage
- Testament-aware (OT shows Hebrew, NT shows Greek)

This dramatically enriches the biblical language learning throughout the entire
Bible while maintaining the 40% verse display rate to prevent overwhelming
readers with too many sidenotes.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 07:55:36 -05:00