feat(blog): add file-based blog with dynamic slugs, MDX content and layout shell
- Introduced blog routing using Next.js App Router - Implemented dynamic [slug] pages for blog posts - Added MDX-based content loading via lib/posts - Integrated shared TopBar layout with navigation - Established clear content, lib and component separation
This commit is contained in:
23
apps/public-web/node_modules/next/dist/esm/server/server-route-utils.js
generated
vendored
Normal file
23
apps/public-web/node_modules/next/dist/esm/server/server-route-utils.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
import { getRequestMeta } from './request-meta';
|
||||
import { stringify as stringifyQs } from 'querystring';
|
||||
// since initial query values are decoded by querystring.parse
|
||||
// we need to re-encode them here but still allow passing through
|
||||
// values from rewrites/redirects
|
||||
export const stringifyQuery = (req, query)=>{
|
||||
const initialQuery = getRequestMeta(req, 'initQuery') || {};
|
||||
const initialQueryValues = Object.values(initialQuery);
|
||||
return stringifyQs(query, undefined, undefined, {
|
||||
encodeURIComponent (value) {
|
||||
if (value in initialQuery || initialQueryValues.some((initialQueryVal)=>{
|
||||
// `value` always refers to a query value, even if it's nested in an array
|
||||
return Array.isArray(initialQueryVal) ? initialQueryVal.includes(value) : initialQueryVal === value;
|
||||
})) {
|
||||
// Encode keys and values from initial query
|
||||
return encodeURIComponent(value);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//# sourceMappingURL=server-route-utils.js.map
|
||||
Reference in New Issue
Block a user