gatsby-source-lever
Source plugin for pulling data into Gatsby from
Lever.co.
Wish list
Install
npm install gatsby-source-lever
How to use
module.exports = {
plugins: [
{
resolve: "gatsby-source-lever",
options: {
site: "lever",
verboseOutput: false,
},
},
],
}
GraphQL Query to get all jobs
allLever {
edges {
node {
id
lever_id
createdAt
text
hostedUrl
applyUrl
categories {
commitment
location
team
}
description
descriptionPlain
lists {
text
content
}
additional
additionalPlain
}
}
}
Site's gatsby-node.js
example
If you wish to create Gatsby Pages for each Lever.co jobs, you can modify your
gatsby-node.js
.
const _ = require(`lodash`)
const Promise = require(`bluebird`)
const path = require(`path`)
const { slash } = require(`gatsby-core-utils`)
exports.createPages = ({ graphql, actions }) => {
const { createPage } = actions
return new Promise((resolve, reject) => {
graphql(
`
{
allLever {
edges {
node {
id
}
}
}
}
`
)
.then(result => {
if (result.errors) {
console.log(result.errors)
reject(result.errors)
}
const pageTemplate = path.resolve("./src/templates/page.js")
_.each(result.data.allLever.edges, edge => {
createPage({
path: `/${edge.node.id}/`,
component: slash(pageTemplate),
context: {
id: edge.node.id,
},
})
})
})
.then(resolve())
})
}