mirror of
https://github.com/SonarSource/sonarqube.git
synced 2024-08-13 14:10:50 +02:00
![Grégoire Aubert](/assets/img/avatar_default.png)
* Upgrade to gatsby v2 * Migrate to TS * Add jest tests of some components * Remove glamor
79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
/*
|
|
* SonarQube
|
|
* Copyright (C) 2009-2019 SonarSource SA
|
|
* mailto:info AT sonarsource DOT com
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
const path = require('path');
|
|
const fs = require('fs-extra');
|
|
const { createFilePath } = require('gatsby-source-filesystem');
|
|
|
|
exports.onCreateNode = ({ node, getNode, actions }) => {
|
|
const { createNodeField } = actions;
|
|
if (node.internal.type === 'MarkdownRemark') {
|
|
const slug = createFilePath({ node, getNode, basePath: 'pages' });
|
|
createNodeField({
|
|
node,
|
|
name: 'slug',
|
|
value: slug
|
|
});
|
|
}
|
|
};
|
|
|
|
exports.createPages = ({ graphql, actions }) => {
|
|
const { createPage } = actions;
|
|
return new Promise((resolve, reject) => {
|
|
graphql(`
|
|
{
|
|
allMarkdownRemark {
|
|
edges {
|
|
node {
|
|
frontmatter {
|
|
url
|
|
}
|
|
headings {
|
|
depth
|
|
value
|
|
}
|
|
fields {
|
|
slug
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`).then(result => {
|
|
result.data.allMarkdownRemark.edges.forEach(({ node }) => {
|
|
createPage({
|
|
path: node.frontmatter.url || node.fields.slug,
|
|
component: path.resolve('./src/templates/page.tsx'),
|
|
context: {
|
|
// Data passed to context is available in page queries as GraphQL variables.
|
|
slug: node.fields.slug
|
|
}
|
|
});
|
|
});
|
|
resolve();
|
|
});
|
|
});
|
|
};
|
|
|
|
exports.onPostBootstrap = () => {
|
|
const from = path.resolve(__dirname, 'src/images');
|
|
const to = path.resolve(__dirname, 'public/images');
|
|
return fs.copy(from, to);
|
|
};
|