@@ -14,82 +14,129 @@ npm install react-code-preview-layout --save
14
14
15
15
## 基本用法
16
16
17
- ``` tsx
17
+ ``` jsx mdx:preview
18
18
import React from " react"
19
19
import CodeLayout from " react-code-preview-layout"
20
20
const code = ` import React from "react";\n import { Button } from "uiw";\n const Demo = ()=>{\n return<div><Button>按钮</Button></div>\n };\n export default Demo;`
21
21
22
- const Demo = ()=> {
23
- return <CodeLayout
24
- title = " 示例"
25
- code = { <code style = { {color:" red" }} >{ code } </code >}
26
- copyNodes = { code }
27
- >
28
- <div >示例内容</div >
29
- </CodeLayout >
22
+ const Demo = () => {
23
+ return (
24
+ < CodeLayout
25
+ title= " 示例"
26
+ code= {< code> {code}< / code> }
27
+ copyNodes= {code}
28
+ >
29
+ < div> 这里是示例展示< / div>
30
+ < / CodeLayout>
31
+ );
32
+ }
33
+ export default Demo ;
34
+ ```
35
+
36
+ ## 禁用方格背景
37
+
38
+ ``` jsx mdx:preview
39
+ import React from " react"
40
+ import CodeLayout from " react-code-preview-layout"
41
+ const code = ` import React from "react";\n import { Button } from "uiw";\n const Demo = ()=>{\n return<div><Button>按钮</Button></div>\n };\n export default Demo;`
42
+
43
+ const Demo = () => {
44
+ return (
45
+ < CodeLayout
46
+ title= " 示例"
47
+ code= {< code> {code}< / code> }
48
+ copyNodes= {code}
49
+ disableCheckered
50
+ >
51
+ < div> 这里方格背景被禁用了< / div>
52
+ < / CodeLayout>
53
+ );
30
54
}
31
55
export default Demo ;
32
56
```
33
57
34
58
## 无边框
35
59
36
- ``` tsx
60
+ ``` jsx mdx:preview
37
61
import React from " react"
38
62
import CodeLayout from " react-code-preview-layout"
39
63
const code = ` import React from "react";\n import { Button } from "uiw";\n const Demo = ()=>{\n return<div><Button>按钮</Button></div>\n };\n export default Demo;`
40
- const Demo = ()=> {
41
- return <CodeLayout
42
- code = { <code style = { {color: " red " } } >{ code } </code >}
43
- copyNodes = { code }
44
- bordered = { false }
64
+ const Demo = () => (
65
+ < CodeLayout
66
+ code= {< code> {code}< / code> }
67
+ text = {code}
68
+ bordered= {false }
45
69
>
46
70
< div> 示例内容< / div>
47
71
< / CodeLayout>
48
- }
72
+ );
49
73
export default Demo ;
50
74
```
51
75
52
76
## 自定义操作按钮
53
77
54
- ``` tsx
78
+ ``` jsx mdx:preview?title=自定义操作按钮
55
79
import React from " react"
56
80
import CodeLayout from " react-code-preview-layout"
57
81
const code = ` import React from "react";\n import { Button } from "uiw";\n const Demo = ()=>{\n return<div><Button>按钮</Button></div>\n };\n export default Demo;`
58
82
const Demo = () => {
59
- return <CodeLayout
60
- code = { <code style = { {color:" red" }} >{ code } </code >}
61
- copyNodes = { code }
62
- customButton = { <div >按钮</div >}
83
+ return (
84
+ < CodeLayout
85
+ code= {< code> {code}< / code> }
86
+ copyNodes= {code}
87
+ toolbar= {< div> 按钮< / div> }
88
+ >
89
+ < div> 示例内容< / div>
90
+ < / CodeLayout>
91
+ );
92
+ }
93
+ export default Demo ;
94
+ ```
95
+
96
+ ## 禁用工具栏
97
+
98
+ ``` jsx mdx:preview?title=禁用工具栏
99
+ import React from " react"
100
+ import CodeLayout from " react-code-preview-layout"
101
+ const code = ` import React from "react";\n import { Button } from "uiw";\n const Demo = ()=>{\n return<div><Button>按钮</Button></div>\n };\n export default Demo;` ;
102
+
103
+ const Demo = ()=> (
104
+ < CodeLayout
105
+ code= {< code> {code}< / code> }
106
+ text= {code}
107
+ disableTollbar
63
108
>
64
109
< div> 示例内容< / div>
65
110
< / CodeLayout>
66
- }
111
+ );
67
112
export default Demo ;
68
113
```
69
114
70
- ## 无操作按钮
115
+ ## 禁用代码展示
71
116
72
- ``` tsx
117
+ ``` jsx mdx:preview?title=禁用代码展示
73
118
import React from " react"
74
119
import CodeLayout from " react-code-preview-layout"
75
- const code = ` import React from "react";\n import { Button } from "uiw";\n const Demo = ()=>{\n return<div><Button>按钮</Button></div>\n };\n export default Demo; `
76
- const Demo = ()=> {
77
- return <CodeLayout
78
- code = { <code style = { {color:" red" }} >{ code } </code >}
79
- copyNodes = { code }
80
- noButton = { true }
120
+ const code = ` import React from "react";\n import { Button } from "uiw";\n const Demo = ()=>{\n return<div><Button>按钮</Button></div>\n };\n export default Demo;` ;
121
+
122
+ const Demo = ()=> (
123
+ < CodeLayout
124
+ code= {< code> {code}< / code> }
125
+ text= {code}
126
+ disableCode
81
127
>
82
128
< div> 示例内容< / div>
83
129
< / CodeLayout>
84
- }
130
+ );
85
131
export default Demo ;
86
132
```
87
133
88
- ## 第三方预览参数
134
+ ## 添加 Codepen 按钮
89
135
90
- ``` tsx
136
+ ``` jsx mdx:preview?title=添加 Codepen 按钮
91
137
import React from " react"
92
138
import CodeLayout from " react-code-preview-layout"
139
+ import Codepen from ' @uiw/react-codepen' ;
93
140
const code = ` import React from "react";\n import { Button } from "uiw";\n const Demo = ()=>{\n return<div><Button>按钮</Button></div>\n };\n export default Demo;`
94
141
95
142
const codePenOptions = {
@@ -101,32 +148,56 @@ const codePenOptions = {
101
148
js_external
: ` https://unpkg.com/[email protected] /umd/react.development.js;https://unpkg.com/[email protected] /umd/react-dom.development.js;https://unpkg.com/[email protected] /index.js;https://unpkg.com/[email protected] /dist/uiw.min.js;https://unpkg.com/@uiw/[email protected] /index.js` ,
102
149
}
103
150
104
- const Demo = ()=> {
105
- return <CodeLayout
106
- code = { <code style = { {color:" red" }} >{ code } </code >}
107
- copyNodes = { code }
108
- codePenOptions = { codePenOptions }
151
+ const Demo = () => (
152
+ < CodeLayout
153
+ code= {
154
+ < code> {code}< / code>
155
+ }
156
+ text= {code}
157
+ toolbarExtra= {
158
+ < Codepen {... codePenOptions}>
159
+ < svg viewBox= " 0 0 1024 1024" width= " 18" height= " 18" >
160
+ < path
161
+ d= " M123.428571 668l344.571429 229.714286v-205.142857L277.142857 565.142857z m-35.428571-82.285714l110.285714-73.714286-110.285714-73.714286v147.428572z m468 312l344.571429-229.714286-153.714286-102.857143-190.857143 127.428572v205.142857z m-44-281.714286l155.428571-104-155.428571-104-155.428571 104zM277.142857 458.857143l190.857143-127.428572V126.285714L123.428571 356z m548.571429 53.142857l110.285714 73.714286V438.285714z m-78.857143-53.142857l153.714286-102.857143-344.571429-229.714286v205.142857z m277.142857-102.857143v312q0 23.428571-19.428571 36.571429l-468 312q-12 7.428571-24.571429 7.428571t-24.571429-7.428571L19.428571 704.571429q-19.428571-13.142857-19.428571-36.571429V356q0-23.428571 19.428571-36.571429L487.428571 7.428571q12-7.428571 24.571429-7.428571t24.571429 7.428571l468 312q19.428571 13.142857 19.428571 36.571429z"
162
+ p- id= " 2071"
163
+ >< / path>
164
+ < / svg>
165
+ < / Codepen>
166
+ }
109
167
>
110
168
< div> 示例内容< / div>
111
169
< / CodeLayout>
112
- }
170
+ );
113
171
export default Demo ;
114
172
```
115
173
116
174
## Props
117
175
118
- | 参数 | 说明 | 类型 | 默认值 |
119
- | --------- | -------- | ---------- | -------- |
120
- | code | 代码块内容展示 | ` React.ReactNode ` | - |
121
- | copyNodes | 复制按钮复制的内容 | ` string ` | false |
122
- | customButton | 自定义操作按钮 | ` React.ReactNode ` | - |
123
- | codePadding | 代码块内容展示内边距 | number | ` 16 ` |
124
- | noButton | 不展示操作按钮 | ` boolean ` | ` false ` |
125
- | bordered | 是否设置边框 | ` boolean ` | ` true ` |
126
- | codeSandboxOptions | codeSandbox 预览配置参数 | ` codeSandboxOptions ` | - |
127
- | codePenOptions | codePen 预览配置参数 | ` CodePenOption & { includeModule?: string[] } ` | - |
128
- | className | | ` string ` | - |
129
- | title | 左侧标题部分 | ` React.ReactNode ` | - |
176
+ ``` ts
177
+ interface CodeLayoutProps extends React .DetailedHTMLProps <React .HTMLAttributes <HTMLDivElement >, HTMLDivElement > {
178
+ prefixCls? : string ;
179
+ /** 原始 代码块 渲染**/
180
+ code? : React .ReactNode ;
181
+ text? : string ;
182
+ /** 标题部分,也可以放置按钮 **/
183
+ toolbar? : React .ReactNode ;
184
+ /** 额外内容,展示 toolbar 右侧内容 */
185
+ toolbarExtra? : React .ReactNode ;
186
+ disableTollbar? : boolean ;
187
+ disableCode? : boolean ;
188
+ disablePreview? : boolean ;
189
+ /**
190
+ * 是否需要边框
191
+ * @default true
192
+ */
193
+ bordered? : boolean ;
194
+ /**
195
+ * 是否显示复制按钮
196
+ * @default true
197
+ */
198
+ copied? : boolean ;
199
+ }
200
+ ```
130
201
131
202
132
203
## 开发
0 commit comments