const fs = require('fs') const globby = require('globby') const prettier = require('prettier') const siteMetadata = require('../data/siteMetadata') ;(async () => { const prettierConfig = await prettier.resolveConfig('./.prettierrc.js') const pages = await globby([ 'pages/*.js', 'data/**/*.mdx', 'data/**/*.md', 'public/tags/**/*.xml', '!pages/_*.js', '!pages/api', ]) const sitemap = ` ${pages .map((page) => { const path = page .replace('pages', '') .replace('data', '') .replace('public', '') .replace('.js', '') .replace('.mdx', '') .replace('.md', '') .replace('/index.xml', '') const route = path === '/index' ? '' : path return ` ${`${siteMetadata.siteUrl}${route}`} ` }) .join('')} ` const formatted = prettier.format(sitemap, { ...prettierConfig, parser: 'html', }) // eslint-disable-next-line no-sync fs.writeFileSync('public/sitemap.xml', formatted) })()