我具有以下文件夹结构:
因此每个帖子都有一个英雄形象。在我的gatsby节点中,我在每个图像上创建一个字段postSlug
,如下所示:
if (node.internal.type === 'ImageSharp') {
const relativeFilePath = createFilePath({
node,
getNode,
basePath: 'pages',
})
const isPostImage = isFilePost(relativeFilePath)
if (isPostImage) {
createNodeField({
node,
name: 'postSlug',
value: relativeFilePath,
})
}
}
对于每个页面,在createPages
动作中,我将此this传递到上下文中,在模板中,我根据上下文中的该this查询图像:
export const query = graphql`
query PostTemplateQuery($slug: String!) {
imageSharp(fields: { postSlug: { eq: $slug } }) {
fluid(maxWidth: 1024) {
...GatsbyImageSharpFluid_noBase64
}
}
}
`
这一切都可行,但是有没有更简单的方法将相邻图像与Markdown关联起来?