Skip to content

Commit

Permalink
Merge pull request #162 from jooyong-boo/develop
Browse files Browse the repository at this point in the history
merge develop
  • Loading branch information
jooyong-boo authored Oct 14, 2024
2 parents e6833c1 + f6e4f12 commit 13da136
Show file tree
Hide file tree
Showing 8 changed files with 103 additions and 2 deletions.
3 changes: 2 additions & 1 deletion src/app/(with-layout)/posts/[id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import PostMenu from '@/containers/post/PostMenu';
import InnerLayout from '@/layouts/InnerLayout';
import { getPostDetail, getPostDetailNavigation } from '@/services/posts';
import { formatDate } from '@/utils/convert';
import { extractTextFromHtml } from '@/utils/html';
import prisma from '../../../../../prisma/client';

export const revalidate = 60;
Expand All @@ -24,7 +25,7 @@ export async function generateMetadata({ params }: { params: { id: string } }) {
description: postDetail.content,
openGraph: {
title: postDetail.title,
description: postDetail.content,
description: extractTextFromHtml(postDetail.content),
images: [postDetail.thumbnail],
},
image: postDetail.thumbnail,
Expand Down
6 changes: 6 additions & 0 deletions src/app/(with-layout)/posts/page.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import { Metadata } from 'next';
import Pagination from '@/components/Pagination';
import Title from '@/components/Title';
import ArticleList from '@/containers/post/ArticleList';
import InnerLayout from '@/layouts/InnerLayout';
import { getPosts } from '@/services/posts';

export const metadata: Metadata = {
title: '모든글',
description: '모든 글을 볼 수 있는 페이지입니다.',
};

const page = async ({
searchParams,
}: {
Expand Down
13 changes: 13 additions & 0 deletions src/app/(with-layout)/projects/[name]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,19 @@ import InnerLayout from '@/layouts/InnerLayout';
import { getProjectRelatedPosts } from '@/services/projects';
import prisma from '../../../../../prisma/client';

export async function generateMetadata({
params,
}: {
params: { name: string };
}) {
const { name } = params;

return {
title: decodeURIComponent(name),
description: `${decodeURIComponent(name)} 프로젝트에 관련된 글들을 모아놓은 페이지입니다.`,
};
}

export const revalidate = 60;

export async function generateStaticParams() {
Expand Down
6 changes: 6 additions & 0 deletions src/app/(with-layout)/projects/page.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
import { Metadata } from 'next';
import Title from '@/components/Title';
import ItemList from '@/containers/project/ItemList';
import InnerLayout from '@/layouts/InnerLayout';
import { getProjects } from '@/services/projects';

export const metadata: Metadata = {
title: '프로젝트',
description: '모든 프로젝트를 볼 수 있는 페이지입니다.',
};

const page = async () => {
const projects = await getProjects();

Expand Down
13 changes: 13 additions & 0 deletions src/app/(with-layout)/tags/[name]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,19 @@ import InnerLayout from '@/layouts/InnerLayout';
import { getTagsRelatedPosts } from '@/services/tags';
import prisma from '../../../../../prisma/client';

export async function generateMetadata({
params,
}: {
params: { name: string };
}) {
const { name } = params;

return {
title: decodeURIComponent(name),
description: `${decodeURIComponent(name)} 태그와 관련된 글들을 모아놓은 페이지입니다.`,
};
}

export const revalidate = 60;

export async function generateStaticParams() {
Expand Down
6 changes: 6 additions & 0 deletions src/app/(with-layout)/tags/page.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
import { Metadata } from 'next';
import Tags from '@/components/Tags';
import Title from '@/components/Title';
import InnerLayout from '@/layouts/InnerLayout';
import { getTags } from '@/services/tags';

export const metadata: Metadata = {
title: '태그',
description: '모든 태그를 볼 수 있는 페이지입니다.',
};

const page = async () => {
const tagList = await getTags();

Expand Down
4 changes: 4 additions & 0 deletions src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ import { tailwindTheme } from '@/utils/tailwindTheme';
export const metadata: Metadata = {
title: 'DEVLOG - jooyong',
description: "jooyong's devlog",
openGraph: {
title: 'DEVLOG - jooyong',
description: "jooyong's devlog",
},
verification: {
google: 'x7Bur4_X_TYpLXkE7noT1Xu4guTZ0tejfFAYbNuF_Kg',
},
Expand Down
54 changes: 53 additions & 1 deletion src/app/sitemap.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,57 @@
import { MetadataRoute } from 'next';
import prisma from '../../prisma/client';

const domain = process.env.URL;

export default function sitemap(): MetadataRoute.Sitemap {
function generateSitemap(url: string) {
return {
url,
lastModified: new Date(),
};
}

async function getArticleIds() {
const result = await prisma.posts.findMany({
where: {
published: true,
},
select: {
id: true,
},
});
return result.map((post) => generateSitemap(`${domain}/posts/${post.id}`));
}

async function getProjectIds() {
const result = await prisma.projects.findMany({
where: {
deletedAt: null,
},
select: {
id: true,
},
});
return result.map((project) =>
generateSitemap(`${domain}/projects/${project.id}`),
);
}

async function getTagIds() {
const result = await prisma.tags.findMany({
select: {
id: true,
},
});
return result.map((tag) => generateSitemap(`${domain}/tags/${tag.id}`));
}

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
const [articleIds, projectIds, tagIds] = await Promise.all([
getArticleIds(),
getProjectIds(),
getTagIds(),
]);

return [
{
url: `${domain}`,
Expand Down Expand Up @@ -34,5 +83,8 @@ export default function sitemap(): MetadataRoute.Sitemap {
priority: 0.8,
lastModified: new Date(),
},
...articleIds,
...projectIds,
...tagIds,
];
}

0 comments on commit 13da136

Please sign in to comment.