Выбираемый символ слова в фильтре регулярных выражений Gatsby GraphQL - PullRequest
0 голосов
/ 15 ноября 2018

В настоящее время я использую Gatsby для создания сайта документации для библиотеки компонентов, которую я разработал. Я установил плагин Transformer-Remark, который создает объекты javascript для каждого файла уценки в структуре моего сайта.

Поскольку сайт предназначен для документации, у меня есть страница сведений о компонентах, на которой показано, как компонент может использоваться потребителем, и большая часть содержимого этой страницы получена из файла README.MD соответствующего пакета в NPM.

В левой части этой страницы находится динамическое меню, в котором перечислены созданные мной компоненты. В меню используется запрос GraphQL в пользовательском шаблоне Gatsby для разделения компонентов на 3 категории на основе фильтра RegEx их fileAbsolutePath, например:

export const pageQuery = graphql`
  query($path: String!) {
    pageData: 
      markdownRemark(fields: { slug: { eq: $path } }) {
        html
        fields {
          slug
          title
        }
        fileAbsolutePath
      }


    atoms:
      allMarkdownRemark(sort: {order: ASC, fields: [fields___title]}, limit: 1000, filter: {fileAbsolutePath: {regex: "/dl-atoms-(\w+)/README/"}}) {
        edges {
          node {
            fields {
              slug
              title
            }
          }
        }
      }

    molecules:
      allMarkdownRemark(sort: {order: ASC, fields: [fields___title]}, limit: 1000, filter: {fileAbsolutePath: {regex: "/dl-molecules-(\w+)/README/"}}) {
        edges {
          node {
            fields {
              slug
              title
            }
          }
        }
      }
    organisms:
      allMarkdownRemark(sort: {order: ASC, fields: [fields___title]}, limit: 1000, filter: {fileAbsolutePath: {regex: "/dl-organisms-(\w+)/README/"}}) {
        edges {
          node {
            fields {
              slug
              title
            }
          }
        }
      }
  }
`;

Однако, когда я пытаюсь запустить Gatsby Develop, я получаю следующую ошибку:

Синтаксическая ошибка: неверная escape-последовательность символов: \ w.

Я попытался добавить второй обратный слеш перед рассматриваемой строкой, чтобы избежать его, но это не работает.

Есть ли особый способ экранирования определенных символов в фильтрах RegEx в GraphQL?

Edit:

Я должен добавить, что тот же RegEx прекрасно работает на этом сайте тестирования RegEx: https://regexr.com/436ep

1 Ответ

0 голосов
/ 19 июля 2019

Я думаю, что ответ на ваш вопрос в этой теме: https://github.com/gatsbyjs/gatsby/issues/10009

TLDR: создайте полный запрос в gatsby-node.js и передайте его в свой шаблон

...