Skip to content

Commit f628461

Browse files
authored
Use CodeBlock to render code fences (#210)
1 parent fbac87d commit f628461

File tree

2 files changed

+33
-3
lines changed
  • packages/docusaurus-theme-openapi-docs/src/theme

2 files changed

+33
-3
lines changed

packages/docusaurus-theme-openapi-docs/src/theme/ParamsItem/index.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import React from "react";
99

10+
import CodeBlock from "@theme/CodeBlock";
1011
import ReactMarkdown from "react-markdown";
1112

1213
import { createDescription } from "../../markdown/createDescription";
@@ -33,7 +34,21 @@ function ParamsItem({
3334

3435
const renderDescription = guard(description, (description) => (
3536
<div>
36-
<ReactMarkdown children={createDescription(description)} />
37+
<ReactMarkdown
38+
children={createDescription(description)}
39+
components={{
40+
pre: "div",
41+
code({ node, inline, className, children, ...props }) {
42+
const match = /language-(\w+)/.exec(className || "");
43+
if (inline) return <code>{children}</code>;
44+
return !inline && match ? (
45+
<CodeBlock className={className}>{children}</CodeBlock>
46+
) : (
47+
<CodeBlock>{children}</CodeBlock>
48+
);
49+
},
50+
}}
51+
/>
3752
</div>
3853
));
3954

packages/docusaurus-theme-openapi-docs/src/theme/SchemaItem/index.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import React from "react";
99

10+
import CodeBlock from "@theme/CodeBlock";
1011
import ReactMarkdown from "react-markdown";
1112

1213
import { createDescription } from "../../markdown/createDescription";
@@ -29,8 +30,22 @@ function SchemaItem({
2930
);
3031

3132
const renderSchemaDescription = guard(schemaDescription, (description) => (
32-
<div className={styles.schemaDescription}>
33-
<ReactMarkdown children={createDescription(description)} />
33+
<div>
34+
<ReactMarkdown
35+
children={createDescription(description)}
36+
components={{
37+
pre: "div",
38+
code({ node, inline, className, children, ...props }) {
39+
const match = /language-(\w+)/.exec(className || "");
40+
if (inline) return <code>{children}</code>;
41+
return !inline && match ? (
42+
<CodeBlock className={className}>{children}</CodeBlock>
43+
) : (
44+
<CodeBlock>{children}</CodeBlock>
45+
);
46+
},
47+
}}
48+
/>
3449
</div>
3550
));
3651

0 commit comments

Comments
 (0)