上一页/下一页
Methanol 提供了用于获取“上一页/下一页”的辅助函数:
const { prev, next } = ctx.getSiblings.() || {}
该函数遵循当前导航根设定,确保顺序与侧边栏导航保持严格一致。
实现示例
const PrevNext = ({ ctx }) => {
const siblings = ctx.getSiblings.()
const prev = siblings?.prev
const next = siblings?.next
if (!prev && !next) return null
return (
<nav aria-label="Page navigation">
{prev ? <a href={prev.routeHref}>← {prev.title}</a> : <span />}
{next ? <a href={next.routeHref}>{next.title} →</a> : <span />}
</nav>
)
}
export default function PageTemplate({ PageContent, ExtraHead, ctx }) {
return (
<>
<html>
<head>
<ExtraHead />
</head>
<body>
<main>
<PageContent />
<PrevNext ctx={ctx} />
</main>
</body>
</html>
</>
)
}
注意事项
- 链接请用
routeHref(包含site.base)。 - 若需将特定页面排除在前后页序列之外,可通过设置
hidden: true将其从导航中隐去。