* Validate input to BadgeFactory.create() (#3875) * validate input to create() * remove deprecated properties (#3881) * remove BadgeFactory class (#3884) * Template literal templates (#4459) - Remove use of the doT template library and move to generating SVG output using javascript template literals. - Drop SVGO and mostly manually implement the optimisations. - Add a bunch more tests Co-authored-by: Paul Melnikow <github@paulmelnikow.com> * drop raster support in package CLI (#4523) * drop raster support in package CLI * update docs * rename gh-badges package to badge-maker * rename gh-badges dir to badge-maker * update relative imports and other refs to in parent dir 'gh-badges' --> 'badge-maker' * update snyk service tests This change is only tangentially related We've used the shields repo as an example for these tests so moving files around in our repo has a knock-on effect on them * add missing type hints to dev style page * write the changelog/migration guide for v3 * use extension in README CLI example * update CLI help whoops - missed this in #4523 * bump version * update for self-hosting users * README updates * drop .format param from CLI, always output SVG * Change text[] to label and message, Remove JSON output - Change text[] to label and message - Fix message only badge - Remove JSON output format - Update the docs * update package-lock * rename 'template' to 'style' * handle invalid styles in coalesceBadge * ensure makeBadge is passed a string for template in coalesceBadge() issue #4925 * fix (logo/no label text/label color specified) case issue #4926 * add example of (logo/no label text/label color specified) to style debug page * update type defs * padding fix for FTB style Co-authored-by: Paul Melnikow <github@paulmelnikow.com>
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
'use strict'
|
|
|
|
/*
|
|
* Implement Gatsby's Node APIs in this file.
|
|
*
|
|
* See: https://www.gatsbyjs.org/docs/node-apis/
|
|
*/
|
|
|
|
const fs = require('fs')
|
|
const yaml = require('js-yaml')
|
|
const envFlag = require('node-env-flag')
|
|
|
|
const includeDevPages = envFlag(process.env.INCLUDE_DEV_PAGES, true)
|
|
|
|
const { categories } = yaml.safeLoad(
|
|
fs.readFileSync('./service-definitions.yml', 'utf8')
|
|
)
|
|
|
|
// Often in Gatsby context gets piped through GraphQL, but GraphQL adds
|
|
// unnecessary complexity here, so this uses the programmatic API.
|
|
// https://www.gatsbyjs.org/docs/using-gatsby-without-graphql/#the-approach-fetch-data-and-use-gatsbys-createpages-api
|
|
async function createPages({ actions: { createPage } }) {
|
|
if (includeDevPages) {
|
|
createPage({
|
|
path: '/dev/styles',
|
|
component: require.resolve(
|
|
'./frontend/components/development/style-page.tsx'
|
|
),
|
|
})
|
|
createPage({
|
|
path: '/dev/logos',
|
|
component: require.resolve(
|
|
'./frontend/components/development/logo-page.tsx'
|
|
),
|
|
})
|
|
}
|
|
|
|
categories.forEach(category => {
|
|
const { id } = category
|
|
createPage({
|
|
path: `/category/${id}`,
|
|
component: require.resolve('./frontend/components/main.tsx'),
|
|
// `context` provided here becomes `props.pageContext` on the page.
|
|
context: { category },
|
|
})
|
|
})
|
|
}
|
|
|
|
module.exports = { createPages }
|