URL-адрес динамической маршрутизации Gatsby для создания макетов

Итак, я генерирую условные макеты с помощью этого кода:

      exports.onCreatePage = ({ page, actions }) => {
  const { createPage } = actions;

  if (page.path.match(/about/)) {
    page.context.layout = "special";
    createPage(page);
  }

  if (page.path.match(/projects/)) {
    page.context.layout = "projectsPage";
    createPage(page);
  }
};

Я хочу изменить page.path.mathch ( / projects / TO ALL PROJECT SLUGS / ), но не могу написать правильный синтаксис для пути.

Кто-нибудь знает, как получить все пути после / projects/ ?

1 ответ

Вы можете использовать следующее регулярное выражение:

      projects\/([^\/]+$)

Это будет соответствовать всему после /projects/. Так:

        if (page.path.match(/projects\/([^\/]+$)/)) {
    page.context.layout = "projectsPage";
    createPage(page);
  }

Я добавил песочницу для тестирования всех сценариев: https://regex101.com/r/eQRJb4/1

Другие вопросы по тегам