From 97877b22d6ed07ddbb48271b91387cc0b6abeba4 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Fri, 5 Dec 2025 08:37:17 -0500 Subject: [PATCH] Show first 3 cross-refs collapsed, expand for more MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cross-references now show first 3 refs by default with "+N" indicator. Clicking expands to show all references. Simplifies the template by flattening grouped refs into a single list. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- kjvstudy_org/routes/bible.py | 4 ++-- kjvstudy_org/templates/chapter.html | 15 +++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/kjvstudy_org/routes/bible.py b/kjvstudy_org/routes/bible.py index c8d1a62..011bc22 100644 --- a/kjvstudy_org/routes/bible.py +++ b/kjvstudy_org/routes/bible.py @@ -255,13 +255,13 @@ async def read_chapter(request: Request, book: str, chapter: int): commentaries[verse.verse] = commentary - # Cross-refs: always expanded (word studies are handled per-study above) + # Cross-refs: collapsed by default, shows first 3 refs with "+N" to expand for verse_num in [v.verse for v in verses]: commentary = commentaries.get(verse_num) if not commentary: continue if commentary.get('cross_reference_groups'): - commentary['xref_auto_expand'] = True + commentary['xref_auto_expand'] = False # Generate chapter overview chapter_overview = generate_chapter_overview(book, chapter, verses) diff --git a/kjvstudy_org/templates/chapter.html b/kjvstudy_org/templates/chapter.html index 8ee0f80..93ccef1 100644 --- a/kjvstudy_org/templates/chapter.html +++ b/kjvstudy_org/templates/chapter.html @@ -464,12 +464,19 @@ document.body.dataset.resourceReader = 'false'; {{ verse.verse }} {{ verse.text | red_letter(book, chapter, verse.verse) | inject_word_markers(commentary.word_studies if commentary else [], verse.verse, commentary.word_study_auto_expand if commentary else false) | link_names | safe }} {% if commentary %} {% if commentary.cross_reference_groups %} - {% set total_refs = commentary.cross_reference_groups | sum(attribute='refs', start=[]) | length %} - {% set preview_count = [commentary.cross_reference_groups|length, 3]|min %} - {% set hidden_count = total_refs - preview_count %} + {# Flatten all refs into a single list #} + {% set ns = namespace(all_refs=[]) %} + {% for group in commentary.cross_reference_groups %} + {% for ref in group.refs %} + {% set ns.all_refs = ns.all_refs + [ref] %} + {% endfor %} + {% endfor %} + {% set total_refs = ns.all_refs | length %} + {% set preview_refs = ns.all_refs[:3] %} + {% set extra_refs = ns.all_refs[3:] %} - {% for group in commentary.cross_reference_groups[:3] %}{{ group.description }}: {{ group.refs[0].text }}{% if group.refs|length > 1 %}{% if hidden_count >= 3 %}; {% for ref in group.refs[1:] %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %}{% else %}; {% for ref in group.refs[1:] %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %}{% endif %}{% endif %}{% if not loop.last %}. {% endif %}{% endfor %}{% if commentary.cross_reference_groups|length > 3 %}{% if hidden_count >= 3 %}. {% for group in commentary.cross_reference_groups[3:] %}{{ group.description }}: {% for ref in group.refs %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %}{% if not loop.last %}. {% endif %}{% endfor %}{% else %}. {% for group in commentary.cross_reference_groups[3:] %}{{ group.description }}: {% for ref in group.refs %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %}{% if not loop.last %}. {% endif %}{% endfor %}{% endif %}{% endif %}{% if hidden_count >= 3 %} +{{ hidden_count }}{% endif %} + {% for ref in preview_refs %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %}{% if extra_refs %}; {% for ref in extra_refs %}{{ ref.text }}{% if not loop.last %}; {% endif %}{% endfor %} +{{ extra_refs|length }}{% endif %} {% endif %} {% endif %}