KO
베타 번역

@core / seo

1.0.0 ▾
인증됨MIT
GitHub

GenPM 사이트 SEO: canonical·hreflang 메타데이터, 분할 사이트맵, robots.txt, llms.txt, 안전한 JSON-LD

코드파일 9개컨텍스트약 639토큰검사 통과

.genpmignore 적용 후 주입될 정확한 트리입니다. 고정 대상:

src/lib/seo/adapters/next.ts읽기 전용 · cf4e3c3
// Adaptador Next.js (route handlers):
//   app/sitemap.xml/route.ts                 → export { sitemapIndexRoute as GET } from '@/lib/seo/adapters/next';
//   app/sitemaps/[name]/[file]/route.ts      → export { sitemapChunkRoute as GET } from '@/lib/seo/adapters/next';
//   app/robots.txt/route.ts                  → export { robotsRoute as GET } from '@/lib/seo/adapters/next';
// En los tres, añade `export const dynamic = 'force-dynamic'` (si no, `next build` los prerenderiza con BD y SITE_URL).
// Metadatos: `export async function generateMetadata() { return buildMetadata({ title, path }) }`.
import { robotsTxt, sitemapChunkXml, sitemapIndexXml } from '../index.ts';

const XML = { 'content-type': 'application/xml; charset=utf-8', 'cache-control': 'public, max-age=3600' };

export async function sitemapIndexRoute(): Promise<Response> {
  return new Response(await sitemapIndexXml(), { headers: XML });
}

export async function sitemapChunkRoute(_req: Request, ctx: { params: Promise<{ name: string; file: string }> }): Promise<Response> {
  const { name, file } = await ctx.params;
  const m = /^(\d{1,4})\.xml$/.exec(file);
  const body = m ? await sitemapChunkXml(name, Number(m[1])) : null;
  return body ? new Response(body, { headers: XML }) : new Response('Not found', { status: 404 });
}

export function robotsRoute(): Response {
  return new Response(robotsTxt(), { headers: { 'content-type': 'text/plain; charset=utf-8', 'cache-control': 'public, max-age=3600' } });
}

@core/seo 신고

패키지를 신고하려면 GitHub로 로그인하세요.