gatsby - 如何在上传到 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;
解决方案
使用你的transformer
:
const queries = [
{
query: iconQuery,
transformer: ({ data }) =>
data.allContentfulIcon.edges.map(({ node }) => {
node.slug = /design-resources/icons/${node.slug}/
return node;
}),
},
];
module.exports = queries;
推荐阅读
- c - 计算算法的执行时间
- arrays - 下标超出范围错误,当 Watch 显示它肯定在范围内时
- pentaho - Pentaho Report Designer 5.4:如何在 BeahShell 脚本函数中访问自定义表格?
- r - 如何使用 Amelia 的估算数据创建一个函数来运行多个回归模型?
- flutter - 颤振 - NoSuchMethodError:类'_MapStream
' 没有实例方法 'then' - python - 发生某些事件时,Flask 服务器将所有连接的客户端重定向到页面
- arrays - 如何在最大值中取消引用和使用(本地)数组(不使用listarray)?
- python - 从坐标python在图像上绘制点
- javascript - Mac上的Photoshop脚本重命名文件不起作用
- r - 由 selectInput 选择的内容的 shinyapps.IO 自定义 URL