ZH
测试版翻译

@core / kit-blog

1.0.1 ▾
已验证MIT
GitHub

Next.js 博客套件:含作者、分类、标签、系列的文章,订阅源,审核评论和邮件简报

代码32 个文件上下文约 883 个 token扫描通过

应用 .genpmignore 后将被注入的确切目录树。固定于

src/app/(blog)/_components/post-list.tsx只读 · fa952a4
// Listado paginado (blog, categorías, etiquetas, autores, series y archivo).
import './blog.css';
import type { ReactNode } from 'react';
import type { PostSummary } from '@/lib/blog';
import { PostCard } from './post-card';

export function PostList(p: { title: string; intro?: ReactNode; posts: PostSummary[]; page: number; pages: number; basePath: string }) {
  const href = (n: number) => (n === 1 ? p.basePath : `${p.basePath}?page=${n}`);
  return (
    <main className="blk blog">
      <h1>{p.title}</h1>
      {p.intro}
      {p.posts.length ? (
        <ul className="blk-grid blk-grid--2 blog-list" role="list">
          {p.posts.map((post) => (
            <li key={post.id}>
              <PostCard post={post} />
            </li>
          ))}
        </ul>
      ) : (
        <p>No posts yet.</p>
      )}
      {p.pages > 1 && (
        <nav aria-label="Pagination" className="ui-pagination">
          {p.page > 1 && (
            <a className="ui-button ui-button--sm" href={href(p.page - 1)} rel="prev">
              Newer posts
            </a>
          )}
          <span aria-current="page">
            Page {p.page} of {p.pages}
          </span>
          {p.page < p.pages && (
            <a className="ui-button ui-button--sm" href={href(p.page + 1)} rel="next">
              Older posts
            </a>
          )}
        </nav>
      )}
      <p className="blog-feeds">
        <a href="/blog/feed.xml">RSS</a> · <a href="/blog/atom.xml">Atom</a> · <a href="/blog/feed.json">JSON Feed</a>
      </p>
    </main>
  );
}

举报 @core/kit-blog

使用 GitHub 登录后才能举报包。