mirror of
https://github.com/withastro/astro.git
synced 2025-01-06 22:10:10 -05:00
simplify status code regex
This commit is contained in:
parent
eb29cd5d33
commit
069e497a74
2 changed files with 4 additions and 87 deletions
|
@ -1,45 +1,4 @@
|
||||||
const ERROR_STATUS_CODE_REGEXES = [
|
const STATUS_CODE_PAGE_REGEXP = /\/[0-9]{3}\/?$/;
|
||||||
/400\/?$/,
|
|
||||||
/401\/?$/,
|
|
||||||
/402\/?$/,
|
|
||||||
/403\/?$/,
|
|
||||||
/404\/?$/,
|
|
||||||
/405\/?$/,
|
|
||||||
/406\/?$/,
|
|
||||||
/407\/?$/,
|
|
||||||
/408\/?$/,
|
|
||||||
/409\/?$/,
|
|
||||||
/410\/?$/,
|
|
||||||
/411\/?$/,
|
|
||||||
/412\/?$/,
|
|
||||||
/413\/?$/,
|
|
||||||
/414\/?$/,
|
|
||||||
/415\/?$/,
|
|
||||||
/416\/?$/,
|
|
||||||
/417\/?$/,
|
|
||||||
/418\/?$/,
|
|
||||||
/421\/?$/,
|
|
||||||
/422\/?$/,
|
|
||||||
/423\/?$/,
|
|
||||||
/424\/?$/,
|
|
||||||
/425\/?$/,
|
|
||||||
/426\/?$/,
|
|
||||||
/428\/?$/,
|
|
||||||
/429\/?$/,
|
|
||||||
/431\/?$/,
|
|
||||||
/451\/?$/,
|
|
||||||
/500\/?$/,
|
|
||||||
/501\/?$/,
|
|
||||||
/502\/?$/,
|
|
||||||
/503\/?$/,
|
|
||||||
/504\/?$/,
|
|
||||||
/505\/?$/,
|
|
||||||
/506\/?$/,
|
|
||||||
/507\/?$/,
|
|
||||||
/508\/?$/,
|
|
||||||
/510\/?$/,
|
|
||||||
/511\/?$/,
|
|
||||||
];
|
|
||||||
|
|
||||||
/** Construct sitemap.xml given a set of URLs */
|
/** Construct sitemap.xml given a set of URLs */
|
||||||
export function generateSitemap(pages: string[]): string {
|
export function generateSitemap(pages: string[]): string {
|
||||||
|
@ -50,7 +9,7 @@ export function generateSitemap(pages: string[]): string {
|
||||||
// copy just in case original copy is needed
|
// copy just in case original copy is needed
|
||||||
// make sure that 404 page is excluded
|
// make sure that 404 page is excluded
|
||||||
// also works for other error pages
|
// also works for other error pages
|
||||||
const urls = [...pages].filter((url) => !ERROR_STATUS_CODE_REGEXES.find((code) => code.test(url)));
|
const urls = [...pages].filter((url) => !STATUS_CODE_PAGE_REGEXP.test(url));
|
||||||
urls.sort((a, b) => a.localeCompare(b, 'en', { numeric: true })); // sort alphabetically so sitemap is same each time
|
urls.sort((a, b) => a.localeCompare(b, 'en', { numeric: true })); // sort alphabetically so sitemap is same each time
|
||||||
let sitemap = `<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">`;
|
let sitemap = `<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">`;
|
||||||
for (const url of urls) {
|
for (const url of urls) {
|
||||||
|
|
|
@ -25,48 +25,7 @@ const ASTRO_PAGE_PREFIX = '@astro-page';
|
||||||
const ASTRO_SCRIPT_PREFIX = '@astro-script';
|
const ASTRO_SCRIPT_PREFIX = '@astro-script';
|
||||||
|
|
||||||
const ASTRO_EMPTY = '@astro-empty';
|
const ASTRO_EMPTY = '@astro-empty';
|
||||||
const ERROR_STATUS_CODES = [
|
const STATUS_CODE_REGEXP = /^[0-9]{3}$/;
|
||||||
'400',
|
|
||||||
'401',
|
|
||||||
'402',
|
|
||||||
'403',
|
|
||||||
'404',
|
|
||||||
'405',
|
|
||||||
'406',
|
|
||||||
'407',
|
|
||||||
'408',
|
|
||||||
'409',
|
|
||||||
'410',
|
|
||||||
'411',
|
|
||||||
'412',
|
|
||||||
'413',
|
|
||||||
'414',
|
|
||||||
'415',
|
|
||||||
'416',
|
|
||||||
'417',
|
|
||||||
'418',
|
|
||||||
'421',
|
|
||||||
'422',
|
|
||||||
'423',
|
|
||||||
'424',
|
|
||||||
'425',
|
|
||||||
'426',
|
|
||||||
'428',
|
|
||||||
'429',
|
|
||||||
'431',
|
|
||||||
'451',
|
|
||||||
'500',
|
|
||||||
'501',
|
|
||||||
'502',
|
|
||||||
'503',
|
|
||||||
'504',
|
|
||||||
'505',
|
|
||||||
'506',
|
|
||||||
'507',
|
|
||||||
'508',
|
|
||||||
'510',
|
|
||||||
'511',
|
|
||||||
];
|
|
||||||
|
|
||||||
interface PluginOptions {
|
interface PluginOptions {
|
||||||
astroConfig: AstroConfig;
|
astroConfig: AstroConfig;
|
||||||
|
@ -523,8 +482,7 @@ export function rollupPluginAstroBuildHTML(options: PluginOptions): VitePlugin {
|
||||||
let outPath: string;
|
let outPath: string;
|
||||||
|
|
||||||
// Output directly to 404.html rather than 404/index.html
|
// Output directly to 404.html rather than 404/index.html
|
||||||
// Supports any other status codes, too
|
if (astroConfig.buildOptions.pageUrlFormat === 'file' || STATUS_CODE_REGEXP.test(name)) {
|
||||||
if (ERROR_STATUS_CODES.find((code) => code === name) || astroConfig.buildOptions.pageUrlFormat === 'file') {
|
|
||||||
outPath = `${removeEndingForwardSlash(name || 'index')}.html`;
|
outPath = `${removeEndingForwardSlash(name || 'index')}.html`;
|
||||||
} else {
|
} else {
|
||||||
outPath = npath.posix.join(name, 'index.html');
|
outPath = npath.posix.join(name, 'index.html');
|
||||||
|
|
Loading…
Reference in a new issue