Files
abc-project-design/gatsby-node.js

58 lines
1.4 KiB
JavaScript

const { resolve } = require("path");
const caseStudies = require("./src/data/case-studies.json");
exports.sourceNodes = ({ actions, createNodeId, createContentDigest }) => {
Object.keys(caseStudies).forEach(key => {
caseStudies[key].forEach((cs, i) => {
const {
title,
titleColor,
location,
image,
key_features,
price,
time_taken,
date,
content
} = cs;
const node = {
path: `/services/${key}/case-study-${i + 1}`,
type: key,
title,
titleColor,
location,
image,
key_features,
price,
time_taken,
date,
content,
id: createNodeId(`${key}-${i + 1}`),
internal: {
type: "CaseStudy",
contentDigest: createContentDigest(cs)
}
};
actions.createNode(node);
});
});
};
exports.createPages = async ({ actions }) => {
const { createPage } = actions;
const template = resolve(__dirname, `src/case-study.js`);
Object.keys(caseStudies).forEach(key => {
caseStudies[key].forEach((cs, i) => {
const path = `/services/${key}/case-study-${i + 1}`;
createPage({
path,
component: template,
context: {
pagePath: path,
images: `/${key}-cs${i + 1}(.*).jpg$/`
}
});
});
});
};