【发布时间】:2020-02-13 18:35:54
【问题描述】:
我正在尝试在我的 Gatsby 网站上创建第二个博客模板。我才刚刚开始学习 Javascript,所以我需要 gatsby-node.js 文件的帮助。
我试图复制每一行函数以创建第二个博客模板,但每次都失败了,所以如果有人可以浏览我的代码并提供正确的函数,那将非常有帮助。
我目前有一个可以成功运行的“文章”模板。我想创建第二个“项目”模板。
这是我当前的 gatsby-node.js 文件,它只调用“文章”博客模板。
const path = require('path');
const { createFilePath } = require('gatsby-source-filesystem');
// Look at every node when it is created
exports.onCreateNode = ({node, getNode, actions}) => {
// Check for markdown nodes
const { createNodeField } = actions;
if(node.internal.type === 'MarkdownRemark') {
// Create a slug out of the markdown filepath name
const slug = createFilePath({
node,
getNode,
basePath: 'articles'
});
// Add the newly created slug to the node itself
createNodeField({
node,
name: 'slug',
value: `/article${slug}`
});
}
};
exports.createPages = ({ graphql, actions }) => {
const { createPage } = actions
return new Promise((resolve, reject) => {
graphql(`
{
allMarkdownRemark {
edges {
node {
fields {
slug
}
}
}
}
}
`).then(result => {
result.data.allMarkdownRemark.edges.forEach(({ node }) => {
createPage({
path: node.fields.slug,
component: path.resolve(`./src/templates/article.js`),
context: {
// Data passed to context is available in page queries as GraphQL variables.
slug: node.fields.slug,
},
})
})
resolve()
})
})
};
如何配置此文件以调用第二个博客模板(“项目”)?
【问题讨论】:
标签: javascript node.js gatsby