docs: finalize walkthrough for MDX migration and diagram styling

This commit is contained in:
2026-02-17 21:37:37 +01:00
parent cce6aa0935
commit 8a1c2b9483
27 changed files with 1144 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,25 @@
// NOTE This file is auto-generated by Contentlayer
import blog__analyticsWithoutTrackingMdx from './blog__analytics-without-tracking.mdx.json' with { type: 'json' }
import blog__buildFirstDigitalArchitectureMdx from './blog__build-first-digital-architecture.mdx.json' with { type: 'json' }
import blog__builderSystemsThreatenIndependenceMdx from './blog__builder-systems-threaten-independence.mdx.json' with { type: 'json' }
import blog__cleanCodeForBusinessValueMdx from './blog__clean-code-for-business-value.mdx.json' with { type: 'json' }
import blog__crmSynchronizationHeadlessMdx from './blog__crm-synchronization-headless.mdx.json' with { type: 'json' }
import blog__digitalLongevityArchitectureMdx from './blog__digital-longevity-architecture.mdx.json' with { type: 'json' }
import blog__fixedPriceDigitalProjectsMdx from './blog__fixed-price-digital-projects.mdx.json' with { type: 'json' }
import blog__gdprConformitySystemApproachMdx from './blog__gdpr-conformity-system-approach.mdx.json' with { type: 'json' }
import blog__greenItSustainableWebMdx from './blog__green-it-sustainable-web.mdx.json' with { type: 'json' }
import blog__hiddenCostsOfWordpressPluginsMdx from './blog__hidden-costs-of-wordpress-plugins.mdx.json' with { type: 'json' }
import blog__maintenanceForHeadlessSystemsMdx from './blog__maintenance-for-headless-systems.mdx.json' with { type: 'json' }
import blog__noUsCloudPlatformsMdx from './blog__no-us-cloud-platforms.mdx.json' with { type: 'json' }
import blog__professionalHostingOperationsMdx from './blog__professional-hosting-operations.mdx.json' with { type: 'json' }
import blog__responsiveDesignHighFidelityMdx from './blog__responsive-design-high-fidelity.mdx.json' with { type: 'json' }
import blog__slowLoadingCostsCustomersMdx from './blog__slow-loading-costs-customers.mdx.json' with { type: 'json' }
import blog__testMermaidMdx from './blog__test-mermaid.mdx.json' with { type: 'json' }
import blog__websiteWithoutCookieBannersMdx from './blog__website-without-cookie-banners.mdx.json' with { type: 'json' }
import blog__whyAgenciesAreSlowMdx from './blog__why-agencies-are-slow.mdx.json' with { type: 'json' }
import blog__whyNoTemplatesMatterMdx from './blog__why-no-templates-matter.mdx.json' with { type: 'json' }
import blog__whyPagespeedFailsMdx from './blog__why-pagespeed-fails.mdx.json' with { type: 'json' }
import blog__whyWebsitesBreakAfterUpdatesMdx from './blog__why-websites-break-after-updates.mdx.json' with { type: 'json' }
export const allPosts = [blog__analyticsWithoutTrackingMdx, blog__buildFirstDigitalArchitectureMdx, blog__builderSystemsThreatenIndependenceMdx, blog__cleanCodeForBusinessValueMdx, blog__crmSynchronizationHeadlessMdx, blog__digitalLongevityArchitectureMdx, blog__fixedPriceDigitalProjectsMdx, blog__gdprConformitySystemApproachMdx, blog__greenItSustainableWebMdx, blog__hiddenCostsOfWordpressPluginsMdx, blog__maintenanceForHeadlessSystemsMdx, blog__noUsCloudPlatformsMdx, blog__professionalHostingOperationsMdx, blog__responsiveDesignHighFidelityMdx, blog__slowLoadingCostsCustomersMdx, blog__testMermaidMdx, blog__websiteWithoutCookieBannersMdx, blog__whyAgenciesAreSlowMdx, blog__whyNoTemplatesMatterMdx, blog__whyPagespeedFailsMdx, blog__whyWebsitesBreakAfterUpdatesMdx]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,23 @@
{
"title": "Test Mermaid",
"date": "2026-01-01",
"description": "Testing Mermaid rendering",
"tags": [
"test"
],
"body": {
"raw": "\nTest 1: Plain string attribute (NO quotes in graph content):\n\n<Mermaid id=\"test-1\" title=\"Test Plain Multiline\" showShare={false}>\ngraph TD\n A-->B\n B-->C\n</Mermaid>\n\nTest 2: Children as raw text (no template literal):\n\n<Mermaid id=\"test-2\" title=\"Test Raw Children\" showShare={false}>\ngraph TD\n D-->E\n E-->F\n</Mermaid>\n",
"code": "var Component=(()=>{var h=Object.create;var o=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var g=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),M=(t,e)=>{for(var r in e)o(t,r,{get:e[r],enumerable:!0})},a=(t,e,r,s)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of u(e))!x.call(t,i)&&i!==r&&o(t,i,{get:()=>e[i],enumerable:!(s=m(e,i))||s.enumerable});return t};var T=(t,e,r)=>(r=t!=null?h(f(t)):{},a(e||!t||!t.__esModule?o(r,\"default\",{value:t,enumerable:!0}):r,t)),_=t=>a(o({},\"__esModule\",{value:!0}),t);var l=g((E,d)=>{d.exports=_jsx_runtime});var C={};M(C,{default:()=>p,frontmatter:()=>w});var n=T(l()),w={title:\"Test Mermaid\",description:\"Testing Mermaid rendering\",date:\"2026-01-01\",tags:[\"test\"]};function c(t){let e={p:\"p\",...t.components},{Mermaid:r}=e;return r||j(\"Mermaid\",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:\"Test 1: Plain string attribute (NO quotes in graph content):\"}),`\n`,(0,n.jsx)(r,{id:\"test-1\",title:\"Test Plain Multiline\",showShare:!1,children:(0,n.jsx)(e.p,{children:`graph TD\nA-->B\nB-->C`})}),`\n`,(0,n.jsx)(e.p,{children:\"Test 2: Children as raw text (no template literal):\"}),`\n`,(0,n.jsx)(r,{id:\"test-2\",title:\"Test Raw Children\",showShare:!1,children:(0,n.jsx)(e.p,{children:`graph TD\nD-->E\nE-->F`})})]})}function p(t={}){let{wrapper:e}=t.components||{};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(c,{...t})}):c(t)}function j(t,e){throw new Error(\"Expected \"+(e?\"component\":\"object\")+\" `\"+t+\"` to be defined: you likely forgot to import, pass, or provide it.\")}return _(C);})();\n;return Component;"
},
"_id": "blog/test-mermaid.mdx",
"_raw": {
"sourceFilePath": "blog/test-mermaid.mdx",
"sourceFileName": "test-mermaid.mdx",
"sourceFileDir": "blog",
"contentType": "mdx",
"flattenedPath": "blog/test-mermaid"
},
"type": "Post",
"slug": "test-mermaid",
"url": "/blog/test-mermaid"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
// NOTE This file is auto-generated by Contentlayer
import { Post, DocumentTypes, DataExports } from './types'
import { SourceProvideSchemaErrorJSON, SourceFetchDataErrorJSON } from 'contentlayer2/core'
export * from './types'
export declare const allPosts: Post[]
export declare const allDocuments: DocumentTypes[]

View File

@@ -0,0 +1,13 @@
// NOTE This file is auto-generated by Contentlayer
export { isType } from 'contentlayer2/client'
// NOTE During development Contentlayer imports from `.mjs` files to improve HMR speeds.
// During (production) builds Contentlayer it imports from `.json` files to improve build performance.
import allPosts from './Post/_index.json' with { type: 'json' }
export { allPosts }
export const allDocuments = [...allPosts]

View File

@@ -0,0 +1,69 @@
// NOTE This file is auto-generated by Contentlayer
import type { Markdown, MDX, ImageFieldData, IsoDateTimeString } from 'contentlayer2/core'
import * as Local from 'contentlayer2/source-files'
export { isType } from 'contentlayer2/client'
export type { Markdown, MDX, ImageFieldData, IsoDateTimeString }
/** Document types */
export type Post = {
/** File path relative to `contentDirPath` */
_id: string
_raw: Local.RawDocumentData
type: 'Post'
title: string
date: string
description: string
tags: string[]
/** MDX file body */
body: MDX
slug: string
url: string
}
/** Nested types */
/** Helper types */
export type AllTypes = DocumentTypes | NestedTypes
export type AllTypeNames = DocumentTypeNames | NestedTypeNames
export type DocumentTypes = Post
export type DocumentTypeNames = 'Post'
export type NestedTypes = never
export type NestedTypeNames = never
export type DataExports = {
allDocuments: DocumentTypes[]
allPosts: Post[]
}
export interface ContentlayerGenTypes {
documentTypes: DocumentTypes
documentTypeMap: DocumentTypeMap
documentTypeNames: DocumentTypeNames
nestedTypes: NestedTypes
nestedTypeMap: NestedTypeMap
nestedTypeNames: NestedTypeNames
allTypeNames: AllTypeNames
dataExports: DataExports
}
declare global {
interface ContentlayerGen extends ContentlayerGenTypes {}
}
export type DocumentTypeMap = {
Post: Post
}
export type NestedTypeMap = {
}

View File

@@ -0,0 +1,17 @@
{
"name": "dot-contentlayer",
"description": "This package is auto-generated by Contentlayer",
"version": "0.0.0-OYYS63NI",
"exports": {
"./generated": {
"import": "./generated/index.mjs"
}
},
"typesVersions": {
"*": {
"generated": [
"./generated"
]
}
}
}