- Notifications
You must be signed in to change notification settings - Fork0
A react component showing the layout of `code` and `code preview example`.
License
NotificationsYou must be signed in to change notification settings
uiwjs/react-code-preview-layout
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
展示代码 与代码在线预览示例 布局的一个 react 组件。配合markdown-react-code-preview-loader Webpack Loader 可很好的用于文档中的 react 示例展示。
npm install react-code-preview-layout --save
importReactfrom"react"importCodeLayoutfrom"react-code-preview-layout"constPreview=CodeLayout.Preview;constCode=CodeLayout.Code;constToolbar=CodeLayout.Toolbar;constcode=`import React from "react";\nimport { Button } from "uiw";\nconst Demo = ()=>{\n return<div><Button>按钮</Button></div>\n};\nexport default Demo;`constDemo=()=>{return(<CodeLayout><Preview><div>这里是示例展示</div></Preview><Toolbar>Code Example</Toolbar><CodetagName="pre">{code}</Code></CodeLayout>);}exportdefaultDemo;
importReactfrom"react"importCodeLayoutfrom"react-code-preview-layout"constPreview=CodeLayout.Preview;constCode=CodeLayout.Code;constToolbar=CodeLayout.Toolbar;constcode=`import React from "react";\nimport { Button } from "uiw";\nconst Demo = ()=>{\n return<div><Button>按钮</Button></div>\n};\nexport default Demo;`constDemo=()=>{return(<CodeLayoutdisableCheckered><Preview><div>这里是示例展示</div></Preview><Toolbar>Code Example</Toolbar><CodetagName="pre">{code}</Code></CodeLayout>);}exportdefaultDemo;
importReactfrom"react"importCodeLayoutfrom"react-code-preview-layout"constPreview=CodeLayout.Preview;constCode=CodeLayout.Code;constToolbar=CodeLayout.Toolbar;constcode=`import React from "react";\nimport { Button } from "uiw";\nconst Demo = ()=>{\n return<div><Button>按钮</Button></div>\n};\nexport default Demo;`constDemo=()=>(<CodeLayoutbordered={false}><Preview><div>示例内容</div></Preview><Toolbar>Code Example</Toolbar><CodetagName="pre">{code}</Code></CodeLayout>);exportdefaultDemo;
importReactfrom"react"importCodeLayoutfrom"react-code-preview-layout"constPreview=CodeLayout.Preview;constCode=CodeLayout.Code;constToolbar=CodeLayout.Toolbar;constcode=`import React from "react";\nimport { Button } from "uiw";\nconst Demo = ()=>{\n return<div><Button>按钮</Button></div>\n};\nexport default Demo;`;constDemo=()=>(<CodeLayout><Previewstyle={{background:"#009688b0"}}><div>示例内容</div></Preview><Toolbar>Code Example</Toolbar><CodetagName="pre">{code}</Code></CodeLayout>);exportdefaultDemo;
importReactfrom"react"importCodeLayoutfrom"react-code-preview-layout"constPreview=CodeLayout.Preview;constCode=CodeLayout.Code;constToolbar=CodeLayout.Toolbar;constcode=`import React from "react";\nimport { Button } from "uiw";\nconst Demo = ()=>{\n return<div><Button>按钮</Button></div>\n};\nexport default Demo;`;constDemo=()=>{return(<CodeLayout><Preview><div>示例内容</div></Preview><Toolbarextra={<div>按钮</div>}>Code Example</Toolbar><CodetagName="pre">{code}</Code></CodeLayout>);}exportdefaultDemo;
importReact,{useState}from"react"importCodeLayoutfrom"react-code-preview-layout"constPreview=CodeLayout.Preview;constCode=CodeLayout.Code;constToolbar=CodeLayout.Toolbar;constcode=`import React from "react";\nimport { Button } from "uiw";\nconst Demo = ()=>{\n return<div><Button>按钮</Button></div>\n};\nexport default Demo;`;constDemo=()=>{const[visible,setVisible]=useState(true);return(<div><buttononClick={()=>setVisible(!visible)}>{visible ?'隐藏' :'显示'}</button><CodeLayout><Preview><div>示例内容</div></Preview><Toolbarvisible={visible}collapse={!visible}>Code Example</Toolbar><CodetagName="pre">{code}</Code></CodeLayout></div>)};exportdefaultDemo;
importReactfrom"react"importCodeLayoutfrom"react-code-preview-layout"constPreview=CodeLayout.Preview;constCode=CodeLayout.Code;constToolbar=CodeLayout.Toolbar;constcode=`import React from "react";\nimport { Button } from "uiw";\nconst Demo = ()=>{\n return<div><Button>按钮</Button></div>\n};\nexport default Demo;`;constDemo=()=>(<CodeLayout><Preview><div>示例内容</div></Preview><Toolbartext={code}visibleButton={false}> Code Example</Toolbar></CodeLayout>);exportdefaultDemo;
可以使用@uiw/react-codepen 和@uiw/react-codesandbox 组件添加代码预览按钮,他们用于动态地将代码示例生成codepen 项目和codesandbox 项目。
importReactfrom"react"importCodeLayoutfrom"react-code-preview-layout"importCodepenfrom'@uiw/react-codepen';constPreview=CodeLayout.Preview;constCode=CodeLayout.Code;constToolbar=CodeLayout.Toolbar;constcode=`import React from "react";\nimport { Button } from "uiw";\nconst Demo = ()=>{\n return<div><Button>按钮</Button></div>\n};\nexport default Demo;`;constcodePenOptions={title:`demo`,// includeModule: ['uiw'],js:`${code.replace("export default",'const APP_render =')}\nReactDOM.createRoot(document.getElementById("container")).render(<APP_render />)`,html:'<div></div>',css_external:`https://unpkg.com/uiw@4.21.2/dist/uiw.min.css`,js_external:`https://unpkg.com/react@18.x/umd/react.development.js;https://unpkg.com/react-dom@18.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@4.21.2/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js`,}constextra=(<Codepen{...codePenOptions}><svgviewBox="0 0 1024 1024"width="18"height="18"><pathd="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"p-id="2071"></path></svg></Codepen>);constDemo=()=>(<CodeLayout><Preview><div>示例内容</div></Preview><Toolbartext={code}visibleButton={false}extra={extra}> Code Example</Toolbar><CodetagName="pre">{code}</Code></CodeLayout>);exportdefaultDemo;
importCodeLayoutfrom"react-code-preview-layout"<CodeLayout><CodeLayout.Preview><div>示例内容</div></CodeLayout.Preview><CodeLayout.Toolbartext={code}visibleButton={false}extra={extra}> Code Example</CodeLayout.Toolbar><CodeLayout.CodetagName="pre">{code}</CodeLayout.Code></CodeLayout>
exportinterfaceCodePreviewPropsextendsReact.HTMLAttributes<HTMLDivElement>{prefixCls?:string;/** * Whether border is required *@default true */bordered?:boolean;/** disable checkered */disableCheckered?:boolean;}declaretypeCodePreviewComponent=React.FC<React.PropsWithRef<CodePreviewProps>>&{Preview:typeofPreview;Code:typeofCode;Toolbar:typeofToolbar;};
<CodeLayout.Preview>
exportinterfacePreviewPropsextendsReact.HTMLAttributes<HTMLDivElement>{}exportdeclareconstPreview:React.ForwardRefExoticComponent<PreviewProps&React.RefAttributes<HTMLDivElement>>;
<CodeLayout.Code>
importReactfrom'react';exporttypeTagType=React.ComponentType|keyofJSX.IntrinsicElements;exportinterfaceCodeProps<TagextendsTagType>extendsReact.HTMLProps<Tag>{tagName?:Tag;}exportdeclareconstCode:React.ForwardRefExoticComponent<Omit<CodeProps<TagType>,"ref">&React.RefAttributes<React.HTMLProps<TagType>>>;
<CodeLayout.Toolbar>
exportinterfaceToolbarPropsextendsReact.HTMLAttributes<HTMLDivElement>{extra?:React.ReactNode;/** * Display cope button *@default true */copied?:boolean;/** * Collapse code display? *@default true */collapse?:boolean;/** * Display Toolbar? *@default true */visible?:boolean;/** * Show button or not *@default true */visibleButton?:boolean;/** Code to be copied */text?:string;}exportdeclareconstToolbar:React.ForwardRefExoticComponent<ToolbarProps&React.RefAttributes<HTMLDivElement>>;
npm install# Install dependenciesnpm run watchnpm run start一如既往,感谢我们出色的贡献者!
由action-contributors 生成。
Licensed under the MIT License.
About
A react component showing the layout of `code` and `code preview example`.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
Contributors5
Uh oh!
There was an error while loading.Please reload this page.