Commit Graph

61 Commits

Author SHA1 Message Date
kennethreitz 1e1d561c26 Add Open Graph image for better social media previews
Created a clean, Tufte-style og-image.png (1200x630) featuring "KJV Study" branding. This eliminates the 404 spam in logs from bots and social media crawlers trying to fetch the missing image, and provides proper preview images when the site is shared on social media platforms.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 12:23:21 -05:00
kennethreitz 3493c43144 Fix verse sitemap generation - suppress WeasyPrint warnings
The sitemap-verses.xml file was contaminated with WeasyPrint import
warnings, causing "Document is empty" errors in Google Search Console.

Fixes:
- Suppress stdout/stderr during imports to prevent warnings in output
- Add error handling to sitemap-verses endpoint
- Regenerate clean sitemap-verses.xml (6.3MB, 31,102 verses)

The file now starts with proper XML declaration instead of error messages.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 19:37:34 -05:00
kennethreitz e931dae83f Implement static verse sitemap for maximum SEO discoverability
Previously, verse URLs (31,102 pages) were excluded from the sitemap
to improve generation speed. This left SEO value on the table - Google
prioritizes URLs in sitemaps for crawling, and verse pages are 3-4
clicks deep, making discovery slow.

Solution: Static sitemap + sitemap index
-----------------------------------------
- Created generate_verse_sitemap.py to generate verse sitemap once
- Generated sitemap-verses.xml (6 MB, 31,102 verse URLs)
- Converted /sitemap.xml to a sitemap index
- Split into sitemap-main.xml (dynamic) and sitemap-verses.xml (static)

Benefits:
---------
- Zero runtime cost for verse sitemap (served as static file)
- Full SEO coverage of all 31k verse pages
- Google gets complete URL list immediately
- Main sitemap stays fast (no verse URL generation)
- CDN can cache verse sitemap indefinitely

Why this works:
---------------
Verse URLs are completely static - Genesis 1:1 will always be at the
same URL. The Bible hasn't changed in 2000+ years, so these URLs
never change. Generate once, commit to repo, infinite caching.

This trades "optimize build speed" for "optimize discoverability."
Build speed is a one-time cost; search rankings compound over time.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 19:22:39 -05:00
kennethreitz 9ec7885dce Make PDF generation async to prevent event loop blocking
Convert all PDF generation endpoints from synchronous to async to
prevent blocking FastAPI's event loop during CPU-intensive operations.

Changes:
- Add render_html_to_pdf_async() using ThreadPoolExecutor (2 workers)
- Convert all PDF endpoints to async def
- Use await render_html_to_pdf_async() instead of blocking calls
- Keep render_html_to_pdf() for backward compatibility

Performance impact:
- Prevents event loop blocking during PDF generation
- Allows other requests to be processed while PDFs are rendering
- Limits concurrent PDF generation to 2 workers to control CPU usage

Files updated:
- kjvstudy_org/utils/pdf.py (new async implementation)
- kjvstudy_org/server.py (5 PDF endpoints)
- kjvstudy_org/routes/api.py (4 PDF endpoints)
- kjvstudy_org/routes/resources.py (7 PDF endpoints)
- kjvstudy_org/routes/stories.py (2 PDF endpoints)
- kjvstudy_org/routes/study_guides.py (1 PDF endpoint)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 11:44:35 -05:00
kennethreitz f4c53d4170 Revert "Remove max-height constraint on sidenote numbers"
This reverts commit 24e69f0397.
2025-11-23 19:39:25 -05:00
kennethreitz 24e69f0397 Remove max-height constraint on sidenote numbers
Allow sidenote numbers to display at their natural height instead
of being constrained to 2rem.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 19:39:08 -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 981e8a7405 Update to latest Tufte CSS with dark mode support
- Updated to latest version from tufte-css repository
- Kept existing font paths (/static/fonts/)
- Adds dark mode support via prefers-color-scheme
- Minor improvements and updates from upstream

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 17:18:55 -05:00
kennethreitz 9fe291f7af updates 2025-11-11 12:24:34 -05:00
kennethreitz 417c392b26 Remove Scofield commentary and sidebar
The commit removes the Scofield commentary feature and sidebar navigation, switching to a cleaner mobile-first layout. The main content is now centered with a max-width, and navigation is handled through a bottom bar.
2025-06-02 12:49:31 -04:00
kennethreitz b422984fa2 Add custom scrollbar and scroll behavior to sidebar
The changes add a custom scrollbar and enhanced scroll functionality to
the sidebar, with cross-browser support, accessibility features, and
device-specific optimizations.
2025-06-01 12:53:29 -04:00
kennethreitz 8cda9e84db Remove feature documentation files
The changes remove several documentation files and simplify the iPad sidebar behavior to always show on non-mobile devices.

