diff --git a/next.config.ts b/next.config.ts index fd7a82f..3cd7310 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,10 +1,6 @@ import type { NextConfig } from "next"; -import createMDX from '@next/mdx'; -const path = require('path') -const withMDX = createMDX({ - options: {}, -}) +const path = require('path') const nextConfig: NextConfig = { pageExtensions: ['ts', 'tsx', 'mdx'], @@ -15,4 +11,4 @@ const nextConfig: NextConfig = { output: 'standalone', }; -export default withMDX(nextConfig); +export default nextConfig; diff --git a/public/1500x500.jpg b/public/1500x500.jpg new file mode 100644 index 0000000..b5ef0d3 Binary files /dev/null and b/public/1500x500.jpg differ diff --git a/public/test.avif b/public/test.avif new file mode 100644 index 0000000..8f17b54 Binary files /dev/null and b/public/test.avif differ diff --git a/src/app/blog/[slug]/page.tsx b/src/app/blog/[slug]/page.tsx deleted file mode 100644 index 8789060..0000000 --- a/src/app/blog/[slug]/page.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { notFound } from "next/navigation"; -import { readdirSync } from "fs"; -import { join } from "path"; - -export async function generateStaticParams() { - const blogDir = join(process.cwd(), "src/app/blog/posts"); - const files = readdirSync(blogDir).filter((file) => file.endsWith(".mdx")); - - return files.map((file) => ({ - slug: file.replace(".mdx", ""), - })); -} - -export default async function BlogPost({ - params, -}: { - params: Promise<{ slug: string }>; -}) { - const { slug } = await params; - - try { - const Post = ( - await import(`@/app/blog/posts/${slug}.mdx`) - ).default; - - return ; - } catch { - notFound(); - } -} diff --git a/src/app/blog/layout.tsx b/src/app/blog/layout.tsx deleted file mode 100644 index e10605c..0000000 --- a/src/app/blog/layout.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import type { Metadata } from "next"; - -export const metadata: Metadata = { - title: "Blog", - description: "My thoughts and experiences", -}; - -export default function BlogLayout({ - children, -}: { - children: React.ReactNode; -}) { - return ( -
-
- {children} -
-
- ); -} diff --git a/src/app/blog/posts/yay.mdx b/src/app/blog/posts/yay.mdx deleted file mode 100644 index 6646772..0000000 --- a/src/app/blog/posts/yay.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "삣삐" -description: "삣삐" -date: "2025-11-20" -tags: ["삣삐"] ---- - -# 삣삐 \ No newline at end of file diff --git a/src/app/globals.css b/src/app/globals.css index ad117aa..0fe5445 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -164,3 +164,22 @@ "Segoe UI Symbol", sans-serif; } } + +.image-scale { + transition-property:scale,border-radius box-shadow; + transition-duration:.7s; + transition-timing-function:var(--ease-out-expo) +} +@media (hover:hover) { + .image-scale:hover { + --tw-scale-x:105%; + --tw-scale-y:105%; + --tw-scale-z:105%; + scale:var(--tw-scale-x)var(--tw-scale-y); + border-radius:var(--radius-lg) + } +} +.image-scale:hover { + z-index:10; + box-shadow:0 15px 45px #0006 +} \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index 28eeaa3..b195608 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,16 +1,33 @@ -import BlogList from "@/components/BlogList"; import NeoFetch from "@/components/NeoFetch"; import Projects from "@/components/Projects"; import TimelineComponent from "@/components/timeline"; import Top from "@/components/Top"; +import Image from "next/image"; export default async function BlogIndex() { return ( -
- -
- -
+
+
+
+ logo +

+ me@imnya.ng +

+
+
+ + test image + +
+
+
+

💕 About

오직 호기심과 실행력으로만 성장해 온 개발자, 정보보안전문가 남현석입니다.

초등학교 시절 운영체제에 흥미를 느껴 컴퓨터를 시작했고, 이후 프로그래밍에 관심을 갖게 되었습니다.

@@ -23,9 +40,7 @@ export default async function BlogIndex() {
-
- -
+
); diff --git a/src/components/BlogList.tsx b/src/components/BlogList.tsx deleted file mode 100644 index 208c3ae..0000000 --- a/src/components/BlogList.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import Link from "next/link"; -import { getPosts, type Post } from "@/lib/blog"; -import { Badge } from "@/components/ui/badge"; -import { ArrowRight } from "lucide-react"; - - -export default async function BlogList() { - const posts = await getPosts(); - - return ( -
- {posts.length === 0 ? ( -
-

No posts yet...

-
- ) : ( - posts.map((post) => ( - -
-
-
-

- {post.title} -

-

- {post.date} -

-
- -
- {post.description && ( -

- {post.description} -

- )} - {post.tags && post.tags.length > 0 && ( -
- {post.tags.map((tag) => ( - - {tag} - - ))} -
- )} -
- - )) - )} -
- ); -} diff --git a/src/components/Projects.tsx b/src/components/Projects.tsx index c039cdb..7924b6c 100644 --- a/src/components/Projects.tsx +++ b/src/components/Projects.tsx @@ -22,7 +22,7 @@ const projects = [ export default function Projects() { return ( -
+
{projects.map((project, idx) => (
diff --git a/src/components/timeline.tsx b/src/components/timeline.tsx index 7da1e5b..524dda7 100644 --- a/src/components/timeline.tsx +++ b/src/components/timeline.tsx @@ -25,7 +25,7 @@ export default function TimelineComponent() { return (

🌠 수상 및 교육