From bcae0d88322c6852f03c072b41fff388c5ca8da5 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 24 Nov 2025 20:39:19 -0500 Subject: [PATCH] Restore inject_word_markers filter for word studies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-add the filter function that was accidentally removed during refactoring. This filter injects sidenote markers into verse text for word study annotations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- kjvstudy_org/server.py | 23 +++++++++++++++++++++++ kjvstudy_org/templates/chapter.html | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/kjvstudy_org/server.py b/kjvstudy_org/server.py index bd17f5b..6508d21 100644 --- a/kjvstudy_org/server.py +++ b/kjvstudy_org/server.py @@ -937,6 +937,29 @@ def link_verse_references_in_text(text): templates.env.filters['link_verses'] = link_verse_references_in_text +def inject_word_markers(text, word_studies, verse_num): + """Inject sidenote markers into verse text next to annotated words""" + if not word_studies: + return text + + # Process each word study + for idx, study in enumerate(word_studies, 1): + word = study['word'] + # Create the sidenote marker HTML + marker = f'{word}: {study["term"]} ({study["translit"]}). {study["note"]}' + + # Find and replace the word with word + marker + # Use a more precise replacement to avoid replacing partial matches + import re + # Match the word with word boundaries, case-insensitive + pattern = re.compile(r'\b(' + re.escape(word) + r')\b', re.IGNORECASE) + text = pattern.sub(r'\1' + marker, text, count=1) + + return text + +templates.env.filters['inject_word_markers'] = inject_word_markers + + @app.get("/biblical-timeline", response_class=HTMLResponse) def biblical_timeline_page(request: Request): """Biblical timeline page showing major biblical events chronologically""" diff --git a/kjvstudy_org/templates/chapter.html b/kjvstudy_org/templates/chapter.html index 4f3e373..1eb4112 100644 --- a/kjvstudy_org/templates/chapter.html +++ b/kjvstudy_org/templates/chapter.html @@ -169,7 +169,7 @@ hr::before { {% for verse in verses %} {% set commentary = commentaries[verse.verse] if commentaries and verse.verse in commentaries else none %}

- {{ verse.verse }} {{ verse.text | link_names | safe }} + {{ verse.verse }} {{ verse.text | inject_word_markers(commentary.word_studies if commentary else [], verse.verse) | link_names | safe }} {% if commentary %} {% if commentary.cross_references %} {% for ref in commentary.cross_references %}