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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
- 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>