Gatsby Lunr Плагин с источником Ghost - PullRequest
1 голос
/ 19 мая 2019

Попытка реализовать функцию поиска в Gatsby с помощью плагина gastby-plugin-lunr.

Мой gatsby-config.js:

{
  resolve: `gatsby-plugin-lunr`,
  options: {
    languages: [
      {
        name: 'en'
      }
    ],
    fields: [
      { name: 'title', store: true, attributes: { boost: 20 }}
    ],
    resolvers: {
      allGhostPost: {
        title: node => node.title
      }
    }
  }
}

Но мой индекс остается пустым. Уже пытался изменить заголовок узла на node.fields.title - все еще не работает.

Мой поисковый компонент:

const ContactPage: FunctionComponent = () => {
  const [results, setResults] = useState([]);
  const [query, setQuery] = useState('');

  const search = (event) => {
    const query = event.target.value;
    if (!query || !(window as any).__LUNR__) {
      setResults([]);
    }
    const lunrIndex =  (window as any).__LUNR__['en'];
    const res = lunrIndex.index.search(query);
    setResults(res);
    setQuery(query);
  };

  return (
    <Layout header={<DefaultHeader/>}>
      <input type="text" value={query} onChange={search} />
      <ul>{results.map(page => <li>{page}</li>)}</ul>
    </Layout>
  )
};

Кто-нибудь получил идею?

1 Ответ

1 голос
/ 19 мая 2019

Исправлено путем изменения resolvers на:

   resolvers: {
      GhostPost: {
        title: node => node.title
      }
    }
...