본문으로 건너뛰기

Metadata API

import {
generateNoxionMetadata,
generateNoxionListMetadata,
} from "@noxion/adapter-nextjs";

App Router의 generateMetadata() 내보내기에서 사용할 Next.js Metadata 객체를 생성합니다.


generateNoxionMetadata()

단일 페이지를 위한 Metadata를 생성합니다. 모든 페이지 타입(NoxionPage)에서 작동합니다: blog, docs, portfolio, 또는 커스텀.

시그니처

function generateNoxionMetadata(
page: NoxionPage,
config: NoxionConfig,
registry?: PageTypeRegistry
): Metadata

파라미터

파라미터타입설명
pageNoxionPage메타데이터를 생성할 페이지 (모든 페이지 타입)
configNoxionConfig사이트 설정

생성되는 필드

메타데이터 필드소스
titlepage.title
descriptionpage.description 또는 폴백 "<page title> - <site name>" (최대 160자)
authorspage.metadata.author ?? config.author
openGraph.type블로그 페이지는 "article", 그 외는 "website"
openGraph.publishedTimepage.metadata.date (블로그 페이지)
openGraph.modifiedTimepage.lastEditedTime
openGraph.tagspage.metadata.tags (블로그 페이지)
openGraph.sectionpage.metadata.category (존재하는 경우)
openGraph.imagespage.coverImage (1200×630)
twitter.card"summary_large_image"
alternates.canonicalhttps://{domain}/{slug}

메타데이터 필드는 내부 헬퍼 함수 getMetaString()getMetaStringArray()를 사용하여 page.metadata에서 접근됩니다.

사용법

// app/[slug]/page.tsx
import { generateNoxionMetadata } from "@noxion/adapter-nextjs";

export async function generateMetadata({ params }) {
const post = await getPostBySlug((await params).slug);
if (!post) return {};
return generateNoxionMetadata(post, siteConfig);
}

generateNoxionListMetadata()

홈페이지와 목록/컬렉션 페이지를 위한 Metadata를 생성합니다.

시그니처

function generateNoxionListMetadata(config: NoxionConfig): Metadata

생성되는 필드

메타데이터 필드
title.defaultconfig.name
title.template"%s | config.name"
descriptionconfig.description
metadataBasenew URL("https://<site-domain>")
openGraph.type"website"
robots.index / robots.followtrue
alternates.types["application/rss+xml"]RSS 피드 디스커버리 (RSS 플러그인이 설정된 경우)

사용법

// app/layout.tsx
import { generateNoxionListMetadata } from "@noxion/adapter-nextjs";

export const metadata = generateNoxionListMetadata(siteConfig);