For AI agents: the complete documentation index is available at /rspress-russian/llms.txt, the full documentation bundle is available at /rspress-russian/llms-full.txt, and this page is available as Markdown at /rspress-russian/ui/hooks/use-pages.md.
close

usePages

usePages возвращает метаданные всех страниц сайта и удобен для создания пользовательских страниц обзора, таких как индекс блога.

  • Тип: () => { pages: PageData['pages'] }

Ниже приведён реальный пример, показывающий, как на странице /blog/index получить посты блога, расположенные по пути /blog/* на текущем языке, отсортированные в порядке убывания по полю date из блока метаданных:

import { useLang, usePages } from '@rspress/core/runtime';

const useBlogPages = () => {
  const { pages } = usePages();
  const lang = useLang();
  const defaultDate = new Date('1970-01-01');

  const getDate = (page: (typeof pages)[number]) =>
    page.frontmatter?.date
      ? new Date(page.frontmatter.date as string)
      : defaultDate;

  const blogPages = pages
    .filter(page => page.lang === lang)
    .filter(
      page =>
        page.routePath.includes('/blog/') && !page.routePath.endsWith('/blog/'),
    )
    .sort((a, b) => {
      return getDate(b).getTime() - getDate(a).getTime();
    });

  return blogPages;
};

usePages не поддерживает HMR; перезапустите dev-сервер после добавления или удаления документов, чтобы обновить список.