Key changes:
- Remove unused documentation markdown files
- Remove keyboard shortcut to toggle sidebar
- Make sidebar always visible on non-mobile devices
- Fix CSS and JavaScript to prevent sidebar from hiding
- Simplify sidebar positioning and transitions
2025-06-01 12:43:37 -04:00
kennethreitz 5ad6ef495a Add iPad and tablet keyboard navigation support
This commit adds comprehensive keyboard and touch support for iPad and tablet
devices, including enhanced navigation shortcuts, improved focus indicators,
and optimized sidebar behavior.

The changes include:

- Cmd+B shortcut for sidebar toggle on tablets
- Enhanced keyboard navigation with arrow keys
- Improved focus styles and touch targets
- Optimized layouts for different iPad models
- Better support for hybrid touch/keyboard usage
- Accessibility improvements for
2025-06-01 12:27:02 -04:00
kennethreitz 0076a9a01d additions 2025-05-30 20:24:06 -04:00
kennethreitz 64356ad018 Add GEDCOM parser for family tree visualization 2025-05-30 20:20:44 -04:00
kennethreitz fda2680c54 Add FamilySearch-style interactive family tree
The commit adds a new FamilySearch-style interactive family tree visualization with person cards, smooth animations, and hierarchical layout. Includes navigation controls, multiple view modes, and responsive design.
2025-05-30 20:18:45 -04:00
kennethreitz 13fba60637 Add comprehensive family tree feature expansion 2025-05-30 19:53:20 -04:00
kennethreitz 7c92e5ce18 Add family tree visualization features and analytics
The changes introduce three new JavaScript files that add comprehensive family tree visualization and analysis capabilities:

1. Advanced tree layouts with multiple visualization modes (hierarchical, radial, force-directed, timeline, and circular pedigree)
2. Detailed analytics and statistics with interactive charts
3. Advanced search functionality with tree highlighting and navigation features

The additions provide users with richer ways to explore and analyze biblical family relationships.
2025-05-30 19:46:13 -04:00
kennethreitz f33371ffe3 Add Scofield Commentary JSON data
The reason I chose this commit message:
- Clearly states what is being added (Scofield Commentary data)
- Specifies the format (JSON)
- Short and to the point
- No need for a message body since the subject line fully captures the change
2025-05-30 16:11:51 -04:00
kennethreitz 98fd3a7cc1 back it uppp 2025-05-30 15:39:17 -04:00
kennethreitz 73ffb273e2 changes 2025-05-30 15:25:32 -04:00
kennethreitz 322571e535 Create adameve.ged 2025-05-30 15:14:15 -04:00
kennethreitz 6d0781de94 Remove biblical maps feature
Delete map functionality and associated templates/files
2025-05-30 14:36:11 -04:00
kennethreitz 80b4738422 Refactor biblical maps for better reliability
This commit simplifies and improves the biblical maps implementation by:

- Replacing complex client-side map with clean tile-based solution
- Adding fallback tile providers for better reliability
- Simplifying markers and popup styling
- Improving error handling and user feedback
- Using circle markers instead of custom icons for better performance
- Streamlining location data structure and management

