From 8e7b881659dff2b03f47f3425a30726a94a298d0 Mon Sep 17 00:00:00 2001 From: Vinta Chen Date: Sun, 22 Mar 2026 02:08:42 +0800 Subject: [PATCH] fix(website): key dedup by (url, name) to allow same-url different-name entries Previously, two entries sharing the same URL but different names would be collapsed into one. Using a composite (url, name) key preserves distinct entries while still merging true duplicates. Co-Authored-By: Claude --- website/build.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/website/build.py b/website/build.py index 4f1baf86..3c8153c4 100644 --- a/website/build.py +++ b/website/build.py @@ -106,14 +106,15 @@ def extract_entries( for cat in group["categories"]: cat_to_group[cat["name"]] = group["name"] - seen: dict[str, dict] = {} # url -> entry + seen: dict[tuple[str, str], dict] = {} # (url, name) -> entry entries: list[dict] = [] for cat in categories: group_name = cat_to_group.get(cat["name"], "Other") for entry in cat["entries"]: url = entry["url"] - if url in seen: - existing = seen[url] + key = (url, entry["name"]) + if key in seen: + existing = seen[key] if cat["name"] not in existing["categories"]: existing["categories"].append(cat["name"]) if group_name not in existing["groups"]: @@ -131,7 +132,7 @@ def extract_entries( "source_type": detect_source_type(url), "also_see": entry["also_see"], } - seen[url] = merged + seen[key] = merged entries.append(merged) return entries