make_scripture.py: Fix verse selection

This commit is contained in:
Chandler Swift 2025-07-23 00:53:09 -05:00
parent 3208ac7251
commit 6820bc9e2a
Signed by: chandlerswift
GPG key ID: A851D929D52FB93F

View file

@ -54,7 +54,6 @@ def render_latex(json_data):
latex_lines = [] latex_lines = []
chapter_number = json_data['chapter']['number'] chapter_number = json_data['chapter']['number']
first_verse_written = False
def render_verse_content(parts): def render_verse_content(parts):
result = [] result = []
@ -75,7 +74,14 @@ def render_latex(json_data):
result.append(escape_latex(part['text'])) result.append(escape_latex(part['text']))
return ' '.join(result) return ' '.join(result)
last_seen_verse = 0 # to start; TODO: does this include extra e.g. headers sometimes?
for element in content: for element in content:
if element['type'] == 'verse':
last_seen_verse = element['number']
if chapter_number == start_chapter and last_seen_verse < start_verse:
continue
if chapter_number == end_chapter and last_seen_verse >= end_verse:
break
etype = element['type'] etype = element['type']
if etype == 'heading': if etype == 'heading':
heading_text = ' '.join(element['content']) heading_text = ' '.join(element['content'])
@ -88,10 +94,9 @@ def render_latex(json_data):
verse_number = element['number'] verse_number = element['number']
verse_body = render_verse_content(element['content']) verse_body = render_verse_content(element['content'])
if not first_verse_written: if verse_number == 1:
# First verse: show chapter number # First verse: show chapter number
latex_lines.append(rf"\ch{{{chapter_number}}}{verse_body}") latex_lines.append(rf"\ch{{{chapter_number}}}{verse_body}")
first_verse_written = True
else: else:
latex_lines.append(rf"\vs{{{verse_number}}}{verse_body}") latex_lines.append(rf"\vs{{{verse_number}}}{verse_body}")
elif etype == 'hebrew_subtitle': elif etype == 'hebrew_subtitle':