Skip to content

Commit 0bbba2a

Browse files
committed
feat: 새 로고 적용 및 라우트별 동적 OG 이미지 생성
- CrossPoint 새 로고 (Option 9) 적용: logo.svg, 부팅 화면 SVG, BootScreen 컴포넌트 - 각 라우트별 동적 OG 이미지 생성 (next/og ImageResponse) - Noto Sans KR 폰트를 사용한 한글 OG 이미지 렌더링 - layout.tsx에서 정적 OG 이미지 참조를 동적 생성으로 전환
1 parent 708b9de commit 0bbba2a

16 files changed

Lines changed: 291 additions & 37 deletions

public/logo.svg

Lines changed: 2 additions & 4 deletions
Loading

public/x4-crosspoint-boot-xteink.svg

Lines changed: 3 additions & 4 deletions
Loading

public/x4-crosspoint-boot.svg

Lines changed: 3 additions & 4 deletions
Loading
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { generateOGImage, ogSize, ogContentType } from "@/lib/og";
2+
3+
export const dynamic = "force-static"
4+
5+
export const alt = "웹 플래셔 | CrossPoint Reader";
6+
export const size = ogSize;
7+
export const contentType = ogContentType;
8+
9+
export default async function Image() {
10+
return generateOGImage(
11+
"웹 플래셔",
12+
"웹 브라우저에서 바로 CrossPoint Reader 펌웨어를 설치하세요",
13+
);
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { generateOGImage, ogSize, ogContentType } from "@/lib/og";
2+
3+
export const dynamic = "force-static"
4+
5+
export const alt = "폰트 변환기 | CrossPoint Reader";
6+
export const size = ogSize;
7+
export const contentType = ogContentType;
8+
9+
export default async function Image() {
10+
return generateOGImage(
11+
"폰트 변환기",
12+
"TTF/OTF 폰트를 CrossPoint Reader 전용 EPD 폰트로 변환",
13+
);
14+
}

src/app/guide/opengraph-image.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { generateOGImage, ogSize, ogContentType } from "@/lib/og";
2+
3+
export const dynamic = "force-static"
4+
5+
export const alt = "사용자 가이드 | CrossPoint Reader";
6+
export const size = ogSize;
7+
export const contentType = ogContentType;
8+
9+
export default async function Image() {
10+
return generateOGImage(
11+
"사용자 가이드",
12+
"CrossPoint Reader 한국어 펌웨어의 모든 기능과 사용법",
13+
);
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { generateOGImage, ogSize, ogContentType } from "@/lib/og";
2+
3+
export const dynamic = "force-static"
4+
5+
export const alt = "설치 가이드 | CrossPoint Reader";
6+
export const size = ogSize;
7+
export const contentType = ogContentType;
8+
9+
export default async function Image() {
10+
return generateOGImage(
11+
"설치 가이드",
12+
"Xteink X4에 CrossPoint Reader 한국어 펌웨어를 설치하는 방법",
13+
);
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { generateOGImage, ogSize, ogContentType } from "@/lib/og";
2+
3+
export const dynamic = "force-static"
4+
5+
export const alt = "한글 폰트 정보 | CrossPoint Reader";
6+
export const size = ogSize;
7+
export const contentType = ogContentType;
8+
9+
export default async function Image() {
10+
return generateOGImage(
11+
"한글 폰트 정보",
12+
"KoPub 바탕, Pretendard 등 내장 한글 폰트 정보와 라이선스",
13+
);
14+
}

src/app/layout.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,20 +52,13 @@ export const metadata: Metadata = {
5252
siteName: siteName,
5353
locale: "ko_KR",
5454
type: "website",
55-
images: [
56-
{
57-
url: "/opengraph.png",
58-
width: 1200,
59-
height: 630,
60-
alt: "CrossPoint Reader - Xteink X4 한국어 펌웨어",
61-
},
62-
],
55+
images: ["/opengraph-image"],
6356
},
6457
twitter: {
6558
card: "summary_large_image",
6659
title: siteName,
6760
description: siteDescription,
68-
images: ["/opengraph.png"],
61+
images: ["/opengraph-image"],
6962
creator: "@eunchurn",
7063
},
7164
icons: {

src/app/opengraph-image.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { generateOGImage, ogSize, ogContentType } from "@/lib/og";
2+
3+
export const dynamic = "force-static"
4+
5+
export const alt = "CrossPoint Reader - 한국어 펌웨어 가이드";
6+
export const size = ogSize;
7+
export const contentType = ogContentType;
8+
9+
export default async function Image() {
10+
return generateOGImage(
11+
"CrossPoint Reader",
12+
"Xteink X4 전자잉크 리더를 위한 한국어 오픈소스 펌웨어",
13+
);
14+
}

0 commit comments

Comments
 (0)