@docusaurus/theme-classic 0.0.0-4430 → 0.0.0-4435
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js
CHANGED
|
@@ -178,7 +178,10 @@ options) {
|
|
|
178
178
|
configureWebpack() {
|
|
179
179
|
const prismLanguages = additionalLanguages.map(lang => `prism-${lang}`).join('|');
|
|
180
180
|
return {
|
|
181
|
-
plugins: [
|
|
181
|
+
plugins: [// This allows better optimization by only bundling those components
|
|
182
|
+
// that the user actually needs, because the modules are dynamically
|
|
183
|
+
// required and can't be known during compile time.
|
|
184
|
+
new ContextReplacementPlugin(/prismjs[\\/]components$/, new RegExp(`^./(${prismLanguages})$`))]
|
|
182
185
|
};
|
|
183
186
|
},
|
|
184
187
|
|
|
@@ -10,12 +10,19 @@ import siteConfig from '@generated/docusaurus.config';
|
|
|
10
10
|
const prismIncludeLanguages = (PrismObject) => {
|
|
11
11
|
if (ExecutionEnvironment.canUseDOM) {
|
|
12
12
|
const {
|
|
13
|
-
themeConfig: {prism
|
|
13
|
+
themeConfig: {prism},
|
|
14
14
|
} = siteConfig;
|
|
15
|
-
const {additionalLanguages
|
|
15
|
+
const {additionalLanguages} = prism; // Prism components work on the Prism instance on the window, while
|
|
16
|
+
// prism-react-renderer uses its own Prism instance. We temporarily mount
|
|
17
|
+
// the instance onto window, import components to enhance it, then remove it
|
|
18
|
+
// to avoid polluting global namespace.
|
|
19
|
+
// You can mutate this object: registering plugins, deleting languages... As
|
|
20
|
+
// long as you don't re-assign it
|
|
21
|
+
|
|
16
22
|
window.Prism = PrismObject;
|
|
17
23
|
additionalLanguages.forEach((lang) => {
|
|
18
|
-
|
|
24
|
+
// eslint-disable-next-line global-require, import/no-dynamic-require
|
|
25
|
+
require(`prismjs/components/prism-${lang}`);
|
|
19
26
|
});
|
|
20
27
|
delete window.Prism;
|
|
21
28
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/theme-classic",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-4435",
|
|
4
4
|
"description": "Classic theme for Docusaurus",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "src/theme-classic.d.ts",
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
"update-code-translations": "node -e 'require(\"./update-code-translations.js\").run()'"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@docusaurus/core": "0.0.0-
|
|
27
|
-
"@docusaurus/plugin-content-blog": "0.0.0-
|
|
28
|
-
"@docusaurus/plugin-content-docs": "0.0.0-
|
|
29
|
-
"@docusaurus/plugin-content-pages": "0.0.0-
|
|
30
|
-
"@docusaurus/theme-common": "0.0.0-
|
|
31
|
-
"@docusaurus/theme-translations": "0.0.0-
|
|
32
|
-
"@docusaurus/utils": "0.0.0-
|
|
33
|
-
"@docusaurus/utils-validation": "0.0.0-
|
|
26
|
+
"@docusaurus/core": "0.0.0-4435",
|
|
27
|
+
"@docusaurus/plugin-content-blog": "0.0.0-4435",
|
|
28
|
+
"@docusaurus/plugin-content-docs": "0.0.0-4435",
|
|
29
|
+
"@docusaurus/plugin-content-pages": "0.0.0-4435",
|
|
30
|
+
"@docusaurus/theme-common": "0.0.0-4435",
|
|
31
|
+
"@docusaurus/theme-translations": "0.0.0-4435",
|
|
32
|
+
"@docusaurus/utils": "0.0.0-4435",
|
|
33
|
+
"@docusaurus/utils-validation": "0.0.0-4435",
|
|
34
34
|
"@mdx-js/mdx": "^1.6.21",
|
|
35
35
|
"@mdx-js/react": "^1.6.21",
|
|
36
36
|
"clsx": "^1.1.1",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"rtlcss": "^3.3.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@docusaurus/module-type-aliases": "0.0.0-
|
|
49
|
-
"@docusaurus/types": "0.0.0-
|
|
48
|
+
"@docusaurus/module-type-aliases": "0.0.0-4435",
|
|
49
|
+
"@docusaurus/types": "0.0.0-4435",
|
|
50
50
|
"@types/mdx-js__react": "^1.5.4",
|
|
51
51
|
"@types/parse-numeric-range": "^0.0.1",
|
|
52
52
|
"@types/rtlcss": "^3.1.1",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"engines": {
|
|
62
62
|
"node": ">=14"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "41656dfd8207e4a9d80de20fa5d9591f197a12b6"
|
|
65
65
|
}
|
package/src/index.ts
CHANGED
|
@@ -18,13 +18,13 @@ import type {Plugin as PostCssPlugin} from 'postcss';
|
|
|
18
18
|
import rtlcss from 'rtlcss';
|
|
19
19
|
import {readDefaultCodeTranslationMessages} from '@docusaurus/theme-translations';
|
|
20
20
|
import type {Options} from '@docusaurus/theme-classic';
|
|
21
|
+
import type webpack from 'webpack';
|
|
21
22
|
|
|
22
23
|
const requireFromDocusaurusCore = createRequire(
|
|
23
24
|
require.resolve('@docusaurus/core/package.json'),
|
|
24
25
|
);
|
|
25
|
-
const ContextReplacementPlugin =
|
|
26
|
-
'webpack/lib/ContextReplacementPlugin'
|
|
27
|
-
);
|
|
26
|
+
const ContextReplacementPlugin: typeof webpack.ContextReplacementPlugin =
|
|
27
|
+
requireFromDocusaurusCore('webpack/lib/ContextReplacementPlugin');
|
|
28
28
|
|
|
29
29
|
// Need to be inlined to prevent dark mode FOUC
|
|
30
30
|
// Make sure that the 'storageKey' is the same as the one in `/theme/hooks/useTheme.js`
|
|
@@ -172,6 +172,9 @@ export default function docusaurusThemeClassic(
|
|
|
172
172
|
|
|
173
173
|
return {
|
|
174
174
|
plugins: [
|
|
175
|
+
// This allows better optimization by only bundling those components
|
|
176
|
+
// that the user actually needs, because the modules are dynamically
|
|
177
|
+
// required and can't be known during compile time.
|
|
175
178
|
new ContextReplacementPlugin(
|
|
176
179
|
/prismjs[\\/]components$/,
|
|
177
180
|
new RegExp(`^./(${prismLanguages})$`),
|
|
@@ -12,14 +12,21 @@ import type * as PrismNamespace from 'prismjs';
|
|
|
12
12
|
const prismIncludeLanguages = (PrismObject: typeof PrismNamespace): void => {
|
|
13
13
|
if (ExecutionEnvironment.canUseDOM) {
|
|
14
14
|
const {
|
|
15
|
-
themeConfig: {prism
|
|
15
|
+
themeConfig: {prism},
|
|
16
16
|
} = siteConfig;
|
|
17
|
-
const {additionalLanguages
|
|
17
|
+
const {additionalLanguages} = prism as {additionalLanguages: string[]};
|
|
18
18
|
|
|
19
|
+
// Prism components work on the Prism instance on the window, while
|
|
20
|
+
// prism-react-renderer uses its own Prism instance. We temporarily mount
|
|
21
|
+
// the instance onto window, import components to enhance it, then remove it
|
|
22
|
+
// to avoid polluting global namespace.
|
|
23
|
+
// You can mutate this object: registering plugins, deleting languages... As
|
|
24
|
+
// long as you don't re-assign it
|
|
19
25
|
window.Prism = PrismObject;
|
|
20
26
|
|
|
21
27
|
additionalLanguages.forEach((lang) => {
|
|
22
|
-
|
|
28
|
+
// eslint-disable-next-line global-require, import/no-dynamic-require
|
|
29
|
+
require(`prismjs/components/prism-${lang}`);
|
|
23
30
|
});
|
|
24
31
|
|
|
25
32
|
delete (window as Window & {Prism?: typeof PrismNamespace}).Prism;
|