fix(profile): correct heatmap month labels

This commit is contained in:
2026-04-04 11:17:24 -04:00
parent 00c390bb2c
commit f05fb7540a
3 changed files with 20 additions and 8 deletions

View File

@@ -55,18 +55,30 @@ def weekday_row(day):
return (day.weekday() + 1) % 7
def month_labels(start, end):
labels = [(0, start.strftime("%b"))]
total_weeks = ((end - start).days // 7) + 1
def month_labels(grid_start, visible_start, grid_end):
labels = []
total_weeks = ((grid_end - grid_start).days // 7) + 1
for week in range(total_weeks):
week_start = start + timedelta(days=week * 7)
week_start = grid_start + timedelta(days=week * 7)
week_label = None
for offset in range(7):
day = week_start + timedelta(days=offset)
if day.day == 1 and week != 0:
labels.append((week, day.strftime("%b")))
if day < visible_start:
continue
if week == 0 and week_label is None:
week_label = day.strftime("%b")
if day.day == 1:
week_label = day.strftime("%b")
break
if week_label is not None:
if not labels or labels[-1][1] != week_label:
labels.append((week, week_label))
return labels
@@ -108,7 +120,7 @@ def generate_svg(data):
'</style>',
]
for week, label in month_labels(aligned_start, aligned_end):
for week, label in month_labels(aligned_start, start, aligned_end):
x = LEFT_PAD + (week * CELL)
svg.append(f'<text x="{x}" y="10">{label}</text>')