mirror of
https://github.com/kennethreitz/kjvstudy.org.git
synced 2026-06-05 23:00:16 +00:00
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:
@@ -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"""
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
Reference in New Issue
Block a user