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,42 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
createDigestWithErrorCode: null,
extractNextErrorCode: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
createDigestWithErrorCode: function() {
return createDigestWithErrorCode;
},
extractNextErrorCode: function() {
return extractNextErrorCode;
}
});
const ERROR_CODE_DELIMITER = '@';
const createDigestWithErrorCode = (thrownValue, originalDigest)=>{
if (typeof thrownValue === 'object' && thrownValue !== null && '__NEXT_ERROR_CODE' in thrownValue) {
return `${originalDigest}${ERROR_CODE_DELIMITER}${thrownValue.__NEXT_ERROR_CODE}`;
}
return originalDigest;
};
const extractNextErrorCode = (error)=>{
if (typeof error === 'object' && error !== null && '__NEXT_ERROR_CODE' in error && typeof error.__NEXT_ERROR_CODE === 'string') {
return error.__NEXT_ERROR_CODE;
}
if (typeof error === 'object' && error !== null && 'digest' in error && typeof error.digest === 'string') {
const segments = error.digest.split(ERROR_CODE_DELIMITER);
const errorCode = segments.find((segment)=>segment.startsWith('E'));
return errorCode;
}
return undefined;
};
//# sourceMappingURL=error-telemetry-utils.js.map