Skip to content

Commit 4892e7f

Browse files
authored
feat(core): add future.v4.mdx1CompatDisabledByDefault flag (#11896)
* add future.v4.mdx1CompatDisabledByDefault flag * docs * update snapshots * add crowdin comment * improve tests * improve tests
1 parent 00a8162 commit 4892e7f

8 files changed

Lines changed: 133 additions & 20 deletions

File tree

packages/docusaurus-types/src/config.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export type FutureV4Config = {
4141
useCssCascadeLayers: boolean;
4242
siteStorageNamespacing: boolean;
4343
fasterByDefault: boolean;
44+
mdx1CompatDisabledByDefault: boolean;
4445
};
4546

4647
// VCS (Version Control System) info about a given change, e.g., a git commit.

packages/docusaurus-types/src/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export {
2121
} from './config';
2222

2323
export {
24+
MDX1CompatOptions,
2425
MarkdownConfig,
2526
MarkdownHooks,
2627
DefaultParseFrontMatter,

packages/docusaurus/src/server/__tests__/__snapshots__/config.test.ts.snap

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ exports[`loadSiteConfig website with .cjs siteConfig 1`] = `
2727
},
2828
"v4": {
2929
"fasterByDefault": false,
30+
"mdx1CompatDisabledByDefault": false,
3031
"removeLegacyPostBuildHeadAttribute": false,
3132
"siteStorageNamespacing": false,
3233
"useCssCascadeLayers": false,
@@ -114,6 +115,7 @@ exports[`loadSiteConfig website with ts + js config 1`] = `
114115
},
115116
"v4": {
116117
"fasterByDefault": false,
118+
"mdx1CompatDisabledByDefault": false,
117119
"removeLegacyPostBuildHeadAttribute": false,
118120
"siteStorageNamespacing": false,
119121
"useCssCascadeLayers": false,
@@ -201,6 +203,7 @@ exports[`loadSiteConfig website with valid JS CJS config 1`] = `
201203
},
202204
"v4": {
203205
"fasterByDefault": false,
206+
"mdx1CompatDisabledByDefault": false,
204207
"removeLegacyPostBuildHeadAttribute": false,
205208
"siteStorageNamespacing": false,
206209
"useCssCascadeLayers": false,
@@ -288,6 +291,7 @@ exports[`loadSiteConfig website with valid JS ESM config 1`] = `
288291
},
289292
"v4": {
290293
"fasterByDefault": false,
294+
"mdx1CompatDisabledByDefault": false,
291295
"removeLegacyPostBuildHeadAttribute": false,
292296
"siteStorageNamespacing": false,
293297
"useCssCascadeLayers": false,
@@ -375,6 +379,7 @@ exports[`loadSiteConfig website with valid TypeScript CJS config 1`] = `
375379
},
376380
"v4": {
377381
"fasterByDefault": false,
382+
"mdx1CompatDisabledByDefault": false,
378383
"removeLegacyPostBuildHeadAttribute": false,
379384
"siteStorageNamespacing": false,
380385
"useCssCascadeLayers": false,
@@ -462,6 +467,7 @@ exports[`loadSiteConfig website with valid TypeScript ESM config 1`] = `
462467
},
463468
"v4": {
464469
"fasterByDefault": false,
470+
"mdx1CompatDisabledByDefault": false,
465471
"removeLegacyPostBuildHeadAttribute": false,
466472
"siteStorageNamespacing": false,
467473
"useCssCascadeLayers": false,
@@ -549,6 +555,7 @@ exports[`loadSiteConfig website with valid async config 1`] = `
549555
},
550556
"v4": {
551557
"fasterByDefault": false,
558+
"mdx1CompatDisabledByDefault": false,
552559
"removeLegacyPostBuildHeadAttribute": false,
553560
"siteStorageNamespacing": false,
554561
"useCssCascadeLayers": false,
@@ -638,6 +645,7 @@ exports[`loadSiteConfig website with valid async config creator function 1`] = `
638645
},
639646
"v4": {
640647
"fasterByDefault": false,
648+
"mdx1CompatDisabledByDefault": false,
641649
"removeLegacyPostBuildHeadAttribute": false,
642650
"siteStorageNamespacing": false,
643651
"useCssCascadeLayers": false,
@@ -727,6 +735,7 @@ exports[`loadSiteConfig website with valid config creator function 1`] = `
727735
},
728736
"v4": {
729737
"fasterByDefault": false,
738+
"mdx1CompatDisabledByDefault": false,
730739
"removeLegacyPostBuildHeadAttribute": false,
731740
"siteStorageNamespacing": false,
732741
"useCssCascadeLayers": false,
@@ -819,6 +828,7 @@ exports[`loadSiteConfig website with valid siteConfig 1`] = `
819828
},
820829
"v4": {
821830
"fasterByDefault": false,
831+
"mdx1CompatDisabledByDefault": false,
822832
"removeLegacyPostBuildHeadAttribute": false,
823833
"siteStorageNamespacing": false,
824834
"useCssCascadeLayers": false,

packages/docusaurus/src/server/__tests__/__snapshots__/site.test.ts.snap

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ exports[`loadSite custom-i18n-site loads site 1`] = `
107107
},
108108
"v4": {
109109
"fasterByDefault": false,
110+
"mdx1CompatDisabledByDefault": false,
110111
"removeLegacyPostBuildHeadAttribute": false,
111112
"siteStorageNamespacing": false,
112113
"useCssCascadeLayers": false,
@@ -282,6 +283,7 @@ exports[`loadSite simple-site-with-baseUrl loads site - custom config 1`] = `
282283
},
283284
"v4": {
284285
"fasterByDefault": false,
286+
"mdx1CompatDisabledByDefault": false,
285287
"removeLegacyPostBuildHeadAttribute": false,
286288
"siteStorageNamespacing": false,
287289
"useCssCascadeLayers": false,
@@ -449,6 +451,7 @@ exports[`loadSite simple-site-with-baseUrl loads site - custom outDir 1`] = `
449451
},
450452
"v4": {
451453
"fasterByDefault": false,
454+
"mdx1CompatDisabledByDefault": false,
452455
"removeLegacyPostBuildHeadAttribute": false,
453456
"siteStorageNamespacing": false,
454457
"useCssCascadeLayers": false,
@@ -616,6 +619,7 @@ exports[`loadSite simple-site-with-baseUrl loads site 1`] = `
616619
},
617620
"v4": {
618621
"fasterByDefault": false,
622+
"mdx1CompatDisabledByDefault": false,
619623
"removeLegacyPostBuildHeadAttribute": false,
620624
"siteStorageNamespacing": false,
621625
"useCssCascadeLayers": false,
@@ -827,6 +831,7 @@ exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale fr + custom
827831
},
828832
"v4": {
829833
"fasterByDefault": false,
834+
"mdx1CompatDisabledByDefault": false,
830835
"removeLegacyPostBuildHeadAttribute": false,
831836
"siteStorageNamespacing": false,
832837
"useCssCascadeLayers": false,
@@ -1060,6 +1065,7 @@ exports[`loadSite simple-site-with-baseUrl-i18n loads site - custom outDir 1`] =
10601065
},
10611066
"v4": {
10621067
"fasterByDefault": false,
1068+
"mdx1CompatDisabledByDefault": false,
10631069
"removeLegacyPostBuildHeadAttribute": false,
10641070
"siteStorageNamespacing": false,
10651071
"useCssCascadeLayers": false,
@@ -1293,6 +1299,7 @@ exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale de 1`] = `
12931299
},
12941300
"v4": {
12951301
"fasterByDefault": false,
1302+
"mdx1CompatDisabledByDefault": false,
12961303
"removeLegacyPostBuildHeadAttribute": false,
12971304
"siteStorageNamespacing": false,
12981305
"useCssCascadeLayers": false,
@@ -1526,6 +1533,7 @@ exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale en 1`] = `
15261533
},
15271534
"v4": {
15281535
"fasterByDefault": false,
1536+
"mdx1CompatDisabledByDefault": false,
15291537
"removeLegacyPostBuildHeadAttribute": false,
15301538
"siteStorageNamespacing": false,
15311539
"useCssCascadeLayers": false,
@@ -1759,6 +1767,7 @@ exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale es 1`] = `
17591767
},
17601768
"v4": {
17611769
"fasterByDefault": false,
1770+
"mdx1CompatDisabledByDefault": false,
17621771
"removeLegacyPostBuildHeadAttribute": false,
17631772
"siteStorageNamespacing": false,
17641773
"useCssCascadeLayers": false,
@@ -1992,6 +2001,7 @@ exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale fr 1`] = `
19922001
},
19932002
"v4": {
19942003
"fasterByDefault": false,
2004+
"mdx1CompatDisabledByDefault": false,
19952005
"removeLegacyPostBuildHeadAttribute": false,
19962006
"siteStorageNamespacing": false,
19972007
"useCssCascadeLayers": false,
@@ -2225,6 +2235,7 @@ exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale it 1`] = `
22252235
},
22262236
"v4": {
22272237
"fasterByDefault": false,
2238+
"mdx1CompatDisabledByDefault": false,
22282239
"removeLegacyPostBuildHeadAttribute": false,
22292240
"siteStorageNamespacing": false,
22302241
"useCssCascadeLayers": false,
@@ -2458,6 +2469,7 @@ exports[`loadSite simple-site-with-baseUrl-i18n loads site 1`] = `
24582469
},
24592470
"v4": {
24602471
"fasterByDefault": false,
2472+
"mdx1CompatDisabledByDefault": false,
24612473
"removeLegacyPostBuildHeadAttribute": false,
24622474
"siteStorageNamespacing": false,
24632475
"useCssCascadeLayers": false,

packages/docusaurus/src/server/__tests__/configValidation.test.ts

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ describe('normalizeConfig', () => {
6767
useCssCascadeLayers: true,
6868
siteStorageNamespacing: true,
6969
fasterByDefault: true,
70+
mdx1CompatDisabledByDefault: true,
7071
},
7172
faster: {
7273
swcJsLoader: true,
@@ -513,6 +514,7 @@ describe('markdown', () => {
513514
): MarkdownConfig {
514515
return normalizeConfig({markdown}).markdown;
515516
}
517+
516518
it('accepts undefined object', () => {
517519
expect(normalizeMarkdown(undefined)).toEqual(DEFAULT_CONFIG.markdown);
518520
});
@@ -1348,6 +1350,7 @@ describe('future', () => {
13481350
useCssCascadeLayers: true,
13491351
siteStorageNamespacing: true,
13501352
fasterByDefault: true,
1353+
mdx1CompatDisabledByDefault: true,
13511354
},
13521355
faster: {
13531356
swcJsLoader: true,
@@ -2566,6 +2569,7 @@ describe('future', () => {
25662569
useCssCascadeLayers: true,
25672570
siteStorageNamespacing: true,
25682571
fasterByDefault: true,
2572+
mdx1CompatDisabledByDefault: true,
25692573
};
25702574
expect(
25712575
normalizeConfig({
@@ -2906,5 +2910,64 @@ describe('future', () => {
29062910
`);
29072911
});
29082912
});
2913+
2914+
describe('mdx1CompatDisabledByDefault', () => {
2915+
function mdx1CompatContaining(mdx1Compat: object) {
2916+
return expect.objectContaining({
2917+
markdown: expect.objectContaining({mdx1Compat}),
2918+
});
2919+
}
2920+
2921+
const MDX1_COMPAT_ALL_TRUE = {
2922+
comments: true,
2923+
admonitions: true,
2924+
headingIds: true,
2925+
};
2926+
2927+
const MDX1_COMPAT_ALL_FALSE = {
2928+
comments: false,
2929+
admonitions: false,
2930+
headingIds: false,
2931+
};
2932+
2933+
it('defaults mdx1Compat to all true when flag is off', () => {
2934+
expect(normalizeConfig({})).toEqual(
2935+
mdx1CompatContaining(MDX1_COMPAT_ALL_TRUE),
2936+
);
2937+
});
2938+
2939+
it('defaults mdx1Compat to all false when flag is on', () => {
2940+
expect(
2941+
normalizeConfig({
2942+
future: {v4: {mdx1CompatDisabledByDefault: true}},
2943+
}),
2944+
).toEqual(mdx1CompatContaining(MDX1_COMPAT_ALL_FALSE));
2945+
});
2946+
2947+
it('defaults mdx1Compat to all false when v4: true', () => {
2948+
expect(
2949+
normalizeConfig({
2950+
future: {v4: true},
2951+
}),
2952+
).toEqual(mdx1CompatContaining(MDX1_COMPAT_ALL_FALSE));
2953+
});
2954+
2955+
it('keeps explicit mdx1Compat overrides when flag is on', () => {
2956+
expect(
2957+
normalizeConfig({
2958+
future: {v4: {mdx1CompatDisabledByDefault: true}},
2959+
markdown: {
2960+
mdx1Compat: {admonitions: true},
2961+
},
2962+
}),
2963+
).toEqual(
2964+
mdx1CompatContaining({
2965+
comments: false,
2966+
admonitions: true,
2967+
headingIds: false,
2968+
}),
2969+
);
2970+
});
2971+
});
29092972
});
29102973
});

0 commit comments

Comments
 (0)