Commit Graph

343 Commits

Author SHA1 Message Date
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
kennethreitz 0b46f7e7d7 Add 16 more biblical biographies
Added detailed biographies for:
- Rebekah, Rachel (matriarchs)
- Judah (Messianic line)
- Caleb (faithful spy)
- Ruth (loyal convert, David's ancestor)
- Hannah (Samuel's mother)
- Daniel (prophet in exile, lion's den)
- Esther (saved the Jews from genocide)
- Jeremiah, Ezekiel (major prophets)
- John (beloved disciple, wrote Gospel)
- James (Jesus' brother, church leader)
- Stephen (first martyr)
- Timothy, Barnabas (Paul's companions)

Total biographies now: 48 biblical figures with comprehensive
summaries, significance, and chronological life events.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:49:36 -05:00
kennethreitz d4ae5e79cc Add 20 additional biblical biographies
Added comprehensive biographies for:
- Cain, Abel (first murder, first martyr)
- Enoch, Methuselah (walked with God, oldest man)
- Shem (Noah's son, Semitic line)
- Lot, Ishmael, Esau (Abraham's relatives)
- Aaron, Joshua (Moses' brother and successor)
- Samson, Samuel, Saul (judges and first king)
- Elijah, Elisha (powerful prophets)
- Jonah (prophet to Nineveh)
- John the Baptist (forerunner of Christ)
- Mary (mother of Jesus)
- Peter, Paul (apostles)

Total biographies now: 32 major biblical figures

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:47:16 -05:00
kennethreitz 4f0da8e26e Fix cross-references to use bible object instead of non-existent bible_data module 2025-11-22 15:41:14 -05:00
kennethreitz e9c9f76194 Fix template syntax error - close biography if block 2025-11-22 15:37:13 -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 5940eb7453 Add hover tooltips to cross-references with verse previews
Enhancement to cross-references feature:
- Fetch actual verse text for each cross-reference
- Display verse text in elegant hover tooltips
- Support both light and dark mode styling
- Add "(hover to preview)" hint to section description
- Tooltips show reference and full verse text
- Clean, minimal design matching Tufte CSS aesthetic

This makes it much easier to explore related verses without
leaving the current page.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:23:10 -05:00
kennethreitz 488f833063 Make Strong's numbers clickable links to Bible Hub lexicon
Add clickable links to Strong's numbers on interlinear pages:
- Parse Strong's numbers (G#### or H####) and link to Bible Hub
- Greek words link to biblehub.com/greek/{num}.htm
- Hebrew words link to biblehub.com/hebrew/{num}.htm
- Open in new tab with rel="noopener noreferrer"
- Style links with dotted underline that becomes solid on hover
- Support both light and dark mode styling

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:17:37 -05:00
kennethreitz ae65209864 Add data-theme dark mode support alongside system preference
Fix dark mode for both system preference and manual toggle:
- Support both @media (prefers-color-scheme: dark) and [data-theme="dark"]
- Fix interlinear word cards showing white in dark mode
- Fix sidenotes/marginnotes showing white boxes in dark mode

This ensures dark mode works whether users have system dark mode
enabled OR use the manual dark mode toggle button.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:16:16 -05:00
kennethreitz 2566299a33 Fix dark mode styling for sidenotes and interlinear cards
Add comprehensive dark mode support for:
- Sidenotes and marginnotes (fixing white box issue)
- Interlinear word cards and all text elements
- Links, headings, and borders in dark mode
- Buttons, inputs, and navigation elements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:14:13 -05:00
kennethreitz f7b225add8 Add compact text-based family diagram to person pages
Replace complex SVG diagram with minimal Tufte-style text layout:
- Show parents with downward arrow (↓)
- Current person in bold with spouse
- Children listed with downward arrow
- Siblings separated below with subtle border
- All names are clickable links
- Uses simple typography (bold, italic) and arrow symbols
- Much more compact and fits Tufte aesthetic
- No background color for cleaner integration
- Shows up to 8 children/siblings with "and X more" overflow

Aligns with MacFamilyTree-inspired minimal design while being
appropriate for biblical genealogy context.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 15:06:22 -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 613e762020 Add quick reference navigation to timeline and update homepage
- Remove "View all resources →" link from homepage for cleaner design
- Update Quick Access link from "Timeline" to "Timeline / Chronology"
- Add inline quick reference navigation to biblical timeline page
  - Shows all periods with nested event links
  - Compact hierarchical structure with bullet separators
  - Styled in gray box matching site aesthetic
  - All anchor links functional for quick jumping
- Add generated data files to .gitignore (too large for git)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:42:27 -05:00
kennethreitz 6197402061 Remove section tags to reduce vertical spacing on search page
Replaced <section> elements with divs and direct elements using controlled
inline margins (1.5rem) instead of the larger default section spacing. This
creates a more compact, less vertically-stretched layout while maintaining
readability.

The page now feels tighter and more efficient without excessive whitespace.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:32:50 -05:00
kennethreitz 01acb48652 Move back link below search results on family tree search page
Repositioned the "← Back to Family Tree" link to appear below the search
results instead of above them. This improves UX by keeping the search results
more prominent and accessible, especially when there are multiple matches.

New layout order:
1. Search form
2. Results (when present)
3. Back to Family Tree link

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:31:30 -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 883bc37e4b Expand chronology comparison table by default
Added 'open' attribute to <details> element so the chronology comparison
table is visible by default rather than collapsed. Users can still collapse
it if desired by clicking the summary.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 14:18:36 -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 eb919ef898 Add chronology methodology note to biblical timeline
Display explanation of successive method of reckoning used for Genesis 5 & 11
genealogies. The note clarifies that 'begat' (Hebrew yalad) may indicate either
direct father-son relationships (marked by 'he named him') or ancestral lines
with potential gaps. Changed intro from 'approximate dates' to 'calculated dates'
to reflect precision of Ussher chronology.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:51:01 -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 74fb78a91f Remove biblical verse descriptions from family tree person pages
Remove the person-description div that displayed lengthy biblical verse
quotations on family tree person pages. This simplifies the page layout
and removes redundant content.

Removed:
- CSS styling for .person-description
- HTML div displaying person.description verses

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:35:43 -05:00
kennethreitz 089f4ec26e Remove duplicate cross-references section
Fix duplication where cross-references were shown twice:
- Once from the route's cross_references variable
- Once from commentary.cross_references

Kept the more complete and styled version from the route.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:34:31 -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 16fcc6babf Remove emoji from Interlinear navigation link
Clean up verse navigation by removing decorative emoji from Interlinear link
for consistency with Tufte CSS minimalist design.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 13:13:21 -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 cfbfc5417c Optimize for fly.io deployment
Production-ready configuration for fly.io with enhanced resource allocation,
health checks, and error handling for the comprehensive interlinear Bible.

Changes:
- Increase memory to 2GB to handle 139MB uncompressed interlinear data
- Add concurrency limits (200 soft, 250 hard)
- Configure health checks at /health endpoint
- Enhanced .dockerignore to exclude large uncompressed files
- Production logging in interlinear_loader with error handling
- Auto-scaling configuration (stop on idle, start on request)
- Comprehensive deployment documentation

Performance optimizations:
- Compressed data: 13.5 MB in image
- Memory usage: ~400-500 MB (with 2GB allocated)
- Cold start: ~5-10 seconds (including data load)
- Warm requests: <100ms

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 12:10:55 -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 48e9f95437 Add Concordance to sidebar navigation
Added link to /concordance in the main sidebar menu for easy access.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 08:24:43 -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