У меня следующая структура папок:
- сообщений
- 2018
- Папка
- index.md
- index. (png | jpg | webp)
Таким образом, у каждого сообщения есть изображение героя.В моем узле 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
я передаю этот фрагмент в контекст, а в шаблоне язапросить изображение на основе этого слага в контексте:
export const query = graphql`
query PostTemplateQuery($slug: String!) {
imageSharp(fields: { postSlug: { eq: $slug } }) {
fluid(maxWidth: 1024) {
...GatsbyImageSharpFluid_noBase64
}
}
}
`
Это все работает, но есть ли более простой способ связать соседние изображения с уценкой?