Restore inject_word_markers filter for word studies

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 <noreply@anthropic.com>
This commit is contained in:
2025-11-24 20:39:19 -05:00
parent 3492bcf182
commit bcae0d8832
2 changed files with 24 additions and 1 deletions
+23
View File
@@ -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'<label for="sn-{verse_num}-word-{idx}" class="margin-toggle sidenote-number"></label><input type="checkbox" id="sn-{verse_num}-word-{idx}" class="margin-toggle"/><span class="sidenote"><strong>{word}:</strong> {study["term"]} (<em>{study["translit"]}</em>). {study["note"]}</span>'
# 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"""
+1 -1
View File
@@ -169,7 +169,7 @@ hr::before {
{% for verse in verses %}
{% set commentary = commentaries[verse.verse] if commentaries and verse.verse in commentaries else none %}
<p id="verse-{{ verse.verse }}">
<a href="/book/{{ book }}/chapter/{{ chapter }}/verse/{{ verse.verse }}" class="verse-number-link">{{ verse.verse }}</a> {{ verse.text | link_names | safe }}
<a href="/book/{{ book }}/chapter/{{ chapter }}/verse/{{ verse.verse }}" class="verse-number-link">{{ verse.verse }}</a> {{ 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 %}