mirror of
https://github.com/storybookjs/storybook.git
synced 2025-03-21 05:02:39 +08:00
34 lines
744 B
JavaScript
34 lines
744 B
JavaScript
|
// 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();
|
||
|
},
|
||
|
};
|