'use strict'; const _ = require('lodash'); const { createFilePath } = require('gatsby-source-filesystem'); const { fmImagesToRelative } = require('gatsby-remark-relative-images'); const onCreateNode = ({ node, actions, getNode }) => { const { createNodeField } = actions; fmImagesToRelative(node); if (node.internal.type === 'MarkdownRemark') { if (typeof node.frontmatter.path !== 'undefined') { createNodeField({ node, name: 'slug', value: node.frontmatter.path }); } else { const value = createFilePath({ node, getNode }); createNodeField({ name: 'slug', node, value, }); } if (node.frontmatter.tags) { const tagSlugs = node.frontmatter.tags.map((tag) => `/tag/${_.kebabCase(tag)}/`); createNodeField({ node, name: 'tagSlugs', value: tagSlugs }); } if (node.frontmatter.category) { const categorySlug = `/category/${_.kebabCase(node.frontmatter.category)}/`; createNodeField({ node, name: 'categorySlug', value: categorySlug }); } } }; module.exports = onCreateNode;