doc.silverstripe.org/gatsby-config.js

116 lines
3.2 KiB
JavaScript

const path = require('path');
module.exports = {
siteMetadata: {
title: `Silverstripe CMS Documentation`,
description: `Developer documentation for the Silverstripe CMS and framework.`,
author: `The Silverstripe Community`,
siteUrl: `https://doc.silverstripe.org`,
},
plugins: [
`gatsby-plugin-react-helmet`,
`gatsby-plugin-sass`,
`gatsby-plugin-sharp`,
`gatsby-plugin-sitemap`,
{
resolve: `gatsby-source-filesystem`,
options: {
name: `files`,
path: `${__dirname}/static`
}
},
{
resolve: `gatsby-source-git`,
options: {
name: `4`,
remote: `https://github.com/unclecheese/silverstripe-framework.git`,
branch: `pulls/4/gatsby-docs`,
patterns: `docs/en/**`
}
},
{
resolve: `gatsby-source-git`,
options: {
name: `3`,
remote: `https://github.com/unclecheese/silverstripe-framework.git`,
branch: `pulls/3/gatsby-docs`,
patterns: `docs/en/**`
}
},
{
resolve: 'gatsby-transformer-remark',
options: {
plugins: [
{
resolve: `gatsby-remark-prismjs`,
options: {
aliases: {
ss: 'html',
}
}
},
`gatsby-remark-copy-linked-files`,
{
resolve: `gatsby-remark-images`,
options: {
maxWidth: 850,
},
},
]
}
},
`gatsby-plugin-typescript`,
{
resolve: `gatsby-plugin-styled-components`,
options: {
// Add any options here
},
},
{
resolve: `gatsby-plugin-purgecss`,
options: {
printRejected: false,
whitelist: ['algolia-autocomplete', 'pre', 'code'],
ignore: ['prismjs/','docsearch.js/', 'src/theme/assets/search/algolia.css'],
content: [
path.join(process.cwd(), '.cache/gatsby-source-git/**/*.md'),
path.join(process.cwd(), 'src/components/!(*.d).{ts,js,jsx,tsx}'),
path.join(process.cwd(), 'src/pages/!(*.d).{ts,js,jsx,tsx}'),
path.join(process.cwd(), 'src/templates/!(*.d).{ts,js,jsx,tsx}'),
],
extractors: [
{
extractor: class {
static extract(content) {
return content.match(/[A-Za-z0-9-_:\/]+/g) || [];
}
},
extensions: ['js', 'ts', 'jsx', 'tsx']
},
{
extractor: class {
static extract(content) {
const selectors = [`file-alt`]
const matches = content.match(/icon(Brand)?: ([a-zA-Z0-9_-]+)/);
if (matches) {
const isBrand = typeof matches[1] !== 'undefined';
selectors.push(isBrand ? `fab` : `fas`);
selectors.push(`fa-${matches[2]}`);
}
return selectors;
}
},
extensions: ['md']
},
]
},
},
{
resolve: `gatsby-plugin-offline`,
options: {
precachePages: [`/en/4/developer_guides/**`],
},
}
],
}