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 %}