storybook/docs/gatsby-node.js

34 lines
744 B
JavaScript
Raw Normal View History

2017-05-15 17:44:56 +10:00
// From: https://gist.github.com/ivanoats/8d01d9e934fdc17bae9090147f1e799b
const fs = require('fs');
const sm = require('sitemap');
function pagesToSitemap(pages) {
const urls = pages.map(p => {
if (p.path !== undefined) {
return {
url: p.path,
changefreq: 'daily',
priority: 0.7,
};
}
});
return urls.filter(u => u !== undefined);
}
function generateSitemap(pages) {
const sitemap = sm.createSitemap({
hostname: 'https://storybooks.js.org',
cacheTime: '60000',
urls: pagesToSitemap(pages),
});
fs.writeFileSync(`${__dirname}/public/sitemap.xml`, sitemap.toString());
}
module.exports = {
postBuild(pages, callback) {
generateSitemap(pages);
callback();
},
};