diff --git a/gatsby-config.js b/gatsby-config.js index bf893de..dcce30c 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -20,6 +20,20 @@ module.exports = { ], }, plugins: [ + { + resolve: `gatsby-source-filesystem`, + options: { + name: `data`, + path: `${__dirname}/content/pages`, + }, + }, + { + resolve: `gatsby-transformer-remark`, + options: { + filter: node => node.sourceInstanceName === `data`, + type: `MarkdownPage` + } + }, { resolve: `gatsby-source-filesystem`, options: { @@ -27,11 +41,12 @@ module.exports = { path: `${__dirname}/content/posts/`, }, }, - `gatsby-plugin-react-helmet`, { resolve: `gatsby-transformer-remark`, options: { - excerpt_separator: `` + filter: node => node.sourceInstanceName === `pages`, + excerpt_separator: ``, + type: `BlogPost` } }, { @@ -43,6 +58,7 @@ module.exports = { }, `gatsby-transformer-sharp`, `gatsby-plugin-sharp`, + `gatsby-plugin-react-helmet`, { resolve: `gatsby-plugin-manifest`, options: { diff --git a/gatsby-node.js b/gatsby-node.js index 95e67b5..5a1cacf 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -5,11 +5,17 @@ exports.onCreateNode = ({ node, getNode, actions }) => { const { createNodeField } = actions if (node.internal.type === `MarkdownRemark`) { const slug = createFilePath({ node, getNode, basePath: `pages` }) + const parent = getNode(node.parent) createNodeField({ node, name: `slug`, value: slug, }) + createNodeField({ + node, + name: 'collection', + value: parent.sourceInstanceName, + }) } } @@ -19,7 +25,7 @@ exports.createPages = async ({ graphql, actions, reporter }) => { const result = await graphql( ` { - allMarkdownRemark(filter: {frontmatter: {draft: {ne: true}}}) { + allMarkdownRemark(filter:{frontmatter: {draft: {ne: true}}, fields: {collection: {eq: "posts"}}}) { edges { node { fields { @@ -41,7 +47,6 @@ exports.createPages = async ({ graphql, actions, reporter }) => { // Create pages for each markdown file. const blogPostTemplate = path.resolve(`src/templates/blog-post.js`) result.data.allMarkdownRemark.edges.forEach(({ node }) => { - console.log(node); createPage({ path: `/posts${node.fields.slug}`, component: blogPostTemplate, diff --git a/src/pages/blog.js b/src/pages/blog.js index 7b143d8..ecfd936 100644 --- a/src/pages/blog.js +++ b/src/pages/blog.js @@ -12,7 +12,7 @@ const IndexPage = () => { query { allMarkdownRemark( sort: { order: DESC, fields: [frontmatter___date] } - filter: {frontmatter: {draft: {ne: true}}} + filter: {frontmatter: {draft: {ne: true}}, fields: {collection: {eq: "posts"}}} ) { edges { node {