Include astro template urls in sitemap

getUrlsForAstroDefinedPages
This commit is contained in:
Sam Carlton 2022-06-11 18:49:19 -05:00
parent 7cc4c04347
commit 8c4700c7ea
2 changed files with 42 additions and 4 deletions

View file

@ -13,7 +13,10 @@ import buildGamesList from '~/helpers/build-game-list.js'
import buildHomebrewList from '~/helpers/build-homebrew-list.js' import buildHomebrewList from '~/helpers/build-homebrew-list.js'
import buildVideoList from '~/helpers/build-video-list.js' import buildVideoList from '~/helpers/build-video-list.js'
import buildDeviceList from '~/helpers/build-device-list.js' import buildDeviceList from '~/helpers/build-device-list.js'
import { saveSitemap } from '~/helpers/api/sitemap/build.js' import {
saveSitemap,
getUrlsForAstroDefinedPages
} from '~/helpers/api/sitemap/build.js'
import { deviceSupportsApp } from '~/helpers/devices.js' import { deviceSupportsApp } from '~/helpers/devices.js'
import getListSummaryNumbers from '~/helpers/get-list-summary-numbers.js' import getListSummaryNumbers from '~/helpers/get-list-summary-numbers.js'
import { logArraysDifference } from '~/helpers/array.js' import { logArraysDifference } from '~/helpers/array.js'
@ -702,6 +705,12 @@ class BuildLists {
}) })
} ) } )
// Add routes for Astro pages
const astroPageUrls = await getUrlsForAstroDefinedPages()
console.log( 'astroPageUrls', astroPageUrls )
// Save sitemap endpoints // Save sitemap endpoints
console.log('Building Sitemap JSON') console.log('Building Sitemap JSON')
await this.saveToJson( sitemapEndpoints, './static/sitemap-endpoints.json') await this.saveToJson( sitemapEndpoints, './static/sitemap-endpoints.json')

View file

@ -1,10 +1,39 @@
// import fs from 'fs-extra' import glob from 'fast-glob'
import { simpleSitemapAndIndex } from 'sitemap' import { simpleSitemapAndIndex } from 'sitemap'
import { import {
sitemapLocation sitemapLocation
} from '~/helpers/constants.js' } 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 ) { export async function saveSitemap ( sitemapUrls ) {