feat(website): show source code for examples
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user