From d1df9b9b840faa44bf9c65c22599fb10cd155091 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 23 Nov 2025 21:34:38 -0500 Subject: [PATCH] Fix verse range extraction for tooltips MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- kjvstudy_org/templates/base.html | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/kjvstudy_org/templates/base.html b/kjvstudy_org/templates/base.html index d9162db..e4c293d 100644 --- a/kjvstudy_org/templates/base.html +++ b/kjvstudy_org/templates/base.html @@ -1385,15 +1385,29 @@ var verseEndNum = parseInt(verseEnd); for (var i = verseStart; i <= verseEndNum; i++) { - var verseElement = doc.querySelector('#verse-' + i + ' .verse-text, [data-verse="' + i + '"] .verse-text'); - if (verseElement) { - verses.push(verseElement.textContent.trim()); + var verseP = doc.querySelector('#verse-' + i); + if (verseP) { + // Clone the element to avoid modifying the original + var clone = verseP.cloneNode(true); + + // Remove verse number link + var verseLink = clone.querySelector('.verse-number-link'); + if (verseLink) verseLink.remove(); + + // Remove sidenotes and marginnotes + var notes = clone.querySelectorAll('.sidenote, .marginnote, .margin-toggle, label.margin-toggle'); + notes.forEach(function(note) { note.remove(); }); + + var text = clone.textContent.trim(); + if (text) { + verses.push(text); + } } } verseText = verses.length > 0 ? verses.join(' ') : 'Verse range not found'; } else { - // Extract single verse text + // Extract single verse text from verse page var verseElement = doc.querySelector('.verse-text'); if (!verseElement) { // Try alternative selectors