58 lines
1.4 KiB
JavaScript
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$/`
|
|
}
|
|
});
|
|
});
|
|
});
|
|
};
|