Commit Graph

1015 Commits

Author SHA1 Message Date
kennethreitz 8322a88edd Extract base.html inline JS to separate file and update test expectations
- Extracted ~1250 lines of JavaScript from base.html to static/base.js
- Reduced base.html from ~2700 lines to ~1440 lines
- Updated tests to expect 404 (not 500) for invalid resources
- Updated CLAUDE.md to reflect proper error handling

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:57:57 -05:00
kennethreitz 7b6758c021 Add tooltip support for new chapter anchor verse links
Updated parseVerseUrl to recognize /book/{book}/chapter/{chapter}#verse-{verse} format in addition to the old /verse/ path format.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:46:33 -05:00
kennethreitz 2457bf5ace Fix pagination button contrast on Strong's index page
Changed active page button from dark link-color to green (#4a7c59) with white text for better visibility.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:40:02 -05:00
kennethreitz ec7fcf91ef Fix site-wide verse linking to use chapter anchors and skip already-linked content
- Updated base.html JavaScript to use chapter anchors instead of verse pages
- Added filter to skip text nodes inside anchor tags to prevent double-linking

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:32:19 -05:00
kennethreitz 3411dac4b8 Fix word study sidenote links to use chapter anchors
Updated link_bible_references() in commentary.py to link to
chapter view with anchors instead of dedicated verse pages.

This was the third place generating verse links that needed updating.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:24:34 -05:00
kennethreitz e66112ced2 Fix verse reference links to use chapter anchors
Updated link_verse_references_in_text() and verse_reference_to_url()
to link to chapter view with anchors instead of dedicated verse pages.

This keeps users in the reading flow when clicking cross-references.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:15:55 -05:00
kennethreitz b756fc930a Change cross-reference links to use chapter view with anchors
- Same chapter refs: use anchor (#verse-X)
- Different chapter/book refs: link to chapter view with anchor
- Keeps users in reading flow instead of jumping to dedicated verse page

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 12:05:28 -05:00
kennethreitz c5484934c1 Complete top verses commentary coverage (100%) and add CLI tool
- Add commentary for remaining 63 top verses across 22 books
- Create scripts/commentary_cli.py for managing commentary
- Update .claude/agents/commentary-generator.md with improved instructions
- Remove deprecated one-off scripts and temp files
- Clean up verse_commentary.json (now using per-book files)

Books updated: 1 John, 1 Peter, Daniel, Deuteronomy, Ecclesiastes,
Esther, Ezekiel, Hebrews, Isaiah, Jeremiah, Job, Joshua, Luke,
Malachi, Mark, Micah, Proverbs, Psalms, Ruth, Zechariah, Zephaniah

Total: 12,992 verse commentaries across 66 books

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 11:57:50 -05:00
kennethreitz b21d0cd50b Add commentary for top searched verses (Matthew, John, Psalms)
- Add 52 Matthew verses (Beatitudes, Lord's Prayer, Great Commission, etc.)
- Add 38 John verses (I am statements, Upper Room, High Priestly Prayer)
- Add 19 new Psalms verses (Psalm 1, 23, 27, 34, 37, 46, 91, 103, 119, 127, 133, 139)
- Add scripts/check_top_verses.py to track coverage of top 536 most-searched verses
- Add scripts/migrate_commentary.py to safely merge commentary into per-book files

Coverage improved: 61.8% of top verses now have commentary.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 11:23:50 -05:00
kennethreitz c624c89a54 Add comprehensive utility tests and clean up about page
- Add 87 new tests covering search, books, stories, biographies,
  red letter, helpers, commentary loader, interlinear, cross-references,
  PDF generation, topics, and reading plans modules
- Coverage improved from 75% to 78% (497 tests total)
- Add pytest-cov dependency for coverage reporting
- Remove Strong's Concordance, Study Guides, and Reading Plans
  links from the About page's Explore Further section

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 10:54:56 -05:00
kennethreitz c8e6d30d8e Fix import error in commentary route
Change `from .. import bible` to `from ..kjv import bible` to match
the correct import pattern used throughout the codebase.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 10:42:21 -05:00
kennethreitz d4a1587d3f Fix commentary index navigation - add books to template context
The /about/commentary page was missing the books list needed for sidebar
navigation. Added get_books() call to provide books context to template,
matching pattern used in other about pages.

Fixes navigation rendering on commentary index page.
2025-12-02 10:37:20 -05:00
kennethreitz 713a1152b2 Add commentary for 4 highly-searched Bible verses
Added comprehensive commentary for famous verses across Gospels and Epistles:
- 1 John 4:18: Perfect love casteth out fear
- Hebrews 13:5: I will never leave thee nor forsake thee
- Luke 6:31: Golden Rule (do unto others)
- Mark 10:27: With God all things are possible

Each includes Greek word studies, historical context, theological depth,
and 5 reflection questions.

Coverage of top famous Bible verses now at 100% (43/43 verses)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 10:29:57 -05:00
kennethreitz 5759f65356 Add commentary for 6 highly-searched Proverbs verses
Added comprehensive commentary for famous Proverbs passages:
- Proverbs 16:18: Pride goeth before destruction
- Proverbs 18:21: Death and life in power of the tongue
- Proverbs 27:17: Iron sharpeneth iron (friendship)
- Proverbs 31:10: Who can find a virtuous woman
- Proverbs 31:25: Strength and honour are her clothing
- Proverbs 31:30: Woman that feareth the LORD (climax)

Each includes Hebrew word studies, historical context, and reflection questions.
Proverbs coverage: 13 chapters, 27 verses (up from 21 verses)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 10:15:44 -05:00
kennethreitz 60636c372d Add scripts for famous verse commentary generation
Added supporting scripts for generating commentary on highly-searched verses:
- Scripts to add Psalm 110 (Messianic), 95-96, 98 (worship), 145-150 (doxology)
- Script templates for adding missing famous individual verses
- JSON data files with commentary content

Note: These scripts were used to achieve 127/150 Psalms chapters (84.7% coverage)
with all major commonly-searched Psalms now having commentary.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 10:06:00 -05:00
kennethreitz 2b2e1faa7b Add commentary for 10 highly-searched Psalms (117→127 chapters, 84.7%)
Added comprehensive commentary for the most commonly googled Psalms:
- Psalm 110: Most quoted OT passage in NT (Messianic, Melchizedek priesthood)
- Psalms 95, 96, 98: Worship psalms (O come let us sing, new song)
- Psalms 145-150: Final doxology ending with "Let everything that hath breath praise the LORD"

All famous/commonly searched Psalms now have coverage:
✓ Psalm 23 (The Lord is my shepherd)
✓ Psalm 91 (He that dwelleth in the secret place)
✓ Psalm 110 (The LORD said unto my Lord)
✓ Psalms 95-98 (Worship and new song)
✓ Psalms 145-150 (Final doxology)

Coverage: 127/150 chapters (84.7%), only 23 chapters remaining

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:54:51 -05:00
kennethreitz d22a89ae3a Add theological commentary for Psalms 145-150 (Final Doxology)
Comprehensive verse-by-verse commentary for the final psalms of the Psalter:
- Psalm 145 (6 verses): "Extol thee, my God, O king" - perpetual praise commitment
- Psalm 146 (4 verses): "Praise ye the LORD" - contrast of human vs divine help
- Psalm 147 (5 verses): "Great is our God" - theological affirmations
- Psalm 148 (4 verses): Cosmic call to praise from heavens to earth
- Psalm 149 (3 verses): New song in congregation of saints with eschatological vision
- Psalm 150 (3 verses): Final psalm of Psalter with universal call to praise

Each verse includes:
- Deep theological analysis with Hebrew word studies
- Historical context from ancient worship through post-exilic Judaism
- 5 reflective study questions for personal and communal exploration

The final verse (150:6) "Let every thing that hath breath praise the LORD" provides the ultimate theological summary of the entire Psalter.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:53:47 -05:00
kennethreitz c30525fc01 Fix Psalm 115:13 missing historical field - tests now pass
Added missing historical context for Psalm 115:13 covering:
- Post-exilic context and mockery from pagan nations
- Ancient Near Eastern social stratification
- Biblical theology of "fear of the LORD"

All verse commentary validation tests now passing.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:47:36 -05:00
kennethreitz ef428baee2 Add commentary for 76 additional Psalms chapters (41→117 chapters)
Generated comprehensive theological commentary for key verses across 76 Psalms:
- Psalms 2-5, 7-17, 19-21, 25-26, 28-30, 32-33, 35, 39-45, 47, 51-54, 57, 59-61, 63-71, 73-85, 87-88, 90, 92, 100-102, 104, 114-117, 138, 140, 142-143

Each commentary includes:
- Analysis: Hebrew word studies, theological exposition, Christological connections
- Historical context: Ancient Near Eastern background, biblical theology
- Reflection questions: 3-5 application-focused questions per verse

Coverage increased from 41 chapters (27%) to 117 chapters (78%)
Remaining: 33 chapters still need commentary

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 09:42:29 -05:00
kennethreitz efab66dcdc psalms improvements 2025-12-02 01:21:55 -05:00
kennethreitz e2905cf9fe Redesign sidebar navigation and add current page highlighting
- Cleaner link styling with rounded corners and hover backgrounds
- CSS triangle expand arrows instead of text characters
- Refined typography, spacing, and search box styling
- Add 'n' key to activate sidebar navigation (j/k to navigate, Enter to select)
- Highlight current page in green on sidebar links

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 00:45:38 -05:00
kennethreitz 6a9cebae22 Improve keyboard navigation, PDFs, and add non-writing prophets
- Add KJVNav.initSimpleNav() for DRY keyboard navigation across site
- Fix broken keyboard nav on 10+ resource pages (orphaned JS code)
- Left arrow on chapters now does browser back
- Add non-writing prophets: Moses, Samuel, Nathan, Elijah, Elisha
- Redesign chapter PDFs with glossary, cross-refs, book intro
- Style sidenotes as inline notes in all PDFs (fix checkbox squares)
- More liberal word studies in PDF output (for_pdf parameter)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 00:28:25 -05:00
kennethreitz 7606fa8c3a Remove smooth scrolling animation from all keyboard navigation
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>
2025-12-02 00:02:24 -05:00
kennethreitz d0a53868f7 Add keyboard navigation to about page
- j/k or arrows to navigate between paragraphs
- Space to read selected paragraph aloud
- Escape to clear selection
- Uses KJVNav helper for viewport-aware navigation
- Green outline selection style matching site design

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:59:35 -05:00
kennethreitz 28f37f68c3 Fix dark mode conflict when OS is dark but site theme is light
- Wrap prefers-color-scheme dark styles with html:not([data-theme="light"])
- Fixes interlinear text being white on yellowish background
- Updated verse.html, chapter_interlinear.html, tufte.css, base.html,
  and family-tree-expansions.css

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:51:57 -05:00
kennethreitz 2163d56185 Add !important to mobile sidenote display rules
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:41:22 -05:00
kennethreitz f61a78a6c5 Hide sidenotes on mobile by default, expand on click
- Add mobile media query to hide sidenotes by default
- Show sidenotes when checkbox is clicked (tap on number)
- Style expanded sidenotes with background and border for clarity

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:33:49 -05:00
kennethreitz a4f306a7c9 Remove hidden page notice from stats page
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:26:45 -05:00
kennethreitz f436560701 Add /api/stats endpoint for site statistics
- Add cached _get_site_stats() function with comprehensive metrics
- Create GET /api/stats endpoint with OpenAPI documentation
- Include bible, commentary, cross-references, red letter, study resources,
  language tools, and data statistics
- Add 8 tests for the new endpoint

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:23:04 -05:00
kennethreitz 16a684d714 Add About KJV Study link to homepage footer
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 23:19:37 -05:00
kennethreitz b520698453 Pass books to about page templates for sidebar rendering
- Add books to /about route
- Add books to /about/stats route
- Add books to /about/cross-references route

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 19:30:14 -05:00
kennethreitz 9549499d79 Remove non-working keyboard nav from about page 2025-12-01 19:12:20 -05:00
kennethreitz b11f6e9297 Add padding-bottom to asterism to prevent cutoff 2025-12-01 19:06:04 -05:00
kennethreitz 513577c143 Adjust asterism margin-top to -0.5rem 2025-12-01 19:05:37 -05:00
kennethreitz c26c603feb Add bottom margin to asterism in nav 2025-12-01 19:05:16 -05:00
kennethreitz 1855b3faca Make asterism smaller in nav 2025-12-01 19:04:55 -05:00
kennethreitz 0f11085d4e Move asterism directly below About KJV Study link 2025-12-01 19:04:35 -05:00
kennethreitz 97ff899a1f Remove newthought from Privacy section 2025-12-01 19:02:37 -05:00
kennethreitz 03eeeaabb5 Reduce newthought span to just 'KJV Study' in Data & Sources 2025-12-01 19:02:10 -05:00
kennethreitz e011a2789e Remove newthought from Free & Open Source section 2025-12-01 19:01:32 -05:00
kennethreitz 685a4103ea Add creedal newthought styling to theological declarations
- We confess, We worship, We affirm in small-caps
- Gives confessional, creedal feel to theological section

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 19:01:11 -05:00
kennethreitz cf8730a9a4 Restructure about page opening with creator intro
- Open with Kenneth Reitz creation story
- Merge creator section into opening paragraph
- Remove separate Creator section and TOC link
- Add no-arrow class to hide external link arrow on name

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:58:28 -05:00
kennethreitz f016a939fd Polish about page with newthought lead-ins
- Add Tufte-style newthought small-caps to section openings
- Remove analytics opt-out mention from privacy section
- Remove verbose paragraph from creator section

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:56:20 -05:00
kennethreitz 45659aff00 Move red letters toggle from nav to keyboard shortcut
- Remove "Disable Red Letters" link from sidebar navigation
- Add Shift+R keyboard shortcut to toggle red letters
- Update keyboard help modal with new shortcut

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:47:48 -05:00
kennethreitz f12ea31a7c Add tests for about pages
- TestAboutPages: 8 tests for main about page (TOC, sidenotes, keyboard nav, etc.)
- TestAboutStatsPage: 5 tests for stats page
- TestAboutCommentaryIndex: 4 tests for commentary index
- TestAboutCrossReferencesIndex: 4 tests for cross-references index

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:43:31 -05:00
kennethreitz d221aa95a3 Fix verse link regex matching 'As Matthew' as book name 2025-12-01 18:40:41 -05:00
kennethreitz 825656e6f9 Enhance About page with sidenotes, TOC, and keyboard navigation
- Add Tufte-style sidenotes with theological depth
- Add table of contents with two-column layout
- Implement j/k keyboard navigation using KJVNav pattern
- Promote h3 headings to h2 for cleaner hierarchy
- Remove "Our Purpose" heading, make intro text flow naturally

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:39:11 -05:00
kennethreitz 92839d36fc Completely rewrite About page with richer content and better prose
Major improvements throughout:

- Our Purpose: Establishes mission to serve the church with scholarly,
  theologically faithful resources; emphasizes accessibility
- Free & Open Source: Compelling case for open source with Matthew 10:8
  "Freely ye have received, freely give"
- Data & Sources: Rich historical context on KJV (47 scholars, 6 committees,
  1769 Blayney Edition), Treasury of Scripture Knowledge, Strong's (1890)
- Creator: Concise, humble, links to GitHub for engagement
- Privacy: Powerful statement - "Your study of Scripture is between you
  and God" and "The Word of God is not for sale"
- Explore Further: Clean links to all major resources
- Changed closing quote to John 1:1 (ties to Logos theology section)

Removed redundant sections, tightened prose, maintained theological
depth while improving readability. Page now has consistent scholarly
voice throughout.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:31:06 -05:00
kennethreitz 4432a7f096 Rewrite theological section with Hebrew/Greek and deeper content
After reviewing the actual commentary (Genesis 1:1, John 1:1, Isaiah 53:5,
Psalm 119:105, Matthew 28:19), rewrote the about page theology section
to accurately reflect the rich content found in the verse analysis:

- Added Hebrew/Greek terminology with original script (θεόπνευστος,
  דָּבָר, מְחֹלָל, λόγος, בְּרֵאשִׁית, etc.)
- Strong inerrancy & sufficiency claims matching commentary
- Explicit substitutionary atonement doctrine from Isaiah 53
- Trinitarian theology drawn from Matthew 28:19 commentary
- Christ's eternal deity from John 1:1 analysis
- Christocentric interpretation methodology
- Rejects rationalistic liberalism and mystical subjectivism
- Ends with Soli Deo Gloria

This now accurately represents the scholarly depth and theological
commitments found throughout the verse-by-verse commentary.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:28:03 -05:00
kennethreitz 0e425335fa Align theological claims with actual commentary content
After reviewing the commentary, adjusted the about page to be more
conservative and match what's actually taught in the verse analysis:

- Removed "and believer" from creator description (too performative)
- Scaled back from explicit Reformed distinctives (TULIP, covenant theology)
- Kept core orthodox doctrines: biblical authority, Trinity, salvation
  by grace through faith alone, Christ-centered interpretation
- Commentary emphasizes grace/faith but doesn't engage deeply with
  election, particular redemption, or other Reformed distinctives

Now the about page accurately represents the theological content
visitors will find in the actual commentary.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 18:21:05 -05:00