- New og_image.py module generates custom 1200x630 social images
- Images include verse title, subtitle, verse text, and branding
- Caches generated images to disk for performance
- Routes: /og/verse/, /og/chapter/, /og/book/, /og/topic/, /og/story/, /og/guide/
- Updated templates: verse, chapter, book, topic, story, study guide
- Images use Georgia serif font matching site typography
- Cream background (#fffff8) and green accent (#4a7c59)
When shared on social media, pages now show custom preview images
with the actual verse text instead of the generic site image.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add BreadcrumbList JSON-LD schema to verse, chapter, book, topic,
study guide, and story detail pages for rich SERP breadcrumbs
- Add Book schema to book pages with chapter count and authorship
- Add Article schema to topic detail pages
- All key content pages now have proper structured data for search
engines to understand site hierarchy
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Display chapters in responsive grid instead of inline with dots
- Arrow keys navigate 2D grid (up/down by row, left/right within row)
- Vim-style h/j/k/l navigation also supported
- Max-width 500px on desktop, full width on mobile
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Disable sticky breadcrumb on mobile, hide action buttons
- Add mobile styles to chapter page (nav, touch targets)
- Add mobile styles to verse page (share buttons, tooltips)
- Add mobile styles to books page (responsive grid)
- Add mobile styles to book page (chapter links, nav hints)
- Add mobile styles to search page (full-width, iOS zoom fix)
- Add mobile styles to topics and reading plans pages
- Improve touch targets across all pages (44px min)
- Fix max-width containers for mobile (100%)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add KJVNav.initGridNav for standardized 2D grid navigation
- Migrate books.html, topics.html, resources.html to use initGridNav
- Add sidebarActive check to all templates with custom keyboard handlers
- Add [ and ] shortcuts for prev/next chapter on chapter pages
- Add [ and ] shortcuts for prev/next book on book pages
- Update accessibility page with comprehensive keyboard shortcut docs
- Add honest note about keyboard navigation complexity
- Fix sidebar nav conflicting with main content selection
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed scrollIntoView behavior from 'smooth' to 'auto' across all
templates for instant, non-animated navigation between selections.
Affected ~75 instances across 50+ template files.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
When you scroll the page and then press ↑ or ↓ for the first time, the selection now intelligently starts from what's currently visible in the viewport instead of always starting at the top.
**Behavior:**
- If chapter section is visible → starts there
- If scrolled past chapters → starts at first visible paragraph
- Selection only moves when you press a key (not automatically on scroll)
This makes navigation feel natural when combined with mouse/trackpad scrolling.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Selection now automatically updates when scrolling to match what's visible in the viewport:
- When in chapter drilldown mode, scrolling updates to the first visible chapter
- When viewing paragraphs, scrolling updates to the first visible paragraph
- When chapter section is selected and scrolled off-screen, switches to paragraphs
- Debounced for smooth performance (150ms)
This makes keyboard navigation feel natural when combined with mouse/trackpad scrolling.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changed selector from selecting all paragraphs to only selecting direct children paragraphs, which prevents selecting both the blockquote and the paragraph inside it.
Before: `section:not(.chapters-section) p` selected p inside blockquotes
After: `section:not(.chapters-section) > p` only selects direct p children
This fixes the issue where Key Verses blockquotes had two selection items.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
**Book View Changes:**
- Chapter section is now a single item with green box outline
- Press ↓ to select chapter section
- Press Enter to drill down into individual chapters
- Press Esc to exit drilldown mode
- All paragraphs now use green box outline styling (consistent UX)
**Chapter View Changes:**
- Removed 'c' keyboard shortcut (reserved keyword)
- Updated help text
**Navigation Flow:**
1. Start: Press ↓ → selects chapter section (green box)
2. Press Enter → drills into first chapter number
3. Navigate ↑/↓ through chapter numbers
4. Press Enter on a chapter → navigate to that chapter
5. Press Esc → exit back to chapter section
6. Press ↓ from chapter section → move to paragraphs below
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Book view now supports navigating both chapter links and introduction paragraphs. Chapter view supports navigating action buttons, verses, and chapter selector controls.
**Book View:**
- Navigate through chapter numbers with ↑/↓
- Continue down to navigate through introduction paragraphs
- Press Enter on chapters to read them
- Visual feedback with green highlights for both zones
**Chapter View:**
- Three-zone navigation: actions, verses, chapter selector
- Press 'c' to jump to chapter selector
- Press Enter in chapter selector to focus dropdown
- Escape to clear selections
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added global KJVNav helpers to base.html and updated 32 templates
to start keyboard selection from the viewport when the current
selection is off-screen. This provides a more intuitive navigation
experience - pressing up/down after scrolling starts from what's
visible rather than jumping to an off-screen location.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove study guides from homepage keyboard nav (too inline/sloppy)
- Add paragraph-level nav to resource_index.html (soteriology, etc.)
- Stories index: add category navigation, Enter jumps to first story in category
- Story kids: add adult callout and PDF button to nav
- Detail pages (topic, resource, reading_plan, parable): include paragraphs,
verse items, and PDF buttons in keyboard nav
- Chapter page: add 'i' for interlinear, 'p' for PDF shortcuts
- Book page: add 'p' for PDF shortcut
- Chapter interlinear: add 'p' for PDF shortcut
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add global navigation shortcuts: b (books), s (search), r (resources),
t (topics), p (plans), f (family tree), c (concordance), v (verse of day),
g (verse lookup), backtick (toggle sidebar)
- Replace keyboard help alert with styled HTML modal (? key)
- Add arrow/vim-style navigation to all major pages:
- Topics, topic detail, reading plans, reading plan detail
- Study guides, parables, search results, resources
- Family tree pages (main, generation, person)
- Strong's concordance index pages
- Biblical timeline, interlinear landing
- Fix click-to-navigate on books and book pages (remove double-click requirement)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- ↑/↓ or j/k to select chapters with visual highlight
- Enter to navigate to selected chapter
- ←/→ to navigate between adjacent books
- Click to select, click again to navigate
- Added nav hint showing keyboard shortcuts
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add description blocks to verse, chapter, book, and study guide templates
- Include "KJV" in descriptions for better SEO (commonly searched term)
- Verse pages now show verse text in description (155 chars)
- Chapter pages show book/chapter info with first verse excerpt
- Book pages include book introduction excerpt when available
- Homepage and other index pages have descriptive meta tags
- All templates now have proper SEO-friendly meta descriptions
Verified all other resource templates already had descriptions.
All tests passing (268 passed, 1 skipped).
🤖 Generated with Claude Code
https://claude.com/claude-code
Co-Authored-By: Claude <noreply@anthropic.com>
Add markdown rendering to verse text and significance fields
to properly display bold and italic formatting.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Create new 'mdi' filter for inline markdown (bold/italic only)
without paragraph wrapping. Apply to Key Themes descriptions
to properly render markdown formatting within list items.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Apply markdown filter to Introduction and Historical Context sections
to properly render bold text and other markdown formatting.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Apply markdown filter to Literary Style section to properly render
bold text and other markdown formatting. Makes it consistent with
other sections like Theological Significance.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Scope the 1.8rem font-size rule to only the .chapters-section
so parenthetical chapter references in other sections don't
get enlarged.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Handle patterns like "Hebrews 5-7" (chapter range) and "Hebrews 11"
(single chapter) that don't include verse numbers (no colon).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Single verses now use /book/{book}/chapter/{ch}/verse/{v} format
which matches the tooltip parser pattern in base.html.
Verse ranges continue to use #verse-{start}-{end} anchor format.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Track both currentBook and currentChapter context so abbreviated
ranges like "45-49" in "(1 Corinthians 15:21-22, 45-49)" correctly
inherit the book (1 Corinthians) and chapter (15) from the preceding
reference.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add cross-book reference support (e.g., Romans 5:12-21)
- Handle comma-separated verse ranges with inherited chapter context
(e.g., 27:27-29, 39-40 where 39-40 inherits chapter 27)
- Support semicolon-separated references (e.g., 48:15-16; 49:1-27)
- Fix verse range linking to use #verse-start-end anchor format
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Genesis, Exodus, Leviticus, Numbers, Deuteronomy fully expanded
- Each book now includes: multi-paragraph introductions, key themes with
descriptions, key verses with significance, detailed outlines, historical
context, literary style, theological significance, Christ in book,
relationship to NT, and practical application
- Update book.html template to handle new data structure
- Add markdown filter for bold text conversion
- Template now supports both old and new data formats
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create books.py loader module with caching for book data
- Add JSON files for each book with introduction, themes, key verses,
outline, historical context, literary style, Christ in book, and
practical application sections
- Update API routes to include book metadata and introduction data
- Update book.html template to display rich book content
- Template falls back to commentary data when book_intro unavailable
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Cross-Reference System:
- Create comprehensive cross-reference database with 100+ key verses
- Map theological themes, prophecies, and doctrinal connections
- Add cross-references section to verse pages
- Include explanatory notes for each reference
- Link all cross-references to their verse pages
Books Page (/books):
- Create dedicated page listing all 66 books
- Organize by Old Testament (39 books) and New Testament (27 books)
- Show chapter count for each book
- Add scholarly introduction to each testament
- Grid layout with hover effects
- Update "Authorized King James Version" links to point to /books
Additional Improvements:
- Update verse, book, and chapter templates with /books links
- Add navigation guidance on books page
- Integrate cross-references module into server
- Parse reference strings for proper linking
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The changes add a system to highlight well-known Bible chapters with color
coding and visual indicators based on their popularity/significance. This
helps readers quickly identify important passages and commonly studied
chapters.
Switch from Playfair Display/EB Garamond to Crimson Text for
consistent typography and replace hardcoded white/color values
with CSS variables for better theme consistency.
Improves tooltip display across mobile, tablet, and desktop
breakpoints with appropriate sizing, positioning, and typography
adjustments for each screen size.
- Create get_verse_text() helper function to retrieve actual verse content
- Add "text" field to all book highlight entries using verse lookup
- Update tooltip display to show actual verse text instead of descriptions
- Fix template field references from "text" to "verse_text" for consistency