From 75c83a0016a149f8244381cdb4db1c88b6dafe9a Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 3 Dec 2025 21:21:14 -0500 Subject: [PATCH] Fix Strong's cross-language derivation links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hebrew numbers in Greek derivations often have leading zeros (H04566) which caused lookups to fail. Now normalize all Strong's numbers by stripping leading zeros before lookup and link generation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- kjvstudy_org/jinja_filters.py | 7 +++++-- kjvstudy_org/strongs.py | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/kjvstudy_org/jinja_filters.py b/kjvstudy_org/jinja_filters.py index 85cc3bc..1acbf1d 100644 --- a/kjvstudy_org/jinja_filters.py +++ b/kjvstudy_org/jinja_filters.py @@ -241,13 +241,16 @@ def number_format(value): def linkify_strongs(text): - """Convert Strong's references like G1234 or H5678 to links.""" + """Convert Strong's references like G1234 or H5678 to links. + + Handles leading zeros in numbers (H04566 -> H4566). + """ if not text: return text pattern = r'\b([GH])(\d+)\b' def replace(match): prefix = match.group(1) - num = match.group(2) + num = str(int(match.group(2))) # Strip leading zeros return f'{prefix}{num}' return re.sub(pattern, replace, text) diff --git a/kjvstudy_org/strongs.py b/kjvstudy_org/strongs.py index 555e3e2..6e1479d 100644 --- a/kjvstudy_org/strongs.py +++ b/kjvstudy_org/strongs.py @@ -121,11 +121,14 @@ def format_strongs_entry(strongs_number: str) -> Optional[Dict[str, Any]]: Returns a normalized dictionary with consistent keys. """ + # Normalize: strip leading zeros from number portion (H04566 -> H4566) + strongs_number = strongs_number.upper().strip() + if len(strongs_number) > 1 and strongs_number[0] in ('H', 'G'): + strongs_number = strongs_number[0] + str(int(strongs_number[1:])) + entry = get_strongs_entry(strongs_number) if not entry: return None - - strongs_number = strongs_number.upper().strip() is_hebrew = strongs_number.startswith("H") return {