Skip to content

release: v1.2.0 — GitHub README 최근 글 뱃지 라우트 - #41

Merged
chan9yu merged 12 commits into
mainfrom
develop
Jun 30, 2026
Merged

release: v1.2.0 — GitHub README 최근 글 뱃지 라우트#41
chan9yu merged 12 commits into
mainfrom
develop

Conversation

@chan9yu

@chan9yu chan9yu commented Jun 30, 2026

Copy link
Copy Markdown
Owner

v1.2.0 릴리스

블로그 최근 공개 글 6개를 GitHub README에 썸네일 카드로 노출하는 정적 이미지 라우트를 프로덕션에 배포합니다.

Added — GitHub README 최근 글 뱃지

  • /badge/recent/[index] — N번째 최신 글로 302 리다이렉트 (<a href>용)
  • /badge/recent/[index]/[theme] — PNG 카드 이미지 (Satori, dark/light). 썸네일(16:9) + 제목 + 날짜, 썸네일 없으면 브랜드 폴백
  • force-static + dynamicParams = false → 빌드 타임 prerender, 런타임 contents/ fs 호출 0 (v1.1.2 incident 회귀 차단)
  • Pretendard 정적 OTF로 한글 렌더, README <picture>로 라이트/다크 자동 교체, 위치 기반이라 새 글 발행 시 자동 갱신

상세: CHANGELOG.md [1.2.0]

검증

  • 전체 테스트 262/262, next build 124/124 정적 페이지(badge 18경로 prerender), 렌더 PNG 한글 정상
  • 3-way 리뷰(react-nextjs + compound + a11y) 통과

포함된 흡수 커밋

  • merge: origin/main 흡수 — main의 radio 콘텐츠 커밋(slug 변경, RADIO Feature/blog v1 #1 발행)을 develop에 반영 (PR 생성 전 base 동기화, workflow.md)

머지: merge commit 또는 rebase merge로 부탁드립니다 (squash 금지 — workflow.md).

🤖 Generated with Claude Code

chan9yu and others added 12 commits June 29, 2026 21:35
- M{readme-badge}: Task 4 완료
- public/fonts/Pretendard-Regular.otf, Pretendard-Bold.otf 추가 (각 ~1.5MB, jsDelivr)
- src/shared/config/badge.ts에 loadBadgeFonts() 추가 (node:fs readFileSync, build-time 전용)
- Satori는 variable woff2 미지원 — 정적 OTF 필수 (주석으로 사유 명시)
- 테스트: badge-fonts.test.ts (TDD Red→Green)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Route handler: POST index를 파싱해 N번째 최신 글로 302 리다이렉트
- generateStaticParams: BADGE_RECENT_COUNT 기준 정적 파라미터 생성
- force-static 강제: v1.1.2 incident 회귀 차단 (contents/ runtime 의존성 제거)
- 테스트: 유효/무효 index 케이스 커버

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Task 6: Satori(ImageResponse) 기반 PNG 카드 이미지 라우트
- force-static, generateStaticParams(BADGE_THEMES × count), 404 분기 구현
- 유효하지 않은 theme/index 404 테스트 2건 (TDD Red→Green)
- 카드 height 400→440으로 content 영역 확보 (제목 2줄 + 날짜 겹침 회귀 차단)
- 제목 fontSize 30→26·maxHeight 80→70, 날짜 22→20, gap 12 + justify center
- 썸네일 없는 글: 상단 그라디언트에 제목 중복 대신 brand(chan9yu.dev) 표시 → 썸네일 카드와 하단 레이아웃 일관
- Task 8 육안 검증에서 발견
- dynamicParams=false 두 라우트 추가 → 비생성 경로 런타임 fs 호출 0 (v1.1.2 회귀 차단 완결)
- Cache-Control 문자열을 BADGE_CACHE_CONTROL 상수로 단일화
- parseBadgeIndex/resolveCardImageDataUri 추론가능 return type 어노테이션 제거(typescript.md)
- 브랜드 라벨 fontWeight 800→700(미로드 weight 제거)
- resolveCardImageDataUri 테스트 첫 케이스 설명 정정
- Satori 폰트 제약 주석 친절화
feat: GitHub README 최근 글 뱃지 라우트 추가
@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
chan9yu-blog Building Building Preview, Comment Jun 30, 2026 2:33am

@chan9yu
chan9yu merged commit 8c91eb6 into main Jun 30, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant