feat(website): show source code for examples

This commit is contained in:
moklick
2020-10-12 14:27:36 +02:00
parent eeafad3694
commit ae17b99a0c
25 changed files with 364 additions and 398 deletions
+55
View File
@@ -0,0 +1,55 @@
const path = require('path');
const exampleTemplate = path.resolve('./src/templates/example-page.js');
const examplePagesQuery = `{
allExamplesJson {
edges {
node {
slug
title
source
}
}
}
}
`;
const createExamplePage = (createPage, examplePages) => {
examplePages.forEach((page) => {
const { slug, title, source } = page.node;
createPage({
path: slug,
component: exampleTemplate,
context: {
slug: slug,
title: title,
source: source,
sourceSlug: `/example-flows/${source}/`,
},
});
});
};
const exampleGenerator = (createPage, graphql) =>
new Promise((resolve, reject) => {
resolve(
graphql(examplePagesQuery).then((result) => {
if (result.errors) {
console.log(result.errors);
reject(result.errors);
}
const pages = result.data.allExamplesJson.edges;
try {
createExamplePage(createPage, pages);
} catch (e) {
console.log(e);
}
})
);
});
module.exports = exampleGenerator;