Move verse reference linking JavaScript to base.html so it works automatically
on all pages. Links verse references in .intro-text, description elements, and
paragraph tags while skipping sidebar content. This eliminates the need to
duplicate linking code in individual templates.
Includes debug logging in topic_detail.html for troubleshooting.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Exclude .cross-ref-link elements from global tooltip handler to prevent
conflict with static cross-reference tooltips on verse pages. Cross-reference
links have embedded tooltips in HTML, while other verse links use dynamic
API-fetched tooltips.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>
- Add OpenGraph image tags with proper dimensions (1200x630)
- Upgrade Twitter card to summary_large_image
- Add Schema.org Article markup for verse pages with book references
- Add Schema.org Article markup for study guides with sections
- Enhanced social sharing metadata for better previews
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
Add 'open' attribute to all details elements in sidebar navigation
to improve discoverability and ease of navigation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implemented sticky collapse/expand state for all sidebar details elements
(Old Testament, New Testament, People, Theology, etc.).
Features:
- Saves open/closed state for each subsection individually
- Uses element ID or summary text as storage key
- Restores states on page load
- Persists across browser sessions
Storage keys format: 'sidebar-details-{id or summary text}'
Example: 'sidebar-details-old-testament', 'sidebar-details-People'
Now when you expand/collapse any sidebar subsection, the state
will be remembered and restored on subsequent page visits.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed tooltip event handler to use pathname instead of full href.
Issue:
- target.href returns full URL: "http://localhost:8000/book/John/..."
- parseVerseUrl regex expects pathname: "/book/John/..."
- This caused parseVerseUrl to return null, breaking tooltips
Solution:
- Changed target.href to target.pathname in event handler
- Now passes "/book/John/chapter/3/verse/16" to parseVerseUrl
- Regex patterns match correctly and tooltips work
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>
Fixed the tooltip JavaScript to properly extract verse ranges from chapter pages.
Issue:
- Verse range tooltips were showing "Verse range not found"
- The selector was looking for .verse-text elements that don't exist on chapter pages
Solution:
- Updated verse extraction to query by #verse-{number} paragraph IDs
- Clone the verse paragraph and remove:
* Verse number links (.verse-number-link)
* Sidenotes and marginnotes
* Margin toggle elements
- Extract clean text content from each verse in the range
- Join multiple verses with spaces
Now verse ranges like "1 Corinthians 15:19-20" will properly fetch
and display the text of both verses in the tooltip.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implement support for verse ranges using anchor links in the format:
/book/{book}/chapter/{chapter}#verse-{start}-{end}
Changes:
- Updated topic_detail.html JavaScript to create anchor links for ranges
Example: "Proverbs 31:26-28" → /book/Proverbs/chapter/31#verse-26-28
- Updated topic_detail.html Jinja2 template to generate anchor links
- Enhanced base.html verse tooltip to handle both single verses and ranges
- Modified parseVerseUrl() to recognize both URL patterns:
* Single: /book/{book}/chapter/{chapter}/verse/{verse}
* Range: /book/{book}/chapter/{chapter}#verse-{start}-{end}
- Updated fetchVerseText() to fetch and combine multiple verses for ranges
- Tooltip now extracts verse ranges from chapter pages
Benefits:
- Verse ranges link directly to chapter pages with appropriate anchors
- Tooltips display full text of verse ranges
- Consistent URL structure for both single verses and ranges
- Improved caching with distinct cache keys for ranges
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implement interactive tooltips that display verse text when hovering over verse reference links throughout the site.
Features:
- Automatic detection of verse links (URLs matching /book/.../chapter/.../verse/...)
- Asynchronous fetching of verse text from server
- Intelligent tooltip positioning that avoids screen edges
- Verse caching to prevent redundant requests
- Loading state indicator while fetching
- Mouse tracking for smooth tooltip movement
- Dark mode support via CSS variables
Technical implementation:
- CSS styles added in base.html (lines 88-138) with theming support
- JavaScript uses event delegation for efficient hover detection
- DOMParser API extracts verse text from fetched HTML
- Tooltip follows mouse cursor during hover
- Clean event cleanup on mouseleave
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Override Tufte CSS max-height constraints to allow sidenotes and
marginnotes to display at their natural height without being cut off.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>
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>
- Remove all section:not(:first-of-type) border-top rules for cleaner layout
- Increase KJV text size to 1.3rem in interlinear view for better readability
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
On screens 480px and below, sidebar now pushes content to the right
instead of overlaying it. Includes smooth transition animation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Convert People, Theology, History & Culture, and Study Tools sections
to use details/summary elements with disclosure triangles.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add box-sizing: border-box to include padding within width.
Slightly reduce vertical padding for better fit.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Removes the drop shadow in the mobile/tablet breakpoint and ensures
consistent 140px width across all screen sizes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Previously 160px on desktop and 150px on medium screens.
Now 140px everywhere for more screen real estate.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
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>
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>
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>
- 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>
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>
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>
Create dedicated resource page exploring the sacred four-letter name of God (YHWH).
This in-depth study covers:
- The Hebrew letters (yod-he-vav-he) and pronunciation history
- Etymology and theological meaning (I AM, self-existence, eternality)
- Jewish reverence and the practice of substituting Adonai
- Christ's identification with YHWH through "I AM" declarations
- Old Testament YHWH texts applied to Jesus in the New Testament
- Comprehensive sidenotes with Hebrew/Greek analysis
- Full integration with verse linking
The page includes:
- Extensive introduction establishing theological significance
- 4 major sections with rich scholarly content
- 9 key scripture passages with verse linking
- Enhanced sidenotes explaining Hebrew textual traditions
- Proper Tufte CSS styling and responsive design
Added to:
- Resources page in Theology category
- Sidebar navigation under Theology
- New template: tetragrammaton.html
- New route: /tetragrammaton
This resource provides encyclopedia-level depth on the most important
name in Scripture, examining its pronunciation, meaning, Jewish handling,
and Christological fulfillment.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Improves sidebar organization by adding a clear section heading
before the Old Testament and New Testament collapsible sections.
Provides better visual hierarchy and makes the sidebar structure
more consistent with other sections (Navigation, Resources, etc).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added asterism (⁂) at bottom of sidebar menu with:
- Centered placement with elegant spacing
- Border separator above
- Subtle opacity (0.6) for refined appearance
- Letter spacing for visual balance
- Matches the classical typography aesthetic
Provides a elegant finishing touch to the sidebar navigation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Typography improvements:
- Reduced section headings from 0.85rem to 0.7rem
- Added uppercase and letter-spacing to headings
- Reduced navigation link font size to 0.75rem
- Reduced spacing between items (0.35rem to 0.25rem)
- Reduced link padding (0.2rem to 0.15rem)
Creates a more compact, refined sidebar with better visual hierarchy.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changes:
- Old and New Testament sections now collapsed by default
- Auto-expand both sections when user types in search box
- Auto-collapse when search box is cleared
- Provides cleaner initial sidebar while maintaining searchability
- Added IDs to details elements for JavaScript targeting
Improves UX by:
- Reducing initial sidebar clutter
- Making search more powerful by revealing relevant sections
- Providing intuitive behavior (expand on search, collapse when cleared)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
New Features:
- Created /resources route that showcases all theological resources
- Organized into categories: People, Theology, History & Culture, Study Tools
- Beautiful grid layout with resource cards
- Each card shows name, count, and description
- Responsive design for mobile/tablet
Integration:
- Added prominent link on homepage in Resources section
- Added to sidebar navigation menu
- Provides central hub for discovering all study materials
Resources Included:
- Biblical Prophets, Twelve Apostles, Women of the Bible
- Biblical Angels, Names of God, Parables, Covenants
- Festivals, Geography, Timeline, Genealogies
- Study Guides
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
New sidebar order for better hierarchy:
1. Search
2. Recently Viewed
3. Navigation (main menu items)
4. Bible Books (Old/New Testament)
5. Resources (categorized)
This places primary navigation before the book lists,
making core site functions more prominent and accessible.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>