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:
PascalSchattenburg
2026-01-22 14:14:15 +01:00
parent b717952234
commit d147843c76
10412 changed files with 2475583 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
"use strict";
const ERROR_MESSAGE = 'Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo.';
function error() {
throw Object.defineProperty(new Error(ERROR_MESSAGE), "__NEXT_ERROR_CODE", {
value: "E394",
enumerable: false,
configurable: true
});
}
var b;
if (process.env.NEXT_RUNTIME === 'nodejs') {
if (process.env.NODE_ENV === 'production') {
b = require('next/dist/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js');
} else {
b = require('next/dist/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js');
}
} else {
if (process.env.NODE_ENV === 'production') {
b = require('next/dist/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js');
} else {
b = require('next/dist/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js');
}
}
exports.version = b.version;
exports.renderToReadableStream = b.renderToReadableStream;
exports.renderToString = error;
exports.renderToStaticMarkup = error;
if (b.resume) {
exports.resume = b.resume;
}
//# sourceMappingURL=react-dom-server-experimental.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/webpack/alias/react-dom-server-experimental.js"],"sourcesContent":["const ERROR_MESSAGE =\n 'Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo.'\n\nfunction error() {\n throw new Error(ERROR_MESSAGE)\n}\n\nvar b\nif (process.env.NEXT_RUNTIME === 'nodejs') {\n if (process.env.NODE_ENV === 'production') {\n b = require('next/dist/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js')\n } else {\n b = require('next/dist/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js')\n }\n} else {\n if (process.env.NODE_ENV === 'production') {\n b = require('next/dist/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js')\n } else {\n b = require('next/dist/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js')\n }\n}\n\nexports.version = b.version\nexports.renderToReadableStream = b.renderToReadableStream\nexports.renderToString = error\nexports.renderToStaticMarkup = error\nif (b.resume) {\n exports.resume = b.resume\n}\n"],"names":["ERROR_MESSAGE","error","Error","b","process","env","NEXT_RUNTIME","NODE_ENV","require","exports","version","renderToReadableStream","renderToString","renderToStaticMarkup","resume"],"mappings":";AAAA,MAAMA,gBACJ;AAEF,SAASC;IACP,MAAM,qBAAwB,CAAxB,IAAIC,MAAMF,gBAAV,qBAAA;eAAA;oBAAA;sBAAA;IAAuB;AAC/B;AAEA,IAAIG;AACJ,IAAIC,QAAQC,GAAG,CAACC,YAAY,KAAK,UAAU;IACzC,IAAIF,QAAQC,GAAG,CAACE,QAAQ,KAAK,cAAc;QACzCJ,IAAIK,QAAQ;IACd,OAAO;QACLL,IAAIK,QAAQ;IACd;AACF,OAAO;IACL,IAAIJ,QAAQC,GAAG,CAACE,QAAQ,KAAK,cAAc;QACzCJ,IAAIK,QAAQ;IACd,OAAO;QACLL,IAAIK,QAAQ;IACd;AACF;AAEAC,QAAQC,OAAO,GAAGP,EAAEO,OAAO;AAC3BD,QAAQE,sBAAsB,GAAGR,EAAEQ,sBAAsB;AACzDF,QAAQG,cAAc,GAAGX;AACzBQ,QAAQI,oBAAoB,GAAGZ;AAC/B,IAAIE,EAAEW,MAAM,EAAE;IACZL,QAAQK,MAAM,GAAGX,EAAEW,MAAM;AAC3B","ignoreList":[0]}

View File

@@ -0,0 +1,32 @@
"use strict";
const ERROR_MESSAGE = 'Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo.';
function error() {
throw Object.defineProperty(new Error(ERROR_MESSAGE), "__NEXT_ERROR_CODE", {
value: "E394",
enumerable: false,
configurable: true
});
}
var b;
if (process.env.NEXT_RUNTIME === 'nodejs') {
if (process.env.NODE_ENV === 'production') {
b = require('next/dist/compiled/react-dom/cjs/react-dom-server.node.production.js');
} else {
b = require('next/dist/compiled/react-dom/cjs/react-dom-server.node.development.js');
}
} else {
if (process.env.NODE_ENV === 'production') {
b = require('next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.js');
} else {
b = require('next/dist/compiled/react-dom/cjs/react-dom-server.edge.development.js');
}
}
exports.version = b.version;
exports.renderToReadableStream = b.renderToReadableStream;
exports.renderToString = error;
exports.renderToStaticMarkup = error;
if (b.resume) {
exports.resume = b.resume;
}
//# sourceMappingURL=react-dom-server.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/build/webpack/alias/react-dom-server.js"],"sourcesContent":["const ERROR_MESSAGE =\n 'Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo.'\n\nfunction error() {\n throw new Error(ERROR_MESSAGE)\n}\n\nvar b\nif (process.env.NEXT_RUNTIME === 'nodejs') {\n if (process.env.NODE_ENV === 'production') {\n b = require('next/dist/compiled/react-dom/cjs/react-dom-server.node.production.js')\n } else {\n b = require('next/dist/compiled/react-dom/cjs/react-dom-server.node.development.js')\n }\n} else {\n if (process.env.NODE_ENV === 'production') {\n b = require('next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.js')\n } else {\n b = require('next/dist/compiled/react-dom/cjs/react-dom-server.edge.development.js')\n }\n}\n\nexports.version = b.version\nexports.renderToReadableStream = b.renderToReadableStream\nexports.renderToString = error\nexports.renderToStaticMarkup = error\nif (b.resume) {\n exports.resume = b.resume\n}\n"],"names":["ERROR_MESSAGE","error","Error","b","process","env","NEXT_RUNTIME","NODE_ENV","require","exports","version","renderToReadableStream","renderToString","renderToStaticMarkup","resume"],"mappings":";AAAA,MAAMA,gBACJ;AAEF,SAASC;IACP,MAAM,qBAAwB,CAAxB,IAAIC,MAAMF,gBAAV,qBAAA;eAAA;oBAAA;sBAAA;IAAuB;AAC/B;AAEA,IAAIG;AACJ,IAAIC,QAAQC,GAAG,CAACC,YAAY,KAAK,UAAU;IACzC,IAAIF,QAAQC,GAAG,CAACE,QAAQ,KAAK,cAAc;QACzCJ,IAAIK,QAAQ;IACd,OAAO;QACLL,IAAIK,QAAQ;IACd;AACF,OAAO;IACL,IAAIJ,QAAQC,GAAG,CAACE,QAAQ,KAAK,cAAc;QACzCJ,IAAIK,QAAQ;IACd,OAAO;QACLL,IAAIK,QAAQ;IACd;AACF;AAEAC,QAAQC,OAAO,GAAGP,EAAEO,OAAO;AAC3BD,QAAQE,sBAAsB,GAAGR,EAAEQ,sBAAsB;AACzDF,QAAQG,cAAc,GAAGX;AACzBQ,QAAQI,oBAAoB,GAAGZ;AAC/B,IAAIE,EAAEW,MAAM,EAAE;IACZL,QAAQK,MAAM,GAAGX,EAAEW,MAAM;AAC3B","ignoreList":[0]}