diff --git a/packages/docusaurus-theme-classic/src/theme/components/CodeBlock/index.js b/packages/docusaurus-theme-classic/src/theme/CodeBlock/index.js similarity index 82% rename from packages/docusaurus-theme-classic/src/theme/components/CodeBlock/index.js rename to packages/docusaurus-theme-classic/src/theme/CodeBlock/index.js index 6b35e2fed8..0ee5e3e80e 100644 --- a/packages/docusaurus-theme-classic/src/theme/components/CodeBlock/index.js +++ b/packages/docusaurus-theme-classic/src/theme/CodeBlock/index.js @@ -6,15 +6,16 @@ */ import React from 'react'; +import classnames from 'classnames'; import LoadableVisibility from 'react-loadable-visibility/react-loadable'; import Highlight, {defaultProps} from 'prism-react-renderer'; import nightOwlTheme from 'prism-react-renderer/themes/nightOwl'; - import Loading from '@theme/Loading'; +import styles from './styles.module.css'; /* Live playground is not small in size, lazy load it is better */ const Playground = LoadableVisibility({ - loader: () => import('@theme/components/Playground'), + loader: () => import('@theme/Playground'), loading: Loading, }); @@ -38,15 +39,7 @@ export default ({children, className: languageClassName, live, ...props}) => { code={children.trim()} language={language}> {({className, style, tokens, getLineProps, getTokenProps}) => ( -
+{tokens.map((line, i) => ({line.map((token, key) => ( diff --git a/packages/docusaurus-theme-classic/src/theme/CodeBlock/styles.module.css b/packages/docusaurus-theme-classic/src/theme/CodeBlock/styles.module.css new file mode 100644 index 0000000000..b6d81cf1f7 --- /dev/null +++ b/packages/docusaurus-theme-classic/src/theme/CodeBlock/styles.module.css @@ -0,0 +1,8 @@ +.codeBlock { + border-radius: 0; + font-size: inherit; + margin-bottom: 0; + overflow: hidden; + overflow-wrap: break-word; + white-space: pre-wrap; +} diff --git a/packages/docusaurus-theme-classic/src/theme/MDXComponents.js b/packages/docusaurus-theme-classic/src/theme/MDXComponents/index.js similarity index 52% rename from packages/docusaurus-theme-classic/src/theme/MDXComponents.js rename to packages/docusaurus-theme-classic/src/theme/MDXComponents/index.js index 01e54740dd..acc50d8ee0 100644 --- a/packages/docusaurus-theme-classic/src/theme/MDXComponents.js +++ b/packages/docusaurus-theme-classic/src/theme/MDXComponents/index.js @@ -6,21 +6,11 @@ */ import React from 'react'; import Link from '@docusaurus/Link'; -import CodeBlock from './components/CodeBlock'; +import CodeBlock from '@theme/CodeBlock'; +import styles from './styles.module.css'; export default { code: CodeBlock, a: Link, - pre: props => ( - - ), + pre: props => , }; diff --git a/packages/docusaurus-theme-classic/src/theme/MDXComponents/styles.module.css b/packages/docusaurus-theme-classic/src/theme/MDXComponents/styles.module.css new file mode 100644 index 0000000000..900f40946e --- /dev/null +++ b/packages/docusaurus-theme-classic/src/theme/MDXComponents/styles.module.css @@ -0,0 +1,9 @@ +.mdxCodeBlock { + background-color: transparent; + border: 0.5px solid rgba(31, 34, 39, .6); + border-radius: var(--ifm-global-radius); + box-shadow: rgba(0,0,0,.1) 1px 1px 4px 1px; + box-sizing: border-box; + font-family: inherit; + padding: 0; +} \ No newline at end of file diff --git a/packages/docusaurus-theme-classic/src/theme/components/Playground/index.js b/packages/docusaurus-theme-classic/src/theme/Playground/index.js similarity index 65% rename from packages/docusaurus-theme-classic/src/theme/components/Playground/index.js rename to packages/docusaurus-theme-classic/src/theme/Playground/index.js index 8c766f4146..3cd9987541 100644 --- a/packages/docusaurus-theme-classic/src/theme/components/Playground/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Playground/index.js @@ -17,14 +17,10 @@ function Playground({children, theme, transformCode, ...props}) { transformCode={transformCode || (code => `${code};`)} theme={theme} {...props}> ---LIVE EDITOR-- --PREVIEW-+LIVE EDITOR++ PREVIEW+diff --git a/packages/docusaurus-theme-classic/src/theme/components/Playground/styles.module.css b/packages/docusaurus-theme-classic/src/theme/Playground/styles.module.css similarity index 50% rename from packages/docusaurus-theme-classic/src/theme/components/Playground/styles.module.css rename to packages/docusaurus-theme-classic/src/theme/Playground/styles.module.css index 1158393239..9e4327b862 100644 --- a/packages/docusaurus-theme-classic/src/theme/components/Playground/styles.module.css +++ b/packages/docusaurus-theme-classic/src/theme/Playground/styles.module.css @@ -5,34 +5,16 @@ * LICENSE file in the root directory of this source tree. */ -.headerTitle { - text-transform: uppercase; - color: #e1e6ef; - font-size: 11px; - font-weight: bold; - opacity: 0.4; -} - -.editorHeaderContainer { +.playgroundHeader { padding: 4px 8px; background: #1a2d3c; + text-transform: uppercase; + color: rgb(225, 230, 239, .4); + font-size: 11px; + font-weight: bold; } -.editorContainer { - padding: 0; - border: 0; - outline: 0; -} - -.previewHeaderContainer { - padding: 0 8px; - background: #1a2d3c; - height: 35px; - line-height: 34px; -} - -.previewContainer { +.playgroundPreview { position: relative; - padding: 16px; - border: 0.5px solid #011627; + padding: 16px 16px 0; } diff --git a/packages/docusaurus/templates/classic/docs/exampledoc5.md b/packages/docusaurus/templates/classic/docs/exampledoc5.md deleted file mode 100644 index 92e2d0d5b9..0000000000 --- a/packages/docusaurus/templates/classic/docs/exampledoc5.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -id: doc5 -title: Fifth Document ---- - -Another one diff --git a/packages/docusaurus/templates/classic/docs/live-coding.md b/packages/docusaurus/templates/classic/docs/live-coding.md new file mode 100644 index 0000000000..cc1cbfd219 --- /dev/null +++ b/packages/docusaurus/templates/classic/docs/live-coding.md @@ -0,0 +1,14 @@ +--- +id: live-coding +title: Live Coding with React Live +--- + +```js live +var hello = 'We got live coding now'; +``` + +Have you ever used [React Live](https://react-live.kitten.sh)? Try it. Imagine your users play with your code _live_. Really don't know a better way to get your users' hands dirty than sharing a coding block with them. + +Docusaurus now supports live coding components in-house, powered by React Live. To see how they can be used for an enriched learning experience, check out our users who are already using it: + + diff --git a/packages/docusaurus/templates/classic/sidebars.json b/packages/docusaurus/templates/classic/sidebars.json index 6dec5c265a..2dacafb4d5 100644 --- a/packages/docusaurus/templates/classic/sidebars.json +++ b/packages/docusaurus/templates/classic/sidebars.json @@ -1,6 +1,7 @@ { "docs": { "Docusaurus": ["doc1", "doc2", "doc3"], + "Docusaurus Cool": ["live-coding"], "Utilities": ["style-guide"] }, "docs-other": {