The changes make the maps more robust while maintaining core functionality.
2025-05-30 14:18:37 -04:00
kennethreitz 5abadcd165 Add dark theme support and new biblical locations
The commit adds dark theme support for the biblical maps, including a new
CARTO dark basemap option. Also adds several new biblical locations like
Hebron, Samaria, Caesarea, Philippi and Thessalonica. Updates popup
styling to match dark theme colors and moves CSS to template file.
2025-05-30 13:49:47 -04:00
kennethreitz 5e2edcd822 Add interactive biblical maps feature 2025-05-30 13:40:16 -04:00
kennethreitz 227d0f2e53 Update style.css 2025-05-30 13:10:32 -04:00
kennethreitz b7863e12c7 Improve mobile navigation and layout
The changes remove the mobile sidebar toggle menu in favor of a simpler
navigation approach, while also organizing imports and removing unused CSS
and JavaScript.
2025-05-30 12:50:36 -04:00
kennethreitz e02c7974c5 Disable sidebar on mobile and fix responsive behavior
Remove transform-based mobile sidebar in favor of complete hiding.
Update breakpoints and remove unnecessary mobile touch handlers.
2025-05-27 09:47:17 -04:00
kennethreitz d6f2bbea39 Update verse number styling for better visibility
Increase font size and weight, change color to primary-light across
all breakpoints, and adjust right margin for improved readability
2025-05-26 21:07:46 -04:00
kennethreitz 03b3cc363b Update verse number styling and color variables
- Change color from --text-muted to --text-secondary
- Increase font size from 0.7rem to 0.75rem
- Adjust margin-right from 0.15rem to 0.2rem
- Update hover state to use --text-primary
2025-05-26 21:07:12 -04:00
kennethreitz 37125b286b Add Bible book categories legend styling 2025-05-26 21:04:22 -04:00
kennethreitz ea71c9c2aa Add Bible book category color coding and enhanced hover effects
Introduces color-coded styling for different Bible book categories
(Torah, Historical, Wisdom, Prophets, Gospels, etc.) with distinct
left borders and hover states. Also improves book card hover animations
with animated top border and enhanced shadows.
2025-05-26 21:03:24 -04:00
kennethreitz c1b25f5959 Update book template typography and color scheme
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.
2025-05-26 20:59:32 -04:00
kennethreitz f556cb79eb Fix CSS syntax error and update border colors
Removes malformed border-text-secondary line and updates hover states
to use consistent primary colors instead of secondary/border colors.
2025-05-26 20:56:44 -04:00
kennethreitz db5cadb520 Update color scheme to dark purple theme
Switch from light theme to dark background with purple accents.
Update sidebar with gradient background and improved hover effects.
Enhance button and navigation styling for better contrast.
2025-05-26 20:56:32 -04:00
kennethreitz 69e26fe5d1 Center commentary container and improve responsive layout
Add max-width constraint and auto margins to center the commentary
container. Update mobile and tablet breakpoints to use consistent
centering approach and adjust padding values.
2025-05-26 20:51:18 -04:00
kennethreitz a18d5ae3a4 Add Crimson Text font to commentary styles and templates
Applied Crimson Text serif font throughout commentary styles and
chapter template to replace previous font variables and ensure
consistent typography across all text elements including headers,
navigation, verse numbers, and body text.
2025-05-26 20:48:03 -04:00
kennethreitz ccf9cdd9cd Add Crimson Text font family to loading states and inputs 2025-05-26 20:46:34 -04:00
kennethreitz 49ca0aa570 Switch from dark theme to light theme with Crimson Text font
Update CSS custom properties from dark purple/black theme to clean
light theme with white background and dark text. Replace font stack
with Crimson Text serif throughout. Reduce font sizes, shadows, and
spacing for cleaner appearance. Simplify styling by removing gradients
and complex effects.
2025-05-26 20:46:19 -04:00
kennethreitz f46726cdc3 Reformat CSS and HTML with consistent indentation and spacing
This commit standardizes the code formatting throughout the CSS and HTML files using 4-space indentation and proper line breaks for improved readability and maintainability.

Changes include:
- Reformatted CSS custom properties with consistent alignment
- Fixed long CSS property lines with proper line breaks
- Standardized HTML attribute formatting with proper indentation
- Updated template syntax formatting for better readability
- Maintained semantic structure while improving visual consistency
2025-05-26 20:30:42 -04:00
kennethreitz 8f9f3e6934 Override external styles affecting verse numbers
Added comprehensive CSS resets with !important declarations to prevent
third-party stylesheets from interfering with verse number appearance.
Includes pseudo-element resets and specific overrides for heading
contexts across all responsive breakpoints.
2025-05-26 20:29:39 -04:00
kennethreitz 43eb95af08 Add chapter text styling with improved layout
Increases container width to 900px, adds dedicated .chapter-text
styling with serif font and justified text, and includes responsive
mobile adjustments for better readability.
2025-05-26 20:26:54 -04:00
kennethreitz c7f5db3b8a Redesign verse layout to use inline text format
Replace block-style verse layout with inline paragraph format.
Verse numbers now appear as superscript within flowing text rather
than as separate positioned elements with borders and backgrounds.
2025-05-26 20:26:29 -04:00
kennethreitz c13f9dbd84 Fix missing closing tag in commentary container 2025-05-26 20:24:32 -04:00
kennethreitz 6f6a404ba6 Add responsive layout for commentary breadcrumb and navigation 2025-05-26 20:24:13 -04:00
kennethreitz c02ef17e9a Update commentary layout with sidebar spacing
Adjust commentary container to account for sidebar width by adding
left margin and width calculations. Includes responsive overrides
for mobile and tablet breakpoints.
2025-05-26 20:23:46 -04:00
kennethreitz 9371c5e896 Add responsive tooltip styles for tablet and desktop 2025-05-26 20:20:14 -04:00
kennethreitz aa44e57756 Improve tooltip styling and readability
Increase padding, font size, and width constraints for better text
display and user experience across both main CSS and book template
2025-05-26 20:19:26 -04:00