mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-18 06:44:46 -07:00
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
import glob from 'fast-glob'
|
|
import { simpleSitemapAndIndex } from 'sitemap'
|
|
|
|
|
|
import {
|
|
sitemapLocation
|
|
} from '~/helpers/constants.js'
|
|
import { getSiteUrl } from '~/helpers/url.js'
|
|
|
|
const astroPageTemplatePath = './src/pages'
|
|
|
|
export async function getUrlsForAstroDefinedPages () {
|
|
const siteUrl = getSiteUrl()
|
|
const filesPaths = await glob( `${ astroPageTemplatePath }/**/*.astro` )
|
|
|
|
const urls = []
|
|
|
|
for ( const filePath of filesPaths ) {
|
|
const urlPath = filePath
|
|
.replace( astroPageTemplatePath, '' )
|
|
.replace( '.astro', '' )
|
|
.replace( '/index', '/' )
|
|
|
|
// Skip any paths for templates that include '['
|
|
if ( urlPath.includes( '[' ) ) continue
|
|
|
|
console.log( 'urlPath', urlPath )
|
|
|
|
// Create a new url object from the site url and the path
|
|
const url = new URL( urlPath, siteUrl )
|
|
|
|
urls.push( url.pathname )
|
|
}
|
|
|
|
return urls
|
|
}
|
|
|
|
export async function saveSitemap ( sitemapUrls ) {
|
|
|
|
await simpleSitemapAndIndex({
|
|
hostname: process.env.PUBLIC_URL,
|
|
destinationDir: sitemapLocation,
|
|
gzip: false,
|
|
// [{ url: '/page-1/', changefreq: 'daily'}, ...],
|
|
sourceData: sitemapUrls.map( url => {
|
|
return {
|
|
url,
|
|
// Google doesn't care about changefreq and priority - https://www.seroundtable.com/google-priority-change-frequency-xml-sitemap-20273.html
|
|
// changefreq: 'daily'
|
|
}
|
|
}),
|
|
})
|
|
|
|
}
|