@docusaurus/theme-classic 0.0.0-4342 → 0.0.0-4344

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.
@@ -114,6 +114,7 @@ declare module '@theme/CodeBlock' {
114
114
  readonly className?: string;
115
115
  readonly metastring?: string;
116
116
  readonly title?: string;
117
+ readonly language?: string;
117
118
  }
118
119
 
119
120
  const CodeBlock: (props: Props) => JSX.Element;
@@ -20,9 +20,10 @@ import usePrismTheme from '@theme/hooks/usePrismTheme';
20
20
  import styles from './styles.module.css';
21
21
  export default function CodeBlock({
22
22
  children,
23
- className: blockClassName,
23
+ className: blockClassName = '',
24
24
  metastring,
25
25
  title,
26
+ language: languageProp,
26
27
  }) {
27
28
  const {prism} = useThemeConfig();
28
29
  const [showCopied, setShowCopied] = useState(false);
@@ -73,7 +74,8 @@ export default function CodeBlock({
73
74
  } // The children is now guaranteed to be one/more plain strings
74
75
 
75
76
  const content = Array.isArray(children) ? children.join('') : children;
76
- const language = parseLanguage(blockClassName) ?? prism.defaultLanguage;
77
+ const language =
78
+ languageProp ?? parseLanguage(blockClassName) ?? prism.defaultLanguage;
77
79
  const {highlightLines, code} = parseLines(content, metastring, language);
78
80
 
79
81
  const handleCopyCode = () => {
@@ -94,6 +96,10 @@ export default function CodeBlock({
94
96
  className={clsx(
95
97
  styles.codeBlockContainer,
96
98
  blockClassName,
99
+ {
100
+ [`language-${language}`]:
101
+ language && !blockClassName.includes(`language-${language}`),
102
+ },
97
103
  ThemeClassNames.common.codeBlock,
98
104
  )}>
99
105
  {codeBlockTitle && (
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "0.0.0-4342",
3
+ "version": "0.0.0-4344",
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-4342",
27
- "@docusaurus/plugin-content-blog": "0.0.0-4342",
28
- "@docusaurus/plugin-content-docs": "0.0.0-4342",
29
- "@docusaurus/plugin-content-pages": "0.0.0-4342",
30
- "@docusaurus/theme-common": "0.0.0-4342",
31
- "@docusaurus/theme-translations": "0.0.0-4342",
32
- "@docusaurus/utils": "0.0.0-4342",
33
- "@docusaurus/utils-validation": "0.0.0-4342",
26
+ "@docusaurus/core": "0.0.0-4344",
27
+ "@docusaurus/plugin-content-blog": "0.0.0-4344",
28
+ "@docusaurus/plugin-content-docs": "0.0.0-4344",
29
+ "@docusaurus/plugin-content-pages": "0.0.0-4344",
30
+ "@docusaurus/theme-common": "0.0.0-4344",
31
+ "@docusaurus/theme-translations": "0.0.0-4344",
32
+ "@docusaurus/utils": "0.0.0-4344",
33
+ "@docusaurus/utils-validation": "0.0.0-4344",
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-4342",
49
- "@docusaurus/types": "0.0.0-4342",
48
+ "@docusaurus/module-type-aliases": "0.0.0-4344",
49
+ "@docusaurus/types": "0.0.0-4344",
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": "e9ef727d5f5fefa96d92ad98fa61f3e3e961dd1d"
64
+ "gitHead": "d99393e9e4889d73ad25332cd54b067a80db258c"
65
65
  }
@@ -24,9 +24,10 @@ import styles from './styles.module.css';
24
24
 
25
25
  export default function CodeBlock({
26
26
  children,
27
- className: blockClassName,
27
+ className: blockClassName = '',
28
28
  metastring,
29
29
  title,
30
+ language: languageProp,
30
31
  }: Props): JSX.Element {
31
32
  const {prism} = useThemeConfig();
32
33
 
@@ -85,8 +86,7 @@ export default function CodeBlock({
85
86
  : (children as string);
86
87
 
87
88
  const language =
88
- parseLanguage(blockClassName) ??
89
- (prism.defaultLanguage as Language | undefined);
89
+ languageProp ?? parseLanguage(blockClassName) ?? prism.defaultLanguage;
90
90
  const {highlightLines, code} = parseLines(content, metastring, language);
91
91
 
92
92
  const handleCopyCode = () => {
@@ -102,12 +102,16 @@ export default function CodeBlock({
102
102
  key={String(mounted)}
103
103
  theme={prismTheme}
104
104
  code={code}
105
- language={language ?? ('text' as Language)}>
105
+ language={(language ?? 'text') as Language}>
106
106
  {({className, style, tokens, getLineProps, getTokenProps}) => (
107
107
  <div
108
108
  className={clsx(
109
109
  styles.codeBlockContainer,
110
110
  blockClassName,
111
+ {
112
+ [`language-${language}`]:
113
+ language && !blockClassName.includes(`language-${language}`),
114
+ },
111
115
  ThemeClassNames.common.codeBlock,
112
116
  )}>
113
117
  {codeBlockTitle && (
@@ -114,6 +114,7 @@ declare module '@theme/CodeBlock' {
114
114
  readonly className?: string;
115
115
  readonly metastring?: string;
116
116
  readonly title?: string;
117
+ readonly language?: string;
117
118
  }
118
119
 
119
120
  const CodeBlock: (props: Props) => JSX.Element;