blob: 91a505b7741f6723b9b22a3a4d9e1b999da0f2d5 [file] [log] [blame]
const path = require('path');
const {defaultLangKey} = require('./src/i18n');
const mainTemplate = path.resolve('src', 'templates', 'main.jsx');
const docTemplate = path.resolve('src', 'templates', 'doc.jsx');
const createMarkdownPages = async ({createPage, graphql, reporter}) => {
const result = await graphql(`
{
allMarkdownRemark(
sort: { order: DESC, fields: [frontmatter___date] }
limit: 1000
) {
edges {
node {
fields {
slug
langKey
}
frontmatter {
path
}
}
}
}
}
`);
if (result.errors) {
reporter.panicOnBuild('Error while running GraphQL query for Markdown pages.');
return;
}
result.data.allMarkdownRemark.edges.forEach(({ node }) => {
createPage({
path: node.fields.slug,
component: mainTemplate,
context: {
langKey: node.fields.langKey,
slug: node.fields.slug
},
})
})
};
const createAsciiDocPages = async({createPage, graphql, reporter}) => {
const result = await graphql(`
{
allAsciidoc {
edges {
node {
id
document {
title
subtitle
main
}
}
}
}
}
`);
if (result.errors) {
reporter.panicOnBuild('Error while running GraphQL query for Asciidoc pages.');
return;
}
result.data.allAsciidoc.edges.forEach(({ node }) => {
const slug = `/docs/${node.document.title.replace(/(.*\/)?/, '')}`;
createPage({
path: slug,
component: docTemplate,
context: {
id: node.id,
langKey: defaultLangKey,
},
})
})
};
exports.createPages = async ({actions, graphql, reporter}) => {
const { createPage } = actions;
await createMarkdownPages({createPage, graphql, reporter});
await createAsciiDocPages({createPage, graphql, reporter});
};