From ec7fcf91ef15d67d8bb13b26cb119c6bf56f6279 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Tue, 2 Dec 2025 12:32:19 -0500 Subject: [PATCH] Fix site-wide verse linking to use chapter anchors and skip already-linked content MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- kjvstudy_org/templates/base.html | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/kjvstudy_org/templates/base.html b/kjvstudy_org/templates/base.html index b7e1ba5..42088e1 100644 --- a/kjvstudy_org/templates/base.html +++ b/kjvstudy_org/templates/base.html @@ -2573,8 +2573,16 @@ function linkVerseReferences(element) { if (!element) return; - // Get all text nodes - const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false); + // Get all text nodes, but skip those inside anchors (already linked) + const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, { + acceptNode: function(node) { + // Skip text nodes that are inside anchor tags (already linked) + if (node.parentNode && node.parentNode.tagName === 'A') { + return NodeFilter.FILTER_REJECT; + } + return NodeFilter.FILTER_ACCEPT; + } + }, false); const textNodes = []; let node; while (node = walker.nextNode()) { @@ -2607,7 +2615,8 @@ if (verseEnd) { return '' + book + ' ' + chapter + ':' + verseStart + '-' + verseEnd + ''; } else { - return '' + book + ' ' + chapter + ':' + verseStart + ''; + // Use chapter anchor instead of verse page + return '' + book + ' ' + chapter + ':' + verseStart + ''; } } return verseRef; @@ -2623,7 +2632,8 @@ if (verseEnd) { return '' + match + ''; } else { - return '' + match + ''; + // Use chapter anchor instead of verse page + return '' + match + ''; } });