diff --git a/packages/docusaurus-mdx-loader/README.md b/packages/docusaurus-mdx-loader/README.md index 65463d2a04..8741aa14ef 100644 --- a/packages/docusaurus-mdx-loader/README.md +++ b/packages/docusaurus-mdx-loader/README.md @@ -2,9 +2,6 @@ Docusaurus webpack loader of [MDX](https://github.com/mdx-js/mdx) -The extra idea here is to simplify things by adding prismjs syntax highlighting by default through https://github.com/mapbox/rehype-prism and add the prism css theme import directly (only add the CSS import if target is 'web'). - - ## Installation ```sh @@ -18,10 +15,6 @@ yarn add @docusaurus/mdx-loader module: { rules: [ // ... - { - test: /\.css$/, - // Make sure your webpack loader can import css files too - }, { test: /\.mdx?$/, use: [ @@ -40,13 +33,6 @@ module: { ## Options -### `prismTheme` - - Default: `prism-themes/themes/prism-atom-dark.css`; - -This is the PrismJS theme CSS that will be imported. The supported themes are : -- prismjs/themes/XXXXXX.css (See https://github.com/PrismJS/prism/tree/master/themes) -- prism-themes/themes/XXXXXX.css (See https://github.com/PrismJS/prism-themes/tree/master/themes) - ### `rehypePlugins` Array of rehype plugins to manipulate the MDXHAST diff --git a/packages/docusaurus-mdx-loader/package.json b/packages/docusaurus-mdx-loader/package.json index b43dfe059e..895cc39470 100644 --- a/packages/docusaurus-mdx-loader/package.json +++ b/packages/docusaurus-mdx-loader/package.json @@ -10,15 +10,12 @@ "dependencies": { "@babel/parser": "^7.4.3", "@babel/traverse": "^7.4.3", - "@mapbox/rehype-prism": "^0.3.1", - "@mdx-js/mdx": "^1.0.18", - "@mdx-js/react": "^1.0.16", + "@mdx-js/mdx": "^1.0.20", + "@mdx-js/react": "^1.0.20", "github-slugger": "^1.2.1", "gray-matter": "^4.0.2", "loader-utils": "^1.2.3", "mdast-util-to-string": "^1.0.5", - "prism-themes": "^1.1.0", - "prismjs": "^1.16.0", "remark-emoji": "^2.0.2", "remark-slug": "^5.1.1", "stringify-object": "^3.3.0", diff --git a/packages/docusaurus-mdx-loader/src/index.js b/packages/docusaurus-mdx-loader/src/index.js index 8d0d04ff0b..e2938db560 100644 --- a/packages/docusaurus-mdx-loader/src/index.js +++ b/packages/docusaurus-mdx-loader/src/index.js @@ -7,18 +7,16 @@ const {getOptions} = require('loader-utils'); const mdx = require('@mdx-js/mdx'); -const rehypePrism = require('@mapbox/rehype-prism'); const emoji = require('remark-emoji'); const slug = require('remark-slug'); const matter = require('gray-matter'); const stringifyObject = require('stringify-object'); -const linkHeadings = require('./linkHeadings'); -const rightToc = require('./rightToc'); +const linkHeadings = require('./rehype/linkHeadings'); +const rightToc = require('./remark/rightToc'); const DEFAULT_OPTIONS = { - rehypePlugins: [[rehypePrism, {ignoreMissing: true}], linkHeadings], + rehypePlugins: [linkHeadings], remarkPlugins: [emoji, slug, rightToc], - prismTheme: 'prism-themes/themes/prism-atom-dark.css', }; module.exports = async function(fileString) { @@ -36,7 +34,6 @@ module.exports = async function(fileString) { ...DEFAULT_OPTIONS.rehypePlugins, ...(reqOptions.rehypePlugins || []), ], - prismTheme: reqOptions.prismTheme || DEFAULT_OPTIONS.prismTheme, filepath: this.resourcePath, }; let result; @@ -47,16 +44,10 @@ module.exports = async function(fileString) { return callback(err); } - let importStr = ''; - // If webpack target is web, we can import the css - if (this.target === 'web') { - importStr = `import '${options.prismTheme}';`; - } - const code = ` import React from 'react'; import { mdx } from '@mdx-js/react'; - ${importStr} + export const frontMatter = ${stringifyObject(data)}; ${result} `; diff --git a/packages/docusaurus-mdx-loader/src/linkHeadings.js b/packages/docusaurus-mdx-loader/src/rehype/linkHeadings.js similarity index 100% rename from packages/docusaurus-mdx-loader/src/linkHeadings.js rename to packages/docusaurus-mdx-loader/src/rehype/linkHeadings.js diff --git a/packages/docusaurus-mdx-loader/src/rightToc/__tests__/fixtures/empty-headings.mdx b/packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/fixtures/empty-headings.mdx similarity index 100% rename from packages/docusaurus-mdx-loader/src/rightToc/__tests__/fixtures/empty-headings.mdx rename to packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/fixtures/empty-headings.mdx diff --git a/packages/docusaurus-mdx-loader/src/rightToc/__tests__/fixtures/insert-below-imports.mdx b/packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/fixtures/insert-below-imports.mdx similarity index 100% rename from packages/docusaurus-mdx-loader/src/rightToc/__tests__/fixtures/insert-below-imports.mdx rename to packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/fixtures/insert-below-imports.mdx diff --git a/packages/docusaurus-mdx-loader/src/rightToc/__tests__/fixtures/just-content.mdx b/packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/fixtures/just-content.mdx similarity index 100% rename from packages/docusaurus-mdx-loader/src/rightToc/__tests__/fixtures/just-content.mdx rename to packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/fixtures/just-content.mdx diff --git a/packages/docusaurus-mdx-loader/src/rightToc/__tests__/fixtures/name-exist.mdx b/packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/fixtures/name-exist.mdx similarity index 100% rename from packages/docusaurus-mdx-loader/src/rightToc/__tests__/fixtures/name-exist.mdx rename to packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/fixtures/name-exist.mdx diff --git a/packages/docusaurus-mdx-loader/src/rightToc/__tests__/index.test.js b/packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/index.test.js similarity index 100% rename from packages/docusaurus-mdx-loader/src/rightToc/__tests__/index.test.js rename to packages/docusaurus-mdx-loader/src/remark/rightToc/__tests__/index.test.js diff --git a/packages/docusaurus-mdx-loader/src/rightToc/index.js b/packages/docusaurus-mdx-loader/src/remark/rightToc/index.js similarity index 100% rename from packages/docusaurus-mdx-loader/src/rightToc/index.js rename to packages/docusaurus-mdx-loader/src/remark/rightToc/index.js diff --git a/packages/docusaurus-mdx-loader/src/rightToc/search.js b/packages/docusaurus-mdx-loader/src/remark/rightToc/search.js similarity index 100% rename from packages/docusaurus-mdx-loader/src/rightToc/search.js rename to packages/docusaurus-mdx-loader/src/remark/rightToc/search.js diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index b419a6232c..08a555129a 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -31,7 +31,6 @@ const DEFAULT_OPTIONS = { blogTagsPostsComponent: '@theme/BlogTagsPostsPage', remarkPlugins: [], rehypePlugins: [], - prismTheme: '', }; module.exports = function(context, opts) { @@ -344,7 +343,7 @@ module.exports = function(context, opts) { }, configureWebpack(config, isServer, {getBabelLoader, getCacheLoader}) { - const {rehypePlugins, remarkPlugins, prismTheme} = options; + const {rehypePlugins, remarkPlugins} = options; return { module: { rules: [ @@ -359,7 +358,6 @@ module.exports = function(context, opts) { options: { remarkPlugins, rehypePlugins, - prismTheme, }, }, { diff --git a/packages/docusaurus-plugin-content-docs/src/index.js b/packages/docusaurus-plugin-content-docs/src/index.js index badee80d4c..1826c77015 100644 --- a/packages/docusaurus-plugin-content-docs/src/index.js +++ b/packages/docusaurus-plugin-content-docs/src/index.js @@ -25,7 +25,6 @@ const DEFAULT_OPTIONS = { docItemComponent: '@theme/DocItem', remarkPlugins: [], rehypePlugins: [], - prismTheme: '', }; module.exports = function(context, opts) { @@ -161,7 +160,7 @@ module.exports = function(context, opts) { }, configureWebpack(config, isServer, {getBabelLoader, getCacheLoader}) { - const {rehypePlugins, remarkPlugins, prismTheme} = options; + const {rehypePlugins, remarkPlugins} = options; return { module: { rules: [ @@ -176,7 +175,6 @@ module.exports = function(context, opts) { options: { remarkPlugins, rehypePlugins, - prismTheme, }, }, { diff --git a/packages/docusaurus-theme-classic/package.json b/packages/docusaurus-theme-classic/package.json index 3bbb846c8b..058387620e 100644 --- a/packages/docusaurus-theme-classic/package.json +++ b/packages/docusaurus-theme-classic/package.json @@ -8,8 +8,12 @@ }, "license": "MIT", "dependencies": { + "@mdx-js/mdx": "^1.0.20", + "@mdx-js/react": "^1.0.20", "classnames": "^2.2.6", "docsearch.js": "^2.5.2", + "prism-react-renderer": "^0.1.6", + "react-live": "^2.1.2", "infima": "0.2.0-alpha.1", "react-toggle": "^4.0.2" }, diff --git a/packages/docusaurus-theme-classic/src/theme/Layout/index.js b/packages/docusaurus-theme-classic/src/theme/Layout/index.js index 21d10687a0..240d86e22a 100644 --- a/packages/docusaurus-theme-classic/src/theme/Layout/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Layout/index.js @@ -6,11 +6,13 @@ */ import React from 'react'; +import {MDXProvider} from '@mdx-js/react'; import Head from '@docusaurus/Head'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import withBaseUrl from '@docusaurus/withBaseUrl'; import Navbar from '@theme/Navbar'; import Footer from '@theme/Footer'; +import MDXComponents from '@theme/MDXComponents'; import './styles.css'; @@ -30,7 +32,7 @@ function Layout(props) { )} - {children} + {children} {!noFooter &&