PT

@core / kit-blog

1.0.1 ▾
verificadoMIT
GitHub

Kit de blog para Next.js: posts com autores, categorias, tags, séries, feeds, comentários moderados e newsletter

Código32 arquivosContexto~883 tokensanálise aprovada

A árvore exata que será injetada, após o .genpmignore. Fixada em

src/app/(blog)/blog/page.tsxsomente leitura · fa952a4
import type { Metadata } from 'next';
import { listPosts } from '@/lib/blog';
import { buildMetadata } from '@/lib/seo';
import { PostList } from '../_components/post-list';
import { BLOG_PATH, PER_PAGE, pageParam } from '../_lib/blog';

type Props = { searchParams: Promise<Record<string, string | string[] | undefined>> };

export async function generateMetadata({ searchParams }: Props): Promise<Metadata> {
  const page = pageParam(await searchParams);
  return (await buildMetadata({ title: page > 1 ? `Blog – page ${page}` : 'Blog', path: page > 1 ? `${BLOG_PATH}?page=${page}` : BLOG_PATH })) as Metadata;
}

export default async function BlogIndex({ searchParams }: Props) {
  const page = pageParam(await searchParams);
  const { posts, pages } = await listPosts({ page, perPage: PER_PAGE });
  // En la primera página, los destacados primero.
  const ordered = page === 1 ? [...posts.filter((p) => p.featured), ...posts.filter((p) => !p.featured)] : posts;
  return <PostList title="Blog" posts={ordered} page={page} pages={pages} basePath={BLOG_PATH} />;
}

Denunciar @core/kit-blog

Entre com o GitHub para denunciar um pacote.