- Auto-enable large font mode on mobile (base.html)
- Add swipe gestures for chapter navigation
- Improve verse number tap targets with background
- Make family tree pages full width on mobile
- Enhance homepage mobile layout with larger touch targets
- Increase text sizes and line heights for readability
- Remove sidenote tap target styling per user request
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Full width poetry verses on small screens (no 55% constraint)
- Larger verse text on mobile (1.2rem, 1.8 line-height)
- Remove underlines from verse numbers on mobile
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Validates:
- books dict contains only valid poetry books
- poetry_chapters are sorted and unique
- stanza_breaks have valid chapter keys with sorted verse lists
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Extract stanza break data from eBible USFX (199 breaks across 127 psalms)
- Add poetry_loader utility to identify poetry books and stanza breaks
- Render Psalms with verse-per-line layout and ❧ ornament at stanza breaks
- Add stanza break styling to chapter and book PDF exports
- Web view: decorative hedera with subtle line divider
- PDF view: simple horizontal rule for stanza breaks
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add section headings to chapter and book PDF exports
- Sort cross-references numerically (3:7 before 3:14)
- Condense same-book refs in PDFs (Revelation 1:20; 1:16; 3:1)
- Remove link_names/link_verses filters from all PDF templates
- Add strip_links filter for word study notes in PDFs
- Bold cross-reference descriptions (e.g., "Parallel theme")
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixed biblical_angels, biblical_covenants, biblical_festivals,
biblical_prophets, names_of_god, parables, parable_detail, and
their PDF variants to apply link_verses | link_names filters.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The link_verses filter now handles chapter references without
verse numbers, linking "Isaiah 53" to /book/Isaiah/chapter/53.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The link_names filter was converting book names like "Daniel" to
family tree links before link_verses could match them as verse
references. Now link_verses runs first so "Daniel (8:16, 9:21)"
gets properly linked before "Daniel" becomes a person link.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- link_verses filter now handles "Daniel (8:16, 9:21)" format
- Reduced resource detail column width to 55% for sidenote room
- Removed right padding on article to prevent sidenote cutoff
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Sort cross-ref groups by theological priority (Prophecy/Covenant
first, generic "Parallel theme" last)
- Show up to 5 refs without expansion (was 3)
- Show all if 6 or fewer to avoid "+1"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Cross-refs from the current book now appear first, followed by
other books in canonical order. E.g., viewing John shows John
refs first, then Genesis → Revelation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Instead of alphabetical sorting, cross-references now appear in
biblical book order. Isaiah refs come before Matthew refs, which
come before Revelation refs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Groups same-book references together so instead of jumping like
"Isaiah 44:6, Revelation 22:13, Isaiah 41:4" it shows
"Isaiah 44:6, 41:4, Revelation 22:13".
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Adds 2,543 section headings (e.g., "The Sermon on the Mount",
"The Suffering Servant") that display before verses in chapter
pages. Headings are loaded from JSON and rendered as styled h3
elements in the Tufte typography style.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Instead of "Revelation 1:20; Revelation 1:16; Revelation 3:7"
now shows "Revelation 1:20, 1:16, 3:7" - much cleaner.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
If the next verse is 150+ characters, there's plenty of margin space
for the sidenote, so auto-expand cross-refs. If next verse is short,
keep collapsed to avoid overflow.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Keep group descriptions (Prophecy:, Related:, etc.) while still
showing first 3-4 refs collapsed with "+N" expand for more.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
If there are 4 or fewer refs, show them all without expand.
Only use the collapsed "+N" pattern when there are 5+ refs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Cross-references now show first 3 refs by default with "+N" indicator.
Clicking expands to show all references. Simplifies the template by
flattening grouped refs into a single list.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
First time a theological term appears in a chapter, show it expanded
so readers see the definition. Subsequent occurrences of the same word
are collapsed since the reader already knows the meaning.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Limit word study sidenotes to ~40 key theological terms like god, lord,
salvation, grace, covenant, etc. Excludes common words like walk, call,
dwell, bread that don't warrant study annotations on every occurrence.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Track consecutive expansions, force collapse after 2 in a row
- If verse has both word study and xref, only expand xref
- Prefer cross-refs over word studies (more useful for study)
- Creates visual rhythm instead of wall of expanded content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Long verses have more margin room, so expand more freely (buffer=1).
Short verses have less margin room, need more clearance (buffer=3).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Two-pass approach: first collect all sidenotes, then decide expand
based on looking both ahead and behind. Expands when there's 2 verses
of space on both sides, collapses when crowded.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Word studies now auto-expand when there's room (2+ verses since last
word study), matching cross-ref behavior.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Reduced cooldown from 3 verses to 1 - only collapse when consecutive
verses both have cross-refs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Cross-references now auto-expand when there's room (3+ verses since
last xref), but stay collapsed when verses are close together to
prevent margin overload.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
When verses are close together (within 3 verses), show condensed
"+N refs" instead of full cross-reference groups to prevent
margin overload.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>