mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-08 22:57:20 +02:00
* Fix bad routing regex for sitemap & feed * add tests for sitemap & feed * use next middleware function if file nto found * add pages routing & test * refactor + add more test for page routing * extension-less url routing + test * refactor out requestFile * add dot routing + test to handle special case like http://localhost:3000/blog/2018/05/27/1.13.0 * exit properly * add more test for sitemap * update nits from my phone
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
/**
|
|
* Copyright (c) 2017-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
const escape = require('escape-string-regexp');
|
|
|
|
function blogRouting(baseUrl) {
|
|
return new RegExp(`^${escape(baseUrl)}blog\/.*html$`);
|
|
}
|
|
|
|
function docsRouting(baseUrl) {
|
|
return new RegExp(`^${escape(baseUrl)}docs\/.*html$`);
|
|
}
|
|
|
|
function dotRouting() {
|
|
return /(?!.*html$)^\/.*\.[^\n\/]+$/;
|
|
}
|
|
|
|
function feedRouting(baseUrl) {
|
|
return new RegExp(`^${escape(baseUrl)}blog\/(feed\.xml|atom\.xml)$`);
|
|
}
|
|
|
|
function noExtRouting() {
|
|
return /\/[^\.]*\/?$/;
|
|
}
|
|
|
|
function pageRouting(baseUrl) {
|
|
const gr = regex => regex.toString().replace(/(^\/|\/$)/gm, '');
|
|
return new RegExp(
|
|
`(?!${gr(docsRouting(baseUrl))}|${gr(blogRouting(baseUrl))})^${escape(
|
|
baseUrl
|
|
)}.*\.html$`
|
|
);
|
|
}
|
|
|
|
function sitemapRouting(baseUrl) {
|
|
return new RegExp(`^${escape(baseUrl)}sitemap.xml$`);
|
|
}
|
|
|
|
module.exports = {
|
|
blogRouting,
|
|
docsRouting,
|
|
dotRouting,
|
|
feedRouting,
|
|
pageRouting,
|
|
noExtRouting,
|
|
sitemapRouting,
|
|
};
|