首页 > 解决方案 > 如何在上传到 Algolia 之前更改 slug

问题描述

我正在努力在我的 Gatsby 网站中实施 Algolia 搜索。我需要正确格式化我的内容的 slug,以便 Algolia 获得正确的链接。

我的查询从 Contentful 得到的 slug 类似于/icon-name/

我需要它来匹配从我的 Gatsby-node.js 文件路径创建的路径:/design-resources/icons/${node.slug}/

从 Gatsby-node.js 创建后是否可以获取此路径,或者有没有办法在上传到 Algolia 之前转换下面的图标查询?

我的查询

const iconQuery = `
query iconQuery {
    allContentfulIcon {
        edges {
            node {
                id
                title
                slug
                keywords
                pngFIle {
                    fluid {
                        srcSetWebp
                    }
                  }
              }
        }
    }
}`;

阿尔哥利亚变压器

const queries = [
  {
    query: iconQuery,
    transformer: ({ data }) =>
      data.allContentfulIcon.edges.map(({ node }) => node), // optional
  },
];

module.exports = queries;

标签: gatsbyalgoliacontentful

解决方案


使用你的transformer

const queries = [
  {
    query: iconQuery,
    transformer: ({ data }) =>
      data.allContentfulIcon.edges.map(({ node }) => {
        node.slug = /design-resources/icons/${node.slug}/          
      
        return node;
    }),
  },
];

module.exports = queries;

推荐阅读