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:
76
apps/public-web/node_modules/next/dist/client/app-bootstrap.js
generated
vendored
Normal file
76
apps/public-web/node_modules/next/dist/client/app-bootstrap.js
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* Before starting the Next.js runtime and requiring any module, we need to make
|
||||
* sure the following scripts are executed in the correct order:
|
||||
* - Polyfills
|
||||
* - next/script with `beforeInteractive` strategy
|
||||
*/ "use strict";
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "appBootstrap", {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return appBootstrap;
|
||||
}
|
||||
});
|
||||
const _assetprefix = require("./asset-prefix");
|
||||
const _setattributesfromprops = require("./set-attributes-from-props");
|
||||
const version = "16.1.4";
|
||||
window.next = {
|
||||
version,
|
||||
appDir: true
|
||||
};
|
||||
function loadScriptsInSequence(scripts, hydrate) {
|
||||
if (!scripts || !scripts.length) {
|
||||
return hydrate();
|
||||
}
|
||||
return scripts.reduce((promise, [src, props])=>{
|
||||
return promise.then(()=>{
|
||||
return new Promise((resolve, reject)=>{
|
||||
const el = document.createElement('script');
|
||||
if (props) {
|
||||
(0, _setattributesfromprops.setAttributesFromProps)(el, props);
|
||||
}
|
||||
if (src) {
|
||||
el.src = src;
|
||||
el.onload = ()=>resolve();
|
||||
el.onerror = reject;
|
||||
} else if (props) {
|
||||
el.innerHTML = props.children;
|
||||
setTimeout(resolve);
|
||||
}
|
||||
document.head.appendChild(el);
|
||||
});
|
||||
});
|
||||
}, Promise.resolve()).catch((err)=>{
|
||||
console.error(err);
|
||||
// Still try to hydrate even if there's an error.
|
||||
}).then(()=>{
|
||||
hydrate();
|
||||
});
|
||||
}
|
||||
function appBootstrap(hydrate) {
|
||||
const assetPrefix = (0, _assetprefix.getAssetPrefix)();
|
||||
loadScriptsInSequence(self.__next_s, ()=>{
|
||||
// If the static shell is being debugged, skip hydration if the
|
||||
// `__nextppronly` query is present. This is only enabled when the
|
||||
// environment variable `__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING` is
|
||||
// set to `1`. Otherwise the following is optimized out.
|
||||
if (process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1') {
|
||||
const search = new URLSearchParams(window.location.search);
|
||||
if (search.get('__nextppronly') === 'fallback' || search.get('__nextppronly') === '1') {
|
||||
console.warn(`Skipping hydration due to __nextppronly=${search.get('__nextppronly')}`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
hydrate(assetPrefix);
|
||||
});
|
||||
}
|
||||
|
||||
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
|
||||
Object.defineProperty(exports.default, '__esModule', { value: true });
|
||||
Object.assign(exports.default, exports);
|
||||
module.exports = exports.default;
|
||||
}
|
||||
|
||||
//# sourceMappingURL=app-bootstrap.js.map
|
||||
Reference in New Issue
Block a user