category | cover | title | description | date | published | slug |
---|---|---|---|---|---|---|
blog |
./cover.jpg |
Test |
Test |
2020-06-14 |
true |
test |
Test
module.exports = { | |
siteMetadata: { | |
title: 'Tim Feeley', | |
description: 'People-centric Product Management', | |
author: 'Tim Feeley', | |
}, | |
plugins: [ | |
{ | |
resolve: `gatsby-source-filesystem`, | |
options: { | |
path: `${__dirname}/content/`, | |
}, | |
}, | |
{ | |
resolve: 'gatsby-plugin-page-creator', | |
options: { | |
path: `${__dirname}/src/images`, | |
}, | |
}, | |
{ | |
resolve: `gatsby-plugin-mdx`, | |
options: { | |
extensions: [`.mdx`, `.md`], | |
}, | |
plugins: [`gatsby-remark-images`, `gatsby-remark-copy-linked-files`], | |
gatsbyRemarkPlugins: [ | |
{ | |
resolve: `gatsby-remark-copy-linked-files`, | |
}, | |
{ | |
resolve: `gatsby-remark-images`, | |
options: { | |
maxWidth: 590, | |
}, | |
}, | |
], | |
}, | |
{ | |
resolve: `gatsby-plugin-sass`, | |
options: { | |
implementation: require('sass'), | |
postCssPlugins: [require(`tailwindcss`), require(`tailwindcss`), require(`./tailwind.config.js`)], | |
}, | |
}, | |
{ | |
resolve: `gatsby-plugin-typegen`, | |
options: { | |
emitSchema: { | |
'./src/__generated__/gatsby-schema.graphql': true, | |
}, | |
emitPluginDocuments: { | |
'./src/__generated__/gatsby-plugin-documents.graphql': true, | |
}, | |
}, | |
}, | |
`gatsby-plugin-codegen`, | |
`gatsby-plugin-preload-fonts`, | |
`gatsby-plugin-react-helmet`, | |
// `gatsby-plugin-force-trailing-slashes`, | |
`gatsby-transformer-sharp`, | |
`gatsby-plugin-sharp`, | |
`gatsby-plugin-slug`, | |
], | |
}; |
const path = require(`path`); | |
const { createFilePath } = require(`gatsby-source-filesystem`); | |
// exports.onCreateWebpackConfig = ({ actions }) => { | |
// actions.setWebpackConfig({ | |
// resolve: { | |
// modules: [path.resolve(__dirname, `src`), `node_modules`], | |
// }, | |
// }); | |
// }; | |
exports.createPages = async ({ graphql, actions }) => { | |
const { createPage } = actions; | |
const postTemplate = path.resolve(`src/templates/Post/index.tsx`); | |
const pageTemplate = path.resolve(`src/templates/Page/index.tsx`); | |
const genPosts = await graphql(` | |
query { | |
allMdx( | |
filter: { frontmatter: { category: { in: ["blog"] } } } | |
sort: { fields: frontmatter___date, order: DESC } | |
) { | |
edges { | |
node { | |
id | |
fields { | |
slug | |
} | |
frontmatter { | |
title | |
} | |
body | |
} | |
} | |
} | |
} | |
`); | |
const posts = genPosts.data.allMdx.edges; | |
posts.forEach((post, index) => { | |
const previous = index === posts.length - 1 ? null : posts[index + 1].node; | |
const next = index === 0 ? null : posts[index - 1].node; | |
createPage({ | |
path: `${post.node.fields.slug}`, | |
component: postTemplate, | |
context: { | |
slug: `${post.node.fields.slug}`, | |
previous, | |
next, | |
}, | |
}); | |
}); | |
const genPages = await graphql(` | |
query { | |
allMdx( | |
filter: { frontmatter: { category: { in: ["page"] } } } | |
sort: { fields: frontmatter___date, order: DESC } | |
) { | |
edges { | |
node { | |
id | |
fields { | |
slug | |
} | |
frontmatter { | |
title | |
} | |
body | |
} | |
} | |
} | |
} | |
`); | |
const pages = genPages.data.allMdx.edges; | |
pages.forEach((page, index) => { | |
createPage({ | |
path: `${page.node.fields.slug}`, | |
component: pageTemplate, | |
context: { | |
slug: `${page.node.fields.slug}`, | |
}, | |
}); | |
}); | |
}; |