mirror of
https://github.com/withastro/astro.git
synced 2024-12-16 21:46:22 -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 = [
|
||||
/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\/?$/,
|
||||
];
|
||||
const STATUS_CODE_PAGE_REGEXP = /\/[0-9]{3}\/?$/;
|
||||
|
||||
/** Construct sitemap.xml given a set of URLs */
|
||||
export function generateSitemap(pages: string[]): string {
|
||||
|
@ -50,7 +9,7 @@ export function generateSitemap(pages: string[]): string {
|
|||
// copy just in case original copy is needed
|
||||
// make sure that 404 page is excluded
|
||||
// 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
|
||||
let sitemap = `<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">`;
|
||||
for (const url of urls) {
|
||||
|
|
|
@ -25,48 +25,7 @@ const ASTRO_PAGE_PREFIX = '@astro-page';
|
|||
const ASTRO_SCRIPT_PREFIX = '@astro-script';
|
||||
|
||||
const ASTRO_EMPTY = '@astro-empty';
|
||||
const ERROR_STATUS_CODES = [
|
||||
'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',
|
||||
];
|
||||
const STATUS_CODE_REGEXP = /^[0-9]{3}$/;
|
||||
|
||||
interface PluginOptions {
|
||||
astroConfig: AstroConfig;
|
||||
|
@ -523,8 +482,7 @@ export function rollupPluginAstroBuildHTML(options: PluginOptions): VitePlugin {
|
|||
let outPath: string;
|
||||
|
||||
// Output directly to 404.html rather than 404/index.html
|
||||
// Supports any other status codes, too
|
||||
if (ERROR_STATUS_CODES.find((code) => code === name) || astroConfig.buildOptions.pageUrlFormat === 'file') {
|
||||
if (astroConfig.buildOptions.pageUrlFormat === 'file' || STATUS_CODE_REGEXP.test(name)) {
|
||||
outPath = `${removeEndingForwardSlash(name || 'index')}.html`;
|
||||
} else {
|
||||
outPath = npath.posix.join(name, 'index.html');
|
||||
|
|
Loading…
Reference in a new issue