feat: OG image, sitemap update, Neo-Slasher, design polish

- Add OG image for social sharing (og:image meta tags)
- Update sitemap data: add Hongik, update descriptions/names
- Add Neo-Slasher project (2D roguelike, ExP game dev club)
- Add Unity client mention to One of the Plans
- Footer border-top, responsive hero photo sizing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 01:57:37 +09:00
parent 085ea59658
commit c2fd7a8a41
6 changed files with 26 additions and 4 deletions

View File

@@ -370,10 +370,12 @@ img { max-width: 100%; display: block; }
/* === Footer === */ /* === Footer === */
.footer { .footer {
padding: 40px 0; padding: 48px 0;
text-align: center; text-align: center;
color: #999; color: #999;
font-size: 0.85rem; font-size: 0.85rem;
border-top: 1px solid #eee;
margin-top: 16px;
} }
.footer a { color: #666; } .footer a { color: #666; }
.footer a:hover { color: #333; } .footer a:hover { color: #333; }
@@ -385,8 +387,10 @@ img { max-width: 100%; display: block; }
.nav-inner { gap: 16px; } .nav-inner { gap: 16px; }
.nav-link { font-size: 0.8rem; } .nav-link { font-size: 0.8rem; }
.hero { padding: 80px 0 56px; } .hero { padding: 80px 0 56px; }
.hero-photo { width: 120px; }
.hero-name { font-size: 2rem; } .hero-name { font-size: 2rem; }
.hero-role { font-size: 1rem; } .hero-role { font-size: 1rem; }
.hero-tagline { font-size: 0.9rem; }
.section { padding: 56px 0; } .section { padding: 56px 0; }
.card-grid { grid-template-columns: 1fr; } .card-grid { grid-template-columns: 1fr; }
.infra-grid { grid-template-columns: 1fr 1fr; } .infra-grid { grid-template-columns: 1fr 1fr; }

View File

@@ -47,6 +47,17 @@ const projects = [
category: "웹", category: "웹",
period: "2025.09 ~ 진행 중" period: "2025.09 ~ 진행 중"
}, },
{
name: "Neo-Slasher",
description: "게임 개발 동아리 ExP에서 8인 팀으로 제작한 모바일 2D 로그라이크 게임. 프로그래밍 디렉터로서 데이터 관리 시스템, UI/인터페이스 설계, 전투 로직 등 전체 프로그래밍 아키텍처를 주도.",
tags: ["Unity", "C#"],
links: [
{ label: "GitHub", url: "https://github.com/Neo-Slasher" },
{ label: "Refactoring", url: "https://github.com/Neo-Slasher/Neo-Slasher_Refactoring" }
],
category: "게임",
period: "2023.06 ~ 2023.12"
},
{ {
name: "No-ill", name: "No-ill",
description: "독거노인 낙상 감지 및 케어 서비스. 6인 팀 PM으로 개발 총괄. React 프론트엔드, Java Spring 백엔드(OpenVidu 연동), 인프라(Jira, Git, CI/CD) 담당.", description: "독거노인 낙상 감지 및 케어 서비스. 6인 팀 PM으로 개발 총괄. React 프론트엔드, Java Spring 백엔드(OpenVidu 연동), 인프라(Jira, Git, CI/CD) 담당.",

View File

@@ -1,17 +1,22 @@
const sites = { const sites = {
projects: [ projects: [
{ name: "Blog", url: "https://blog.tolelom.xyz", icon: "📝", description: "개인 블로그" }, { name: "Blog", url: "https://blog.tolelom.xyz", icon: "📝", description: "개인 블로그" },
{ name: "One of the Plans", url: "https://a301.tolelom.xyz", icon: "🎮", description: "MMORPG Unity 게임" }, { name: "Hongik", url: "https://hongik.tolelom.xyz", icon: "🔤", description: "한글 프로그래밍 언어 플레이그라운드",
subLinks: [
{ label: "문서", url: "https://hongik.docs.tolelom.xyz" }
]
},
{ name: "One of the Plans", url: "https://a301.tolelom.xyz", icon: "🎮", description: "블록체인 연동 게임 플랫폼" },
{ {
name: "No-ill", name: "No-ill",
url: "https://no-ill.tolelom.xyz", url: "https://no-ill.tolelom.xyz",
icon: "🏥", icon: "🏥",
description: "노인 낙상감지 · 외로움방지", description: "독거노인 낙상 감지 · 케어 서비스",
subLinks: [ subLinks: [
{ label: "보호자 앱", url: "https://no-ill-app.tolelom.xyz" } { label: "보호자 앱", url: "https://no-ill-app.tolelom.xyz" }
] ]
}, },
{ name: "SION", url: "https://sion.tolelom.xyz", icon: "🚗", description: "Jetson 자율주행 모니터링" } { name: "SION", url: "https://sion.tolelom.xyz", icon: "🚗", description: "AGV 실시간 경로 제어 · 모니터링" }
], ],
infra: [ infra: [
{ name: "Git", url: "https://git.tolelom.xyz", icon: "🗃️", description: "셀프호스팅 Git" }, { name: "Git", url: "https://git.tolelom.xyz", icon: "🗃️", description: "셀프호스팅 Git" },

BIN
images/og.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -8,6 +8,7 @@
<meta property="og:title" content="김성민 — 풀스택 & 게임 개발자"> <meta property="og:title" content="김성민 — 풀스택 & 게임 개발자">
<meta property="og:description" content="김성민의 포트폴리오. 풀스택 개발자이자 게임 개발자."> <meta property="og:description" content="김성민의 포트폴리오. 풀스택 개발자이자 게임 개발자.">
<meta property="og:url" content="https://tolelom.xyz"> <meta property="og:url" content="https://tolelom.xyz">
<meta property="og:image" content="https://tolelom.xyz/images/og.png">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>👨‍💻</text></svg>"> <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>👨‍💻</text></svg>">
<link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css"> <link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css">

View File

@@ -8,6 +8,7 @@
<meta property="og:title" content="Sitemap — tolelom.xyz"> <meta property="og:title" content="Sitemap — tolelom.xyz">
<meta property="og:description" content="tolelom.xyz 서비스 및 인프라 목록"> <meta property="og:description" content="tolelom.xyz 서비스 및 인프라 목록">
<meta property="og:url" content="https://tolelom.xyz/sitemap/"> <meta property="og:url" content="https://tolelom.xyz/sitemap/">
<meta property="og:image" content="https://tolelom.xyz/images/og.png">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>👨‍💻</text></svg>"> <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>👨‍💻</text></svg>">
<link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css"> <link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css">