1
1
mirror of https://github.com/mdx-js/mdx.git synced 2024-10-04 11:27:12 +03:00

chore: enable prettier for .md/.mdx files - close #844 (#927)

* chore: enable prettier for .md/.mdx files - close #844

* chore: fix some incorrect code types
This commit is contained in:
JounQin 2020-01-28 11:26:56 +08:00 committed by GitHub
parent 8ebde24018
commit 26a3a3c500
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
74 changed files with 965 additions and 916 deletions

View File

@ -6,6 +6,7 @@ public
.next .next
.*cache .*cache
*.min.js *.min.js
!/.*.js
examples/**/node_modules/**/*.* examples/**/node_modules/**/*.*

View File

@ -1,6 +1,4 @@
.next .next
dist dist
node_modules node_modules
*.md
*.mdx
*.min.* *.min.*

21
.remarkrc.js Normal file
View File

@ -0,0 +1,21 @@
const unified = require('unified')
const english = require('retext-english')
const wooorm = require('retext-preset-wooorm')
module.exports = {
plugins: [
'./packages/remark-mdx',
'preset-wooorm',
'preset-prettier',
[
'retext',
unified()
.use(english)
.use(wooorm)
.use({
plugins: [[require('retext-sentence-spacing'), false]]
})
],
['validate-links', false]
]
}

View File

@ -1,3 +1,3 @@
# 404 # 404
Page not found. [Return Home](/) Page not found. [Return Home](/)

View File

@ -1,7 +1,7 @@
# About # About
MDX is based on the [original `.mdx` proposal][idea] by Guillermo Rauch MDX is based on the [original `.mdx` proposal][idea] by Guillermo Rauch
([@rauchg][rauchg]). Its syntax is defined by an official [specification][]. ([@rauchg][rauchg]). Its syntax is defined by an official [specification][].
The source code for MDX is available on [GitHub][] and is [MIT licensed][license]. The source code for MDX is available on [GitHub][] and is [MIT licensed][license].
The project is governed by the [unified collective][governance]. The project is governed by the [unified collective][governance].
@ -13,10 +13,10 @@ available on [GitHub][design].
### Authors ### Authors
* [John Otander][john] ([@4lpine][4lpine]) [Compositor][] + [Clearbit][] - [John Otander][john] ([@4lpine][4lpine]) [Compositor][] + [Clearbit][]
* [Tim Neutkens][tim] ([@timneutkens][timneutkens]) [ZEIT][] - [Tim Neutkens][tim] ([@timneutkens][timneutkens]) [ZEIT][]
* [Guillermo Rauch][guillermo] ([@rauchg][rauchg]) [ZEIT][] - [Guillermo Rauch][guillermo] ([@rauchg][rauchg]) [ZEIT][]
* [Brent Jackson][brent] ([@jxnblk][jxnblk]) [Compositor][] - [Brent Jackson][brent] ([@jxnblk][jxnblk]) [Compositor][]
## Related ## Related
@ -31,62 +31,45 @@ PR!
These projects define the syntax which MDX blends together (MD and JSX). These projects define the syntax which MDX blends together (MD and JSX).
* [Markdown](https://daringfireball.net/projects/markdown/syntax) - [Markdown](https://daringfireball.net/projects/markdown/syntax)
* [JSX](https://reactjs.org/docs/introducing-jsx.html) - [JSX](https://reactjs.org/docs/introducing-jsx.html)
* [React](https://reactjs.org/) - [React](https://reactjs.org/)
### Parsing and implementation ### Parsing and implementation
* [remark](https://remark.js.org) - [remark](https://remark.js.org)
* [unified](https://unifiedjs.com) - [unified](https://unifiedjs.com)
* [babel](https://babeljs.io) - [babel](https://babeljs.io)
### Libraries ### Libraries
* [MDXC](https://github.com/jamesknelson/mdxc) - [MDXC](https://github.com/jamesknelson/mdxc)
* [Markdown Component Loader](https://github.com/ticky/markdown-component-loader) - [Markdown Component Loader](https://github.com/ticky/markdown-component-loader)
* [markdown-in-js](https://github.com/threepointone/markdown-in-js) - [markdown-in-js](https://github.com/threepointone/markdown-in-js)
* [remark-jsx](https://github.com/fazouane-marouane/remark-jsx) - [remark-jsx](https://github.com/fazouane-marouane/remark-jsx)
* [remark-react](https://github.com/mapbox/remark-react) - [remark-react](https://github.com/mapbox/remark-react)
* [eslint-mdx](https://github.com/rx-ts/eslint-mdx) - [eslint-mdx](https://github.com/rx-ts/eslint-mdx)
### Other ### Other
* [IA Markdown Content Blocks](https://github.com/iainc/Markdown-Content-Blocks) - [IA Markdown Content Blocks](https://github.com/iainc/Markdown-Content-Blocks)
* [Idyll: Markup language for interactive documents](https://idyll-lang.org) - [Idyll: Markup language for interactive documents](https://idyll-lang.org)
[github]: https://github.com/mdx-js/mdx [github]: https://github.com/mdx-js/mdx
[license]: https://github.com/mdx-js/mdx/blob/master/license [license]: https://github.com/mdx-js/mdx/blob/master/license
[specification]: https://github.com/mdx-js/specification [specification]: https://github.com/mdx-js/specification
[governance]: https://github.com/unifiedjs/collective [governance]: https://github.com/unifiedjs/collective
[design]: https://github.com/mdx-js/design [design]: https://github.com/mdx-js/design
[idea]: https://spectrum.chat/thread/1021be59-2738-4511-aceb-c66921050b9a [idea]: https://spectrum.chat/thread/1021be59-2738-4511-aceb-c66921050b9a
[john]: https://johno.com [john]: https://johno.com
[tim]: https://github.com/timneutkens [tim]: https://github.com/timneutkens
[guillermo]: https://rauchg.com [guillermo]: https://rauchg.com
[brent]: https://jxnblk.com [brent]: https://jxnblk.com
[4lpine]: https://twitter.com/4lpine [4lpine]: https://twitter.com/4lpine
[rauchg]: https://twitter.com/rauchg [rauchg]: https://twitter.com/rauchg
[timneutkens]: https://twitter.com/timneutkens [timneutkens]: https://twitter.com/timneutkens
[jxnblk]: https://twitter.com/jxnblk [jxnblk]: https://twitter.com/jxnblk
[evil rabbit]: https://twitter.com/evilrabbit_ [evil rabbit]: https://twitter.com/evilrabbit_
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[clearbit]: https://clearbit.com [clearbit]: https://clearbit.com

View File

@ -11,8 +11,8 @@ the JSX string is created.
## Table of Contents ## Table of Contents
* [Async API](#async-api) - [Async API](#async-api)
* [Sync API](#sync-api) - [Sync API](#sync-api)
## Async API ## Async API
@ -26,7 +26,7 @@ You should use the async API, unless you have very good reasons to use the
You can use the library directly: You can use the library directly:
```js ```js
var mdx = require("@mdx-js/mdx") var mdx = require('@mdx-js/mdx')
const content = ` const content = `
# Hello, world! # Hello, world!
@ -65,7 +65,7 @@ import TomatoBox from 'tomato-box'
const MDXLayout = props => <main {...props} /> const MDXLayout = props => <main {...props} />
const layoutProps = { const layoutProps = {
author: "Fred Flintstone" author: 'Fred Flintstone'
} }
export default function MDXContent(props) { export default function MDXContent(props) {
@ -77,10 +77,10 @@ export default function MDXContent(props) {
<TomatoBox /> <TomatoBox />
</MDXLayout> </MDXLayout>
</div> </div>
); )
} }
MDXContent.isMDXComponent = true; MDXContent.isMDXComponent = true
``` ```
This is pretty powerful because the output is rather readable. This is pretty powerful because the output is rather readable.
@ -116,13 +116,8 @@ const jsx = mdx.sync(mdxText)
MDXs [runtime][] package has [example][] usage. MDXs [runtime][] package has [example][] usage.
[ast]: /advanced/ast [ast]: /advanced/ast
[plugins]: /plugins [plugins]: /plugins
[async]: #async-api [async]: #async-api
[sync]: #sync-api [sync]: #sync-api
[runtime]: /advanced/runtime [runtime]: /advanced/runtime
[example]: https://github.com/mdx-js/mdx/blob/d5a5189e715dc28370de13f6cc0fd18a06f0f122/packages/runtime/src/index.js#L16-L18 [example]: https://github.com/mdx-js/mdx/blob/d5a5189e715dc28370de13f6cc0fd18a06f0f122/packages/runtime/src/index.js#L16-L18

View File

@ -1,11 +1,16 @@
import { Button } from '@rebass/emotion' import {Button} from '@rebass/emotion'
# AST # AST
export const AST_EXPLORER_LINK = 'https://astexplorer.net/#/gist/2befce6edce1475eb4bbec001356b222/35997d3b44347daabad8dd1a107adc22dd873de2' export const AST_EXPLORER_LINK =
'https://astexplorer.net/#/gist/2befce6edce1475eb4bbec001356b222/35997d3b44347daabad8dd1a107adc22dd873de2'
<Button as="a" href={AST_EXPLORER_LINK}>Explore the AST</Button> <Button as="a" href={AST_EXPLORER_LINK}>
<Button as="a" ml={2} href="/playground">Use the Playground</Button> Explore the AST
</Button>
<Button as="a" ml={2} href="/playground">
Use the Playground
</Button>
MDX, the library, uses two syntax trees. MDX, the library, uses two syntax trees.
The first, [MDXAST][], represents markdown with embedded JSX, and is a superset of [mdast][]. The first, [MDXAST][], represents markdown with embedded JSX, and is a superset of [mdast][].
@ -22,10 +27,10 @@ languages created by the community.
The majority of the MDXAST specification is defined by [mdast][]. The majority of the MDXAST specification is defined by [mdast][].
MDXAST is a superset with the following additional node types: MDXAST is a superset with the following additional node types:
* `jsx` (instead of `html`) - `jsx` (instead of `html`)
* `comment` (instead of `html` comments) - `comment` (instead of `html` comments)
* `import` - `import`
* `export` - `export`
Any MDX document without those constructs is valid [mdast][]. Any MDX document without those constructs is valid [mdast][].
@ -39,29 +44,21 @@ its defined by [hast][] already.
MDXAST defines the following additional node types: MDXAST defines the following additional node types:
* `jsx` (instead of `html`) - `jsx` (instead of `html`)
* `import` - `import`
* `export` - `export`
* `inlineCode` - `inlineCode`
`inlineCode` is there to accurately represent Markdowns inline code. `inlineCode` is there to accurately represent Markdowns inline code.
For more information, see the [MDXHAST][] specification. For more information, see the [MDXHAST][] specification.
[mdxast]: #mdxast [mdxast]: #mdxast
[mdxhast]: #mdxhast [mdxhast]: #mdxhast
[comment]: #comment [comment]: #comment
[mdast]: https://github.com/syntax-tree/mdast [mdast]: https://github.com/syntax-tree/mdast
[hast]: https://github.com/syntax-tree/hast [hast]: https://github.com/syntax-tree/hast
[specification]: https://github.com/mdx-js/specification [specification]: https://github.com/mdx-js/specification
[remark]: https://github.com/remarkjs/remark [remark]: https://github.com/remarkjs/remark
[rehype]: https://github.com/rehypejs/rehype [rehype]: https://github.com/rehypejs/rehype
[unified]: https://github.com/unifiedjs/unified [unified]: https://github.com/unifiedjs/unified

View File

@ -51,28 +51,33 @@ documents via the [MDXProvider](#mdxprovider).
### Layout props ### Layout props
Youll also notice that `layoutProps` is created based on your exports Youll also notice that `layoutProps` is created based on your exports
and then passed to the wrapper. This allows for the wrapper to use and then passed to the wrapper. This allows for the wrapper to use
those props automatically for handling things like adding an author those props automatically for handling things like adding an author
bio to the wrapped document. bio to the wrapped document.
## `makeShortcodes` ## `makeShortcodes`
There is one other function added to the compiled output: `makeShortcodes`. There is one other function added to the compiled output: `makeShortcodes`.
This is added for [shortcode support](/blog/shortcodes). Its used in order This is added for [shortcode support](/blog/shortcodes). Its used in order
to stub any components that arent directly imported so that there wont be to stub any components that arent directly imported so that there wont be
any `ReferenceError`s. If theyre passed to the `MDXProvider`, the custom any `ReferenceError`s. If theyre passed to the `MDXProvider`, the custom
JSX pragma will pull the component from context and use that in place of the JSX pragma will pull the component from context and use that in place of the
stubbed `Button`: stubbed `Button`:
```js ```js
const makeShortcode = name => function MDXDefaultShortcode(props) { const makeShortcode = name =>
console.warn("Component " + name + " was not imported, exported, or provided by MDXProvider as global scope") function MDXDefaultShortcode(props) {
return <div {...props}/> console.warn(
} 'Component ' +
name +
' was not imported, exported, or provided by MDXProvider as global scope'
)
return <div {...props} />
}
// This will be ignored by MDX if you wrap your MDX document with // This will be ignored by MDX if you wrap your MDX document with
// <MDXProvider components={{ Button: MyCustomButton }}> // <MDXProvider components={{ Button: MyCustomButton }}>
const Button = makeShortcode("Button") const Button = makeShortcode('Button')
``` ```
## `isMDXComponent` ## `isMDXComponent`
@ -97,9 +102,9 @@ export default () => (
### Caveats ### Caveats
Because MDXProvider uses React Context directly, it is affected by Because MDXProvider uses React Context directly, it is affected by
the same caveats. It is therefore important that you do not declare the same caveats. It is therefore important that you do not declare
your components mapping inline in the JSX. Doing so will trigger a rerender your components mapping inline in the JSX. Doing so will trigger a rerender
of your entire MDX page with every render cycle. Not only is this bad for of your entire MDX page with every render cycle. Not only is this bad for
performance, but it can cause unwanted side affects, like breaking in-page performance, but it can cause unwanted side affects, like breaking in-page
browser navigation. browser navigation.
@ -112,9 +117,9 @@ state object:
```js ```js
import React from 'react' import React from 'react'
import { MDXProvider } from '@mdx-js/react' import {MDXProvider} from '@mdx-js/react'
import { Heading, Text, Pre, Code, Table } from './components' import {Heading, Text, Pre, Code, Table} from './components'
export default class Layout extends React.Component { export default class Layout extends React.Component {
state = { state = {

View File

@ -1,3 +1,3 @@
import Redirect from 'gatsby-theme-mdx/src/components/redirect' import Redirect from 'gatsby-theme-mdx/src/components/redirect'
<Redirect to='/contributing' /> <Redirect to="/contributing" />

View File

@ -6,17 +6,17 @@ Most of the time, it “Just Works”.
But there are some reasons to interact with the MDX library and its internals But there are some reasons to interact with the MDX library and its internals
directly. directly.
* [API](/advanced/api) - [API](/advanced/api)
— learn about the async and sync MDX API — learn about the async and sync MDX API
* [Runtime](/advanced/runtime) - [Runtime](/advanced/runtime)
— learn how to use MDX in a runtime environment (typically discouraged) — learn how to use MDX in a runtime environment (typically discouraged)
* [AST](/advanced/ast) - [AST](/advanced/ast)
— learn about the intermediate abstract syntax tree — learn about the intermediate abstract syntax tree
* [Components](/advanced/components) - [Components](/advanced/components)
— learn about the generated JSX — learn about the generated JSX
* [remark and rehype plugins](/advanced/plugins) - [remark and rehype plugins](/advanced/plugins)
— learn how to inspect and change the syntax tree — learn how to inspect and change the syntax tree
* [transform content](/advanced/transform-content) - [transform content](/advanced/transform-content)
— learn how to interact with or manipulate raw MDX content — learn how to interact with or manipulate raw MDX content
[getting-started]: /getting-started [getting-started]: /getting-started

View File

@ -25,8 +25,8 @@ table of contents][remark-toc], and many more.
For more information, see the following links: For more information, see the following links:
* [List of remark plugins][remark-plugins] - [List of remark plugins][remark-plugins]
* [List of rehype plugins][rehype-plugins] - [List of rehype plugins][rehype-plugins]
Creating a plugin for MDX is mostly the same as creating a plugin for remark Creating a plugin for MDX is mostly the same as creating a plugin for remark
or rehype. or rehype.
@ -120,8 +120,7 @@ const retextSmartypants = require('retext-smartypants')
const mdx = require('@mdx-js/mdx') const mdx = require('@mdx-js/mdx')
function remarkSmartypants(options) { function remarkSmartypants(options) {
const processor = retext() const processor = retext().use(retextSmartypants, options)
.use(retextSmartypants, options)
function transformer(tree) { function transformer(tree) {
visit(tree, 'text', node => { visit(tree, 'text', node => {
@ -141,33 +140,21 @@ mdx.sync(mdxText, {
// regular quotes → smart quotes, // regular quotes → smart quotes,
// triple dash → em dash // triple dash → em dash
// etc. // etc.
[remarkSmartypants, { dashes: 'oldschool' }] [remarkSmartypants, {dashes: 'oldschool'}]
] ]
}) })
``` ```
[ast]: /advanced/ast [ast]: /advanced/ast
[write-plugin]: /guides/writing-a-plugin [write-plugin]: /guides/writing-a-plugin
[remark]: https://github.com/remarkjs/remark [remark]: https://github.com/remarkjs/remark
[rehype]: https://github.com/rehypejs/rehype [rehype]: https://github.com/rehypejs/rehype
[remark-capitalize]: https://github.com/zeit/remark-capitalize [remark-capitalize]: https://github.com/zeit/remark-capitalize
[remark-toc]: https://github.com/remarkjs/remark-toc [remark-toc]: https://github.com/remarkjs/remark-toc
[remark-plugins]: https://github.com/remarkjs/remark/blob/master/doc/plugins.md#list-of-plugins [remark-plugins]: https://github.com/remarkjs/remark/blob/master/doc/plugins.md#list-of-plugins
[rehype-plugins]: https://github.com/rehypejs/rehype/blob/master/doc/plugins.md#list-of-plugins [rehype-plugins]: https://github.com/rehypejs/rehype/blob/master/doc/plugins.md#list-of-plugins
[retext]: https://github.com/retextjs/retext [retext]: https://github.com/retextjs/retext
[remarkjs/remark#224]: https://github.com/remarkjs/remark/issues/224 [remarkjs/remark#224]: https://github.com/remarkjs/remark/issues/224
[visit]: https://github.com/syntax-tree/unist-util-visit [visit]: https://github.com/syntax-tree/unist-util-visit
[retext-smartypants]: https://github.com/retextjs/retext-smartypants [retext-smartypants]: https://github.com/retextjs/retext-smartypants
[create-plugin]: https://unifiedjs.com/create-a-plugin.html [create-plugin]: https://unifiedjs.com/create-a-plugin.html

View File

@ -1,3 +1,3 @@
import Redirect from 'gatsby-theme-mdx/src/components/redirect' import Redirect from 'gatsby-theme-mdx/src/components/redirect'
<Redirect to='/advanced/using-plugins#using-retext-plugins' /> <Redirect to="/advanced/using-plugins#using-retext-plugins" />

View File

@ -1,3 +1,3 @@
import Redirect from 'gatsby-theme-mdx/src/components/redirect' import Redirect from 'gatsby-theme-mdx/src/components/redirect'
<Redirect to='/advanced/ast' /> <Redirect to="/advanced/ast" />

View File

@ -1,3 +1,3 @@
import Redirect from 'gatsby-theme-mdx/src/components/redirect' import Redirect from 'gatsby-theme-mdx/src/components/redirect'
<Redirect to='/advanced/api#sync-api' /> <Redirect to="/advanced/api#sync-api" />

View File

@ -6,7 +6,7 @@ are many utilities you can use to work with MDX.
You can utilize [to-vfile][] to read and write MDX files You can utilize [to-vfile][] to read and write MDX files
and you can leverage [remark][] and [remark-mdx][] and you can leverage [remark][] and [remark-mdx][]
to parse and process MDX content. The remark-mdx library is a parsing to parse and process MDX content. The remark-mdx library is a parsing
extension to enhance the Markdown [AST][] to understand MDX extension to enhance the Markdown [AST][] to understand MDX
(resulting in [MDXAST][]), giving you access and insight to MDX (resulting in [MDXAST][]), giving you access and insight to MDX
attributes, namely imports, exports, and jsx. attributes, namely imports, exports, and jsx.
@ -15,12 +15,12 @@ Lets see an example of what we have explained so far.
Say we have the following file, `example.mdx`: Say we have the following file, `example.mdx`:
```md ```mdx
import Component from 'Component'; import Component from 'Component'
export const meta = { export const meta = {
prop: 'value' prop: 'value'
}; }
# Title # Title
@ -33,24 +33,24 @@ And our script, `example.js`, looks as follows:
```js ```js
const {read, write} = require('to-vfile') const {read, write} = require('to-vfile')
const remark = require('remark'); const remark = require('remark')
const mdx = require('remark-mdx'); const mdx = require('remark-mdx')
(async () => { ;(async () => {
const path = './example.mdx'; const path = './example.mdx'
const file = await read(path); const file = await read(path)
const contents = await remark() const contents = await remark()
.use(mdx) .use(mdx)
.use(() => (tree) => { .use(() => tree => {
console.log(tree) console.log(tree)
})
.process(file);
await write({
path,
contents
}) })
})(); .process(file)
await write({
path,
contents
})
})()
``` ```
Now, running `node example.js` yields: Now, running `node example.js` yields:
@ -89,21 +89,12 @@ generated table of contents based on the other content in the MDX file or
save the modified content back to the original file. save the modified content back to the original file.
[ast]: /advanced/ast [ast]: /advanced/ast
[mdxast]: /advanced/ast#mdxast [mdxast]: /advanced/ast#mdxast
[remark]: https://github.com/remarkjs/remark [remark]: https://github.com/remarkjs/remark
[remark-mdx]: https://github.com/mdx-js/mdx/tree/master/packages/remark-mdx [remark-mdx]: https://github.com/mdx-js/mdx/tree/master/packages/remark-mdx
[remark-mdx-metadata]: https://github.com/manovotny/remark-mdx-metadata [remark-mdx-metadata]: https://github.com/manovotny/remark-mdx-metadata
[remark-plugins]: /advanced/plugins [remark-plugins]: /advanced/plugins
[remark-toc]: https://github.com/remarkjs/remark-toc [remark-toc]: https://github.com/remarkjs/remark-toc
[to-vfile]: https://github.com/vfile/to-vfile [to-vfile]: https://github.com/vfile/to-vfile
[unified]: https://unifiedjs.com [unified]: https://unifiedjs.com
[writing-a-plugin]: /guides/writing-a-plugin [writing-a-plugin]: /guides/writing-a-plugin

View File

@ -38,7 +38,7 @@ declare module '@mdx-js/react' {
| 'img' | 'img'
export type Components = { export type Components = {
[key in ComponentType]?: React.ComponentType<{ children: React.ReactNode }> [key in ComponentType]?: React.ComponentType<{children: React.ReactNode}>
} }
export interface MDXProviderProps { export interface MDXProviderProps {
@ -49,10 +49,10 @@ declare module '@mdx-js/react' {
} }
``` ```
If you want to improve upon the types we would *love* a PR to If you want to improve upon the types we would _love_ a PR to
improve the developer experience for TypeScript users. improve the developer experience for TypeScript users.
* * * ---
If youre getting errors from TypeScript related to imports with an `*.mdx` If youre getting errors from TypeScript related to imports with an `*.mdx`
extension, create an `mdx.d.ts` file in your types directory and include it extension, create an `mdx.d.ts` file in your types directory and include it

View File

@ -4,7 +4,7 @@
`MDXTag`, for those that arent aware, is a critical piece in the way `MDXTag`, for those that arent aware, is a critical piece in the way
MDX replaces HTML primitives like `<pre>` and `<h1>` with custom React MDX replaces HTML primitives like `<pre>` and `<h1>` with custom React
Components. [Ive previously Components. [Ive previously
written](https://www.christopherbiscardi.com/post/codeblocks-mdx-and-mdx-utils) written](https://www.christopherbiscardi.com/post/codeblocks-mdx-and-mdx-utils)
about the way `MDXTag` works when trying to replace the `<pre>` tag about the way `MDXTag` works when trying to replace the `<pre>` tag
with a custom code component. with a custom code component.
@ -39,7 +39,7 @@ exports.preToCodeBlock = preProps => {
``` ```
So `MDXTag` is a real Component in the middle of all of the other MDX So `MDXTag` is a real Component in the middle of all of the other MDX
rendered elements. All of the code is included here for reference. rendered elements. All of the code is included here for reference.
```js ```js
import React, {Component} from 'react' import React, {Component} from 'react'
@ -86,7 +86,7 @@ export default withMDXComponents(MDXTag)
`MDXTag` is used in the [mdx-hast-to-jsx `MDXTag` is used in the [mdx-hast-to-jsx
conversion](https://github.com/mdx-js/mdx/blob/e1bcf1b1a352c9728424b01c1bb5d62e450eb48d/packages/mdx/mdx-hast-to-jsx.js#L163-L165), conversion](https://github.com/mdx-js/mdx/blob/e1bcf1b1a352c9728424b01c1bb5d62e450eb48d/packages/mdx/mdx-hast-to-jsx.js#L163-L165),
which is the final step in the MDX AST pipeline. Every renderable which is the final step in the MDX AST pipeline. Every renderable
element is wrapped in an `MDXTag`, and `MDXTag` handles rendering the element is wrapped in an `MDXTag`, and `MDXTag` handles rendering the
element later. element later.
@ -171,12 +171,12 @@ wrapping `MDXTag`.
Now that weve cleaned up the intermediary representation, we need to Now that weve cleaned up the intermediary representation, we need to
make sure that we have the same functionality as the old make sure that we have the same functionality as the old
`MDXTag`. This is done through a custom `createElement` `MDXTag`. This is done through a custom `createElement`
implementation. Typically when using React, we use implementation. Typically when using React, we use
`React.createElement` to render the elements on screen. This is even `React.createElement` to render the elements on screen. This is even
true if youre using JSX because JSX tags such as `<div>` compile to true if youre using JSX because JSX tags such as `<div>` compile to
`createElement` calls. So this time instead of using `createElement` calls. So this time instead of using
`React.createElement` well be using our own. [Check it out in the MDX `React.createElement` well be using our own. [Check it out in the MDX
repo](https://github.com/mdx-js/mdx/blob/0506708bed0ac787f605b0a97ef77d1954fa1275/packages/react/src/create-element.js) repo](https://github.com/mdx-js/mdx/blob/0506708bed0ac787f605b0a97ef77d1954fa1275/packages/react/src/create-element.js)
Reproduced here is our `createElement` function and the logic for how Reproduced here is our `createElement` function and the logic for how
@ -220,12 +220,12 @@ export default function(type, props) {
One really cool application of the new output format using a custom One really cool application of the new output format using a custom
`createElement` is that we can now write versions of it for Vue and `createElement` is that we can now write versions of it for Vue and
other frameworks. Since the pragma insertion is the responsibility of other frameworks. Since the pragma insertion is the responsibility of
the webpack (or other bundlers) loader, swapping the pragma can be an the webpack (or other bundlers) loader, swapping the pragma can be an
option in mdx-loader as long as we have a Vue `createElement` to point option in mdx-loader as long as we have a Vue `createElement` to point
to. to.
* * * ---
Written by [Chris Biscardi](https://christopherbiscardi.com) Written by [Chris Biscardi](https://christopherbiscardi.com)

View File

@ -1,5 +1,5 @@
# Blog # Blog
* [Shortcodes](/blog/shortcodes) - [Shortcodes](/blog/shortcodes)
* [V1: MDX goes stable](/blog/v1) - [V1: MDX goes stable](/blog/v1)
* [Custom pragma](/blog/custom-pragma) - [Custom pragma](/blog/custom-pragma)

View File

@ -1,12 +1,12 @@
import { Button } from '@rebass/emotion' import {Button} from '@rebass/emotion'
[MDX Blog](/blog) [MDX Blog](/blog)
# Shortcodes # Shortcodes
An exciting new feature in MDX v1 is global shortcodes. This An exciting new feature in MDX v1 is global shortcodes. This
allows you to expose components to all of your documents in allows you to expose components to all of your documents in
your app or website. This is a useful feature for common your app or website. This is a useful feature for common
components like YouTube embeds, Twitter cards, or anything components like YouTube embeds, Twitter cards, or anything
else frequently used in your documents. else frequently used in your documents.
@ -16,26 +16,24 @@ you can add in components with the `MDXProvider`:
```js ```js
// src/App.js // src/App.js
import React from 'react' import React from 'react'
import { MDXProvider } from '@mdx-js/react' import {MDXProvider} from '@mdx-js/react'
import { YouTube, Twitter, TomatoBox } from './ui' import {YouTube, Twitter, TomatoBox} from './ui'
const shortcodes = { YouTube, Twitter, TomatoBox } const shortcodes = {YouTube, Twitter, TomatoBox}
export default ({ children }) => ( export default ({children}) => (
<MDXProvider components={shortcodes}> <MDXProvider components={shortcodes}>{children}</MDXProvider>
{children}
</MDXProvider>
) )
``` ```
Then, any MDX document thats wrapped in `App` has access to Then, any MDX document thats wrapped in `App` has access to
`YouTube`, `Twitter`, and `TomatoBox`. Shortcodes are nothing `YouTube`, `Twitter`, and `TomatoBox`. Shortcodes are nothing
more than components, so you can reference them anywhere in an more than components, so you can reference them anywhere in an
MDX document with JSX. MDX document with JSX.
`example.mdx` `example.mdx`
```md ```mdx
# Hello world! # Hello world!
Heres a YouTube shortcode: Heres a YouTube shortcode:
@ -49,18 +47,21 @@ Heres a YouTube shortcode wrapped in TomatoBox:
</TomatoBox> </TomatoBox>
``` ```
Thats it. :tada: :rocket: Thats it. :tada: :rocket:
<Button as="a" href="https://codesandbox.io/s/github/mdx-js/mdx/tree/master/examples/shortcodes"> <Button
as="a"
href="https://codesandbox.io/s/github/mdx-js/mdx/tree/master/examples/shortcodes"
>
Try it on CodeSandbox Try it on CodeSandbox
</Button> </Button>
* * * ---
Huge thanks to [Chris Biscardi](https://christopherbiscardi.com) Huge thanks to [Chris Biscardi](https://christopherbiscardi.com)
for building out most of this functionality. for building out most of this functionality.
* * * ---
Written by [John Otander](https://johno.com) Written by [John Otander](https://johno.com)

View File

@ -3,11 +3,11 @@
# MDX goes stable # MDX goes stable
Its been a year and a half since the first MDX commit and a year since MDX was first announced at Its been a year and a half since the first MDX commit and a year since MDX was first announced at
ZEIT Day. MDX is a radical paradigm shift in how to write immersive content using components. Its ZEIT Day. MDX is a radical paradigm shift in how to write immersive content using components. Its
an open, [authorable format](https://johno.com/authorable-format) that makes it *fun* to write again. an open, [authorable format](https://johno.com/authorable-format) that makes it _fun_ to write again.
Since announcing MDX weve been working on numerous bug fixes, new features, better parsing, and integration Since announcing MDX weve been working on numerous bug fixes, new features, better parsing, and integration
tests. Now, we think its ready. **Were happy to finally release v1!** tests. Now, we think its ready. **Were happy to finally release v1!**
## 🎉 Whats new? ## 🎉 Whats new?
@ -19,15 +19,15 @@ MDX document parsing is significantly improved.
We wont get into the nitty gritty here, but weve seen how MDX is used in real-world projects, integrated We wont get into the nitty gritty here, but weve seen how MDX is used in real-world projects, integrated
the edge cases we came across into our test suite, and now handle JSX, imports, and exports much more the edge cases we came across into our test suite, and now handle JSX, imports, and exports much more
intuitively. intuitively.
Please open an issue if you find a case we havent covered! 😸 Please open an issue if you find a case we havent covered! 😸
### remark-mdx ### remark-mdx
`remark-mdx` is the syntactic extension for MDX in remark. It provides the parsing functionality for `remark-mdx` is the syntactic extension for MDX in remark. It provides the parsing functionality for
MDX as a *[remark](https://github.com/remarkjs/remark) plugin*. That sounds a bit meta. What it means MDX as a _[remark](https://github.com/remarkjs/remark) plugin_. That sounds a bit meta. What it means
is that before we had the syntax parsing bits *in* the library (unusable from the outside), and now its is that before we had the syntax parsing bits _in_ the library (unusable from the outside), and now its
externalized (usable from the outside). This is useful if you want to inspect or transform MDX documents. externalized (usable from the outside). This is useful if you want to inspect or transform MDX documents.
For example, it allows tools like prettier to use the exact same parser used by MDX core. Or you could For example, it allows tools like prettier to use the exact same parser used by MDX core. Or you could
use `remark-mdx` in combination with [remark-lint](https://github.com/remarkjs/remark-lint) to check your use `remark-mdx` in combination with [remark-lint](https://github.com/remarkjs/remark-lint) to check your
MDX. MDX.
@ -46,94 +46,94 @@ Special thanks to [@christopherbiscardi](https://github.com/christopherbiscardi)
**Good libraries need great docs**, so weve been working on adding content and improving the overall documentation **Good libraries need great docs**, so weve been working on adding content and improving the overall documentation
website experience. website experience.
* [Search (thanks Algolia)](https://mobile.twitter.com/4lpine/status/1114270174096412672) - [Search (thanks Algolia)](https://mobile.twitter.com/4lpine/status/1114270174096412672)
* [Guides](https://mdxjs.com) - [Guides](https://mdxjs.com)
* [Automatic deployment via ZEIT](https://zeit.co) - [Automatic deployment via ZEIT](https://zeit.co)
* [Custom Gatsby theme](https://gatsbyjs.org) - [Custom Gatsby theme](https://gatsbyjs.org)
* Reorganization of docs for intuitiveness - Reorganization of docs for intuitiveness
* Full page rewrites to improve clarity - Full page rewrites to improve clarity
Special thanks to [@jxnblk](https://github.com/jxnblks) and [@wooorm](https://github.com/wooorm) for their help Special thanks to [@jxnblk](https://github.com/jxnblks) and [@wooorm](https://github.com/wooorm) for their help
improving the docs and updating the build tooling. improving the docs and updating the build tooling.
## Breaking changes ## Breaking changes
In order to make some improvements we were forced to introduce a few breaking changes. **These were the In order to make some improvements we were forced to introduce a few breaking changes. **These were the
result of real-world production testing and feedback**. The community has evolved and weve come up with result of real-world production testing and feedback**. The community has evolved and weve come up with
newer, better ideas over the last year. We have made sure the impact is small and have written a full newer, better ideas over the last year. We have made sure the impact is small and have written a full
migration guide. migration guide.
* 🚨`@mdx-js/tag` is replaced by `@mdx-js/react` and an `@mdx` pragma - [migration guide](/migrating/v1#pragma) - 🚨`@mdx-js/tag` is replaced by `@mdx-js/react` and an `@mdx` pragma - [migration guide](/migrating/v1#pragma)
* MDXProvider now merges component contexts when nested - [migration guide](/migrating/v1#mdxprovider) - MDXProvider now merges component contexts when nested - [migration guide](/migrating/v1#mdxprovider)
* React support now requires `>= 16.8` in `@mdx-js/react` - [migration guide](/migrating/v1#react) - React support now requires `>= 16.8` in `@mdx-js/react` - [migration guide](/migrating/v1#react)
[Read the full v1 migration guide](/migrating/v1) [Read the full v1 migration guide](/migrating/v1)
#### Deprecations #### Deprecations
We only needed to introduce one deprecation. The `mdPlugins` and `hastPlugins` options have been renamed We only needed to introduce one deprecation. The `mdPlugins` and `hastPlugins` options have been renamed
`remarkPlugins` and `rehypePlugins` respectively. For the time being we will issue a warning when the old options `remarkPlugins` and `rehypePlugins` respectively. For the time being we will issue a warning when the old options
are used. In v2, the old options will be removed. are used. In v2, the old options will be removed.
## 📈 Growth ## 📈 Growth
A major release is always a good time to take a step back and reflect on whats been happening in terms of growth A major release is always a good time to take a step back and reflect on whats been happening in terms of growth
and the greater community. The ecosystem surrounding MDX has already grown larger than we ever dreamed. Weve also and the greater community. The ecosystem surrounding MDX has already grown larger than we ever dreamed. Weve also
seen projects/products/application we never even imagined. seen projects/products/application we never even imagined.
### Numbers ### Numbers
* **Downloads**: 125,000/week, 2.4M total - **Downloads**: 125,000/week, 2.4M total
* **Stars**: 6,200 - **Stars**: 6,200
* **Contributors**: 50 - **Contributors**: 50
* **Pull requests**: 281 - **Pull requests**: 281
* **Commits**: 670 - **Commits**: 670
The contributor growth is one of the most important aspects here as we have numerous community members that are familiar The contributor growth is one of the most important aspects here as we have numerous community members that are familiar
with MDX internals. This allows us to continually improve the project and spread the workload against an ever growing with MDX internals. This allows us to continually improve the project and spread the workload against an ever growing
team of contributors. team of contributors.
[See the contributor graph](https://github.com/mdx-js/mdx/graphs/contributors) [See the contributor graph](https://github.com/mdx-js/mdx/graphs/contributors)
### Ecosystem ### Ecosystem
* [Prettier](https://prettier.io) - [Prettier](https://prettier.io)
* [Docz](https://docz.site) - [Docz](https://docz.site)
* [MDX Deck](https://github.com/jxnblk/mdx-deck) - [MDX Deck](https://github.com/jxnblk/mdx-deck)
* [Next.js](https://nextjs.org) - [Next.js](https://nextjs.org)
* [Gatsby](https://gatsbyjs.org) - [Gatsby](https://gatsbyjs.org)
* [AST Explorer](https://astexplorer.net) - [AST Explorer](https://astexplorer.net)
* [Vue support (alpha)](/vue) - [Vue support (alpha)](/vue)
* [Demoboard](https://frontarm.com/demoboard/) - [Demoboard](https://frontarm.com/demoboard/)
* [Editors](/editors) - [Editors](/editors)
## 🛣 Roadmap ## 🛣 Roadmap
With v1 released we have a roadmap in place that well continue working towards over the next 6 months or With v1 released we have a roadmap in place that well continue working towards over the next 6 months or
so in addition to bug fixes and parsing issues we might encounter. so in addition to bug fixes and parsing issues we might encounter.
* MDXs: [#454](https://github.com/mdx-js/mdx/issues/454) - MDXs: [#454](https://github.com/mdx-js/mdx/issues/454)
* Interleaving: [#195](https://github.com/mdx-js/mdx/issues/195) - Interleaving: [#195](https://github.com/mdx-js/mdx/issues/195)
* Global shortcodes: [#508](https://github.com/mdx-js/mdx/pull/508) - Global shortcodes: [#508](https://github.com/mdx-js/mdx/pull/508)
* Stable Vue support: [#238](https://github.com/mdx-js/mdx/issues/238) - Stable Vue support: [#238](https://github.com/mdx-js/mdx/issues/238)
* Blocks: MDX WYSIWYG: [blocks/blocks](https://github.com/blocks/blocks) - Blocks: MDX WYSIWYG: [blocks/blocks](https://github.com/blocks/blocks)
* MDX playground inspired by AST Explorer: [#220](https://github.com/mdx-js/mdx/issues/220) - MDX playground inspired by AST Explorer: [#220](https://github.com/mdx-js/mdx/issues/220)
* New splash page: [#444](https://github.com/mdx-js/mdx/issues/444) - New splash page: [#444](https://github.com/mdx-js/mdx/issues/444)
* Showcase page: [#414](https://github.com/mdx-js/mdx/issues/414) - Showcase page: [#414](https://github.com/mdx-js/mdx/issues/414)
### Vue support ### Vue support
Supporting Vue is an important goal for MDX and is one of the primary reasons weve rearchitected MDX to use Supporting Vue is an important goal for MDX and is one of the primary reasons weve rearchitected MDX to use
custom pragma. Were delighted that **we now have an alpha version for Vue working**. Wed love it if anyone custom pragma. Were delighted that **we now have an alpha version for Vue working**. Wed love it if anyone
from the Vue community wants to give it a try and provide feedback. from the Vue community wants to give it a try and provide feedback.
[See the Vue example](https://github.com/mdx-js/mdx/tree/master/examples/vue) [See the Vue example](https://github.com/mdx-js/mdx/tree/master/examples/vue)
### Blocks project ### Blocks project
One of the key missing aspects of authoring MDX documents is the editing experience. Currently, there isnt an One of the key missing aspects of authoring MDX documents is the editing experience. Currently, there isnt an
approachable way to write MDX unless you enjoy working in a text editor and writing raw Markdown/code. Wed approachable way to write MDX unless you enjoy working in a text editor and writing raw Markdown/code. Wed
like to solve that and have begun work on an MDX “blocks editor” thats a **content-focused WYSIWYG**. Not to mention, like to solve that and have begun work on an MDX “blocks editor” thats a **content-focused WYSIWYG**. Not to mention,
well be doing all that we can to make sure the editor is as accessible as it can be from the beginning. well be doing all that we can to make sure the editor is as accessible as it can be from the beginning.
When we have a beta ready we will be open sourcing it and announcing, so stay tuned. When we have a beta ready we will be open sourcing it and announcing, so stay tuned.
@ -145,15 +145,15 @@ When we have a beta ready we will be open sourcing it and announcing, so stay tu
MDX is part of the unified collective, which is an open source ecosystem for dealing with many sources of content. unified MDX is part of the unified collective, which is an open source ecosystem for dealing with many sources of content. unified
projects are used all over the web, and it would never be possible without financial support from our fine sponsors. projects are used all over the web, and it would never be possible without financial support from our fine sponsors.
* [ZEIT](https://zeit.co) 🥇 - [ZEIT](https://zeit.co) 🥇
* [Gatsby](https://gatsbyjs.org) 🥇 - [Gatsby](https://gatsbyjs.org) 🥇
* [Holloway](https://www.holloway.com) 🥉 - [Holloway](https://www.holloway.com) 🥉
* [Backers](https://opencollective.com/unified#budget) 🏆 - [Backers](https://opencollective.com/unified#budget) 🏆
* [You?](https://opencollective.com/unified) 👤 - [You?](https://opencollective.com/unified) 👤
## 🙏 Thanks ## 🙏 Thanks
Wed like to say thanks to all our contributors and our happy users. Special thanks to Wed like to say thanks to all our contributors and our happy users. Special thanks to
[@wooorm](https://github.com/wooorm), [@wooorm](https://github.com/wooorm),
[@silvenon](https://github.com/silvenon), [@silvenon](https://github.com/silvenon),
[@timneutkens](https://github.com/timneutkens), [@timneutkens](https://github.com/timneutkens),
@ -188,7 +188,7 @@ Wed like to say thanks to all our contributors and our happy users. Special
[@sw-yx](https://github.com/sw-yx), [@sw-yx](https://github.com/sw-yx),
and anyone we may have forgotten. and anyone we may have forgotten.
* * * ---
Written by [John Otander](https://johno.com) Written by [John Otander](https://johno.com)

View File

@ -4,10 +4,10 @@
> By interacting with this repository, organization, or community you agree to > By interacting with this repository, organization, or community you agree to
> abide by its terms. > abide by its terms.
Hi! 👋 Hi! 👋
Were excited that youre interested in contributing! Were excited that youre interested in contributing!
Take a moment to read the following guidelines. Take a moment to read the following guidelines.
And thanks for contributing to **MDX**! 👏👌✨ And thanks for contributing to **MDX**! 👏👌✨
If youre raising an issue, please understand that people involved with this If youre raising an issue, please understand that people involved with this
project often do so for fun, next to their day job; you are not entitled to project often do so for fun, next to their day job; you are not entitled to
@ -15,21 +15,21 @@ free customer service.
## Table of Contents ## Table of Contents
* [Support](#support) - [Support](#support)
* [Contributions](#contributions) - [Contributions](#contributions)
* [Financial support](#financial-support) - [Financial support](#financial-support)
* [Improve documentation](#improve-documentation) - [Improve documentation](#improve-documentation)
* [Improve issues](#improve-issues) - [Improve issues](#improve-issues)
* [Give feedback on issues and pull requests](#give-feedback-on-issues-and-pull-requests) - [Give feedback on issues and pull requests](#give-feedback-on-issues-and-pull-requests)
* [Write code](#write-code) - [Write code](#write-code)
* [Running the tests](#running-the-tests) - [Running the tests](#running-the-tests)
* [Running the docs site](#running-the-docs-site) - [Running the docs site](#running-the-docs-site)
* [Submitting an issue](#submitting-an-issue) - [Submitting an issue](#submitting-an-issue)
* [Submitting a pull request](#submitting-a-pull-request) - [Submitting a pull request](#submitting-a-pull-request)
* [Project structure](#project-structure) - [Project structure](#project-structure)
* [Releases](#releases) - [Releases](#releases)
* [Troubleshooting](#troubleshooting) - [Troubleshooting](#troubleshooting)
* [Resources](#resources) - [Resources](#resources)
## Support ## Support
@ -69,7 +69,7 @@ Were always looking for more opinions on discussions in the issue tracker.
### Write code ### Write code
Code contributions are very welcome. Its often good to first create an issue Code contributions are very welcome. Its often good to first create an issue
to report a bug or suggest a new feature before creating a pull request to to report a bug or suggest a new feature before creating a pull request to
prevent you from doing unnecessary work. prevent you from doing unnecessary work.
@ -80,7 +80,7 @@ prevent you from doing unnecessary work.
3. `yarn test` 3. `yarn test`
Tests for an individual package can be run as a yarn workspace: Tests for an individual package can be run as a yarn workspace:
`yarn workspace remark-mdx test`. To see what packages ar available to test `yarn workspace remark-mdx test`. To see what packages ar available to test
you can list out all workspaces with `yarn workspaces info`. you can list out all workspaces with `yarn workspaces info`.
## Running the docs site ## Running the docs site
@ -91,48 +91,48 @@ you can list out all workspaces with `yarn workspaces info`.
## Submitting an issue ## Submitting an issue
* The issue tracker is for issues. Use chat for support - The issue tracker is for issues. Use chat for support
* Search the issue tracker (including closed issues) before opening a new - Search the issue tracker (including closed issues) before opening a new
issue issue
* Ensure youre using the latest version of our packages - Ensure youre using the latest version of our packages
* Use a clear and descriptive title - Use a clear and descriptive title
* Include as much information as possible: steps to reproduce the issue, - Include as much information as possible: steps to reproduce the issue,
error message, version, operating system, etcetera error message, version, operating system, etcetera
* The more time you put into an issue, the better we will be able to help you - The more time you put into an issue, the better we will be able to help you
* The best issue report is a [failing test][unit-test] proving it - The best issue report is a [failing test][unit-test] proving it
## Submitting a pull request ## Submitting a pull request
* Non-trivial changes are often best discussed in an issue first, to prevent - Non-trivial changes are often best discussed in an issue first, to prevent
you from doing unnecessary work you from doing unnecessary work
* For ambitious tasks, you should try to get your work in front of the - For ambitious tasks, you should try to get your work in front of the
community for feedback as soon as possible community for feedback as soon as possible
* New features should be accompanied with tests and documentation - New features should be accompanied with tests and documentation
* Dont include unrelated changes - Dont include unrelated changes
* Test before submitting code by running `yarn test` - Test before submitting code by running `yarn test`
* Write a convincing description of why we should land your pull request: - Write a convincing description of why we should land your pull request:
its your job to convince us its your job to convince us
## Project structure ## Project structure
MDX is a monorepo that uses [lerna][]. MDX is a monorepo that uses [lerna][].
* All packages are found in `./packages` - All packages are found in `./packages`
* All documentation is found in `./docs` and can be viewed with `yarn docs -- -o` - All documentation is found in `./docs` and can be viewed with `yarn docs -- -o`
* Theres an `./examples` directory where examples for different tools and - Theres an `./examples` directory where examples for different tools and
frameworks frameworks
## Releases ## Releases
In order to release a new version you can follow these steps: In order to release a new version you can follow these steps:
* Draft a release for the next version (vX.X.X) - Draft a release for the next version (vX.X.X)
* Release a prerelease - Release a prerelease
* `yarn lerna publish` - `yarn lerna publish`
* Select prepatch/preminor/premajor - Select prepatch/preminor/premajor
* Sanity check in a project or two with the prerelease - Sanity check in a project or two with the prerelease
* `yarn lerna publish` - `yarn lerna publish`
* Publish release on GitHub - Publish release on GitHub
## Troubleshooting ## Troubleshooting
@ -142,24 +142,18 @@ If youre having issues installing locally you might need to run
## Resources ## Resources
* [Good first issues in the MDX repository](https://github.com/mdx-js/mdx/labels/good%20first%20issue%20👋) - [Good first issues in the MDX repository](https://github.com/mdx-js/mdx/labels/good%20first%20issue%20👋)
* [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
* [Making your first contribution](https://medium.com/@vadimdemedes/making-your-first-contribution-de6576ddb190) - [Making your first contribution](https://medium.com/@vadimdemedes/making-your-first-contribution-de6576ddb190)
* [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)
* [GitHub Help](https://help.github.com) - [GitHub Help](https://help.github.com)
<!-- Definitions --> <!-- Definitions -->
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[unit-test]: https://twitter.com/sindresorhus/status/579306280495357953 [unit-test]: https://twitter.com/sindresorhus/status/579306280495357953
[collective]: https://opencollective.com/unified [collective]: https://opencollective.com/unified
[micromark]: https://github.com/micromark/micromark [micromark]: https://github.com/micromark/micromark
[lerna]: https://lernajs.io [lerna]: https://lernajs.io
[lerna-install]: https://github.com/lerna/lerna/issues/1457 [lerna-install]: https://github.com/lerna/lerna/issues/1457

View File

@ -2,27 +2,23 @@
The community has begun adding MDX syntax highlighting support for some editors! The community has begun adding MDX syntax highlighting support for some editors!
* [vscode][]: VSCode - [vscode][]: VSCode
* [vscode-mdx-preview][]: MDX Preview for VS Code - [vscode-mdx-preview][]: MDX Preview for VS Code
* [vim][]: Vim - [vim][]: Vim
* [sublime][]: Sublime - [sublime][]: Sublime
### Editors needing support ### Editors needing support
* Atom - Atom
* Emacs - Emacs
* [JetBrains IntelliJ/WebStorm][jetbrains] - [JetBrains IntelliJ/WebStorm][jetbrains]
* * * ---
Original GitHub issue: [#119](https://github.com/mdx-js/mdx/issues/119) Original GitHub issue: [#119](https://github.com/mdx-js/mdx/issues/119)
[vscode]: https://github.com/silvenon/vscode-mdx [vscode]: https://github.com/silvenon/vscode-mdx
[vscode-mdx-preview]: https://github.com/xyc/vscode-mdx-preview [vscode-mdx-preview]: https://github.com/xyc/vscode-mdx-preview
[vim]: https://github.com/jxnblk/vim-mdx-js [vim]: https://github.com/jxnblk/vim-mdx-js
[sublime]: https://github.com/jonsuh/mdx-sublime [sublime]: https://github.com/jonsuh/mdx-sublime
[jetbrains]: https://youtrack.jetbrains.com/issue/WEB-32599 [jetbrains]: https://youtrack.jetbrains.com/issue/WEB-32599

View File

@ -1,15 +1,12 @@
# Babel configuration # Babel configuration
You will also need to configure [babel][] to support the language features that You will also need to configure [babel][] to support the language features that
MDX uses. One way you can achieve that is using the following `.babelrc` MDX uses. One way you can achieve that is using the following `.babelrc`
at your project root. at your project root.
```json ```json
{ {
"presets": [ "presets": ["@babel/env", "@babel/react"]
"@babel/env",
"@babel/react"
]
} }
``` ```

View File

@ -17,10 +17,10 @@ Then create the following `src/App.js`:
```js ```js
// src/App.js // src/App.js
import React, { lazy, Component, Suspense } from 'react'; import React, {lazy, Component, Suspense} from 'react'
import { importMDX } from 'mdx.macro'; import {importMDX} from 'mdx.macro'
const Content = lazy(() => importMDX('./Content.mdx')); const Content = lazy(() => importMDX('./Content.mdx'))
class App extends Component { class App extends Component {
render() { render() {
@ -30,11 +30,11 @@ class App extends Component {
<Content /> <Content />
</Suspense> </Suspense>
</div> </div>
); )
} }
} }
export default App; export default App
``` ```
And then create the following `src/Content.mdx`: And then create the following `src/Content.mdx`:
@ -46,7 +46,5 @@ And then create the following `src/Content.mdx`:
[See the full example][cra-example] [See the full example][cra-example]
[mdx-macro]: https://www.npmjs.com/package/mdx.macro [mdx-macro]: https://www.npmjs.com/package/mdx.macro
[cra-example]: https://github.com/mdx-js/mdx/tree/master/examples/create-react-app [cra-example]: https://github.com/mdx-js/mdx/tree/master/examples/create-react-app
[known bug]: https://github.com/facebook/create-react-app/issues/5580 [known bug]: https://github.com/facebook/create-react-app/issues/5580

View File

@ -35,7 +35,5 @@ For more documentation on programmatically creating pages with Gatsby, see
the [Gatsby MDX docs][gatsby-mdx-docs]. the [Gatsby MDX docs][gatsby-mdx-docs].
[gatsby]: https://gatsbyjs.org [gatsby]: https://gatsbyjs.org
[gatsby-mdx-docs]: https://gatsbyjs.org/docs/mdx/ [gatsby-mdx-docs]: https://gatsbyjs.org/docs/mdx/
[gatsby-plugin-mdx]: https://gatsbyjs.org/packages/gatsby-plugin-mdx/ [gatsby-plugin-mdx]: https://gatsbyjs.org/packages/gatsby-plugin-mdx/

View File

@ -1,4 +1,4 @@
import { Box } from '@rebass/emotion' import {Box} from '@rebass/emotion'
# Getting Started # Getting Started
@ -26,17 +26,17 @@ the installation guides.
## Table of contents ## Table of contents
* [Hello World](#hello-world) - [Hello World](#hello-world)
* [Syntax](#syntax) - [Syntax](#syntax)
* [Markdown](#markdown) - [Markdown](#markdown)
* [JSX](#jsx) - [JSX](#jsx)
* [MDX](#mdx) - [MDX](#mdx)
* [Working with components](#working-with-components) - [Working with components](#working-with-components)
* [MDXProvider](#mdxprovider) - [MDXProvider](#mdxprovider)
* [Table of components](#table-of-components) - [Table of components](#table-of-components)
* [Installation guides](#installation-guides) - [Installation guides](#installation-guides)
* [Scaffold out an app](#scaffold-out-an-app) - [Scaffold out an app](#scaffold-out-an-app)
* [Do it yourself](#do-it-yourself) - [Do it yourself](#do-it-yourself)
## Hello World ## Hello World
@ -70,14 +70,14 @@ Instead of the following HTML:
```html ```html
<blockquote> <blockquote>
<p>A blockquote with <em>some</em> emphasis.</p> <p>A blockquote with <em>some</em> emphasis.</p>
</blockquote> </blockquote>
``` ```
You can write the equivalent in Markdown (or MDX) like so: You can write the equivalent in Markdown (or MDX) like so:
```markdown ```markdown
> A blockquote with *some* emphasis. > A blockquote with _some_ emphasis.
``` ```
Markdown is good for **content**. Markdown is good for **content**.
@ -194,7 +194,7 @@ Say we import our MDX file, using webpack and React, like so:
```jsx ```jsx
// index.js // index.js
import React from 'react' import React from 'react'
import MDXDocument, { metadata } from 'posts/post.mdx' import MDXDocument, {metadata} from 'posts/post.mdx'
export default () => ( export default () => (
<> <>
@ -225,7 +225,9 @@ After bundling and evaluating, we could get something like this:
```html ```html
<h1>Post about MDX</h1> <h1>Post about MDX</h1>
<p>MDX is a JSX in Markdown loader, parser, and renderer for ambitious projects.</p> <p>
MDX is a JSX in Markdown loader, parser, and renderer for ambitious projects.
</p>
<footer><p>By: Sue, Fred.</p></footer> <footer><p>By: Sue, Fred.</p></footer>
``` ```
@ -236,7 +238,7 @@ structures.
##### Defining variables with exports ##### Defining variables with exports
If you need to define a variable in your MDX document, you can use an export If you need to define a variable in your MDX document, you can use an export
to do so. Not only do exports emit data, they instantiate data you can reference to do so. Not only do exports emit data, they instantiate data you can reference
in JSX blocks: in JSX blocks:
```js ```js
@ -262,8 +264,8 @@ component youd like to render.
import React from 'react' import React from 'react'
import Hello from '../hello.mdx' import Hello from '../hello.mdx'
const MyH1 = props => <h1 style={{ color: 'tomato' }} {...props} /> const MyH1 = props => <h1 style={{color: 'tomato'}} {...props} />
const MyParagraph = props => <p style={{ fontSize: '18px', lineHeight: 1.6 }} /> const MyParagraph = props => <p style={{fontSize: '18px', lineHeight: 1.6}} />
const components = { const components = {
h1: MyH1, h1: MyH1,
@ -279,14 +281,9 @@ You can also import your components from another location like your UI library:
import React from 'react' import React from 'react'
import Hello from '../hello.mdx' import Hello from '../hello.mdx'
import { import {Text, Heading, Code, InlineCode} from '../my-ui-library'
Text,
Heading,
Code,
InlineCode
} from '../my-ui-library'
export default () => export default () => (
<Hello <Hello
components={{ components={{
h1: Heading, h1: Heading,
@ -295,6 +292,7 @@ export default () =>
inlineCode: InlineCode inlineCode: InlineCode
}} }}
/> />
)
``` ```
With the above, the `Heading` component will be rendered for any `h1`, `Text` With the above, the `Heading` component will be rendered for any `h1`, `Text`
@ -313,9 +311,9 @@ the `MDXProvider` to only pass your components in one place:
```jsx ```jsx
// src/App.js // src/App.js
import React from 'react' import React from 'react'
import { MDXProvider } from '@mdx-js/react' import {MDXProvider} from '@mdx-js/react'
import { Heading, Text, Pre, Code, Table } from './components' import {Heading, Text, Pre, Code, Table} from './components'
const components = { const components = {
h1: Heading.H1, h1: Heading.H1,
@ -326,10 +324,11 @@ const components = {
inlineCode: Code inlineCode: Code
} }
export default props => export default props => (
<MDXProvider components={components}> <MDXProvider components={components}>
<main {...props} /> <main {...props} />
</MDXProvider> </MDXProvider>
)
``` ```
This allows you to remove duplicated component passing and importing. This allows you to remove duplicated component passing and importing.
@ -345,14 +344,15 @@ styling, or even manipulate the children passed to the component.
```js ```js
// src/App.js // src/App.js
import React from 'react' import React from 'react'
import { MDXProvider } from '@mdx-js/react' import {MDXProvider} from '@mdx-js/react'
const Wrapper = props => <main style={{ padding: '20px', backgroundColor: 'tomato' }} {...props} /> const Wrapper = props => (
<main style={{padding: '20px', backgroundColor: 'tomato'}} {...props} />
)
export default ({ children }) => export default ({children}) => (
<MDXProvider components={{ wrapper: Wrapper }}> <MDXProvider components={{wrapper: Wrapper}}>{children}</MDXProvider>
{children} )
</MDXProvider>
``` ```
If you would like to see more advanced usage, see the If you would like to see more advanced usage, see the
@ -364,7 +364,7 @@ Sometimes from an MDX file you might want to override the wrapper.
This is especially useful when you want to override layout for a single entry This is especially useful when you want to override layout for a single entry
point at the page level. point at the page level.
To achieve this you can use the ES default [export][] and it will wrap your MDX To achieve this you can use the ES default [export][] and it will wrap your MDX
document *instead* of the wrapper passed to MDXProvider. document _instead_ of the wrapper passed to MDXProvider.
You can declare a default export as a function: You can declare a default export as a function:
@ -434,13 +434,13 @@ Now that weve gone over how MDX works, youre ready to get installing.
If youre the type of person that wants to scaffold out an app quickly and start If youre the type of person that wants to scaffold out an app quickly and start
playing around you can use `npm init`: playing around you can use `npm init`:
* `npm init mdx` [`webpack`](/getting-started/webpack) - `npm init mdx` [`webpack`](/getting-started/webpack)
* `npm init mdx` [`parcel`](/getting-started/parcel) - `npm init mdx` [`parcel`](/getting-started/parcel)
* `npm init mdx` [`next`](/getting-started/next) - `npm init mdx` [`next`](/getting-started/next)
* `npm init mdx` [`create-react-app`](/getting-started/create-react-app) - `npm init mdx` [`create-react-app`](/getting-started/create-react-app)
* `npm init mdx` [`gatsby`](/getting-started/gatsby) - `npm init mdx` [`gatsby`](/getting-started/gatsby)
* `npm init mdx` [`x0`](/getting-started/x0) - `npm init mdx` [`x0`](/getting-started/x0)
* `npm init mdx` [`react-static`](/getting-started/react-static) - `npm init mdx` [`react-static`](/getting-started/react-static)
### Do it yourself ### Do it yourself
@ -491,21 +491,12 @@ const renderWithReact = async mdxCode => {
``` ```
[imports]: #imports [imports]: #imports
[exports]: #exports [exports]: #exports
[components]: #table-of-components [components]: #table-of-components
[md]: https://daringfireball.net/projects/markdown/syntax [md]: https://daringfireball.net/projects/markdown/syntax
[jsx]: https://reactjs.org/docs/introducing-jsx.html [jsx]: https://reactjs.org/docs/introducing-jsx.html
[import]: https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/import [import]: https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/import
[export]: https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export [export]: https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export
[rebass]: https://rebassjs.org [rebass]: https://rebassjs.org
[transclude]: https://en.wikipedia.org/wiki/Transclusion [transclude]: https://en.wikipedia.org/wiki/Transclusion
[context]: https://reactjs.org/docs/context.html [context]: https://reactjs.org/docs/context.html

View File

@ -4,7 +4,7 @@ Next.js provides an [official plugin][next-plugin] to simplify MDX importing
into your project. into your project.
```shell ```shell
npm install --save @next/mdx @mdx-js/loader npm install --save @next/mdx @mdx-js/loader
``` ```
To configure MDX, add the following to your `next.config.js`: To configure MDX, add the following to your `next.config.js`:

View File

@ -1,3 +1,3 @@
import Redirect from 'gatsby-theme-mdx/src/components/redirect' import Redirect from 'gatsby-theme-mdx/src/components/redirect'
<Redirect to='/advanced/typescript' /> <Redirect to="/advanced/typescript" />

View File

@ -13,7 +13,7 @@ npm install --save-dev @mdx-js/loader
## Configuration ## Configuration
The loader needs to be used in tandem with the [babel-loader][]. Most projects will typically The loader needs to be used in tandem with the [babel-loader][]. Most projects will typically
already include this if you are using JSX syntax. already include this if you are using JSX syntax.
For webpack projects you can define the following `webpack.config.js` extension For webpack projects you can define the following `webpack.config.js` extension
@ -29,10 +29,7 @@ module.exports = {
{ {
test: /\.mdx?$/, test: /\.mdx?$/,
use: [ use: ['babel-loader', '@mdx-js/loader']
'babel-loader',
'@mdx-js/loader'
]
} }
] ]
} }
@ -41,8 +38,8 @@ module.exports = {
If you only want the loader for `.mdx` files you can change the regex to `/\.mdx$/`. If you only want the loader for `.mdx` files you can change the regex to `/\.mdx$/`.
The transpiled output for MDX requires [babel][] to be run. This is typically The transpiled output for MDX requires [babel][] to be run. This is typically
by adding in the babel-loader to run *after* the MDX loader. Webpack starts by adding in the babel-loader to run _after_ the MDX loader. Webpack starts
from the end of the loaders array and works backward, so it is important to from the end of the loaders array and works backward, so it is important to
follow the ordering above. follow the ordering above.
@ -94,5 +91,4 @@ module.exports = {
<BabelConfig /> <BabelConfig />
[babel-loader]: https://webpack.js.org/loaders/babel-loader/ [babel-loader]: https://webpack.js.org/loaders/babel-loader/
[babel]: https://babeljs.io [babel]: https://babeljs.io

View File

@ -1,6 +1,6 @@
# x0 # x0
[x0][] is a zero-config tool with built in support for MDX. You will need [x0][] is a zero-config tool with built in support for MDX. You will need
to install the library and set up the npm script. to install the library and set up the npm script.
## Installation ## Installation
@ -21,17 +21,17 @@ Then, in your `package.json` add the following to the `scripts`:
## Customizing the layout ## Customizing the layout
[x0][] supports MDX files with either `.md` or `.mdx` file extensions out of [x0][] supports MDX files with either `.md` or `.mdx` file extensions out of
the box. For components requiring providers you will need to use customize the box. For components requiring providers you will need to use customize
`_app.js`. Heres an example using [Rebass][] components: `_app.js`. Heres an example using [Rebass][] components:
```jsx ```jsx
import React from 'react' import React from 'react'
import * as Rebass from 'rebass' import * as Rebass from 'rebass'
import createScope from '@rebass/markdown' import createScope from '@rebass/markdown'
import { ScopeProvider } from '@compositor/x0/components' import {ScopeProvider} from '@compositor/x0/components'
export default ({ route, routes, ...props }) => ( export default ({route, routes, ...props}) => (
<ScopeProvider scope={{ ...Rebass, ...createScope() }}> <ScopeProvider scope={{...Rebass, ...createScope()}}>
<Rebass.Provider> <Rebass.Provider>
<Rebass.Container {...props} /> <Rebass.Container {...props} />
</Rebass.Provider> </Rebass.Provider>
@ -40,5 +40,4 @@ export default ({ route, routes, ...props }) => (
``` ```
[x0]: https://compositor.io/x0 [x0]: https://compositor.io/x0
[rebass]: https://rebassjs.com [rebass]: https://rebassjs.com

View File

@ -1,7 +1,7 @@
# Zero # Zero
[Zero](https://zeroserver.io) is a no-config web framework for React, MDX, [Zero](https://zeroserver.io) is a no-config web framework for React, MDX,
Node.js, and Vue. It has built in support for MDX. To get started, install Node.js, and Vue. It has built in support for MDX. To get started, install
Zero (globally or locally in your project). Zero (globally or locally in your project).
## Installation ## Installation
@ -12,7 +12,7 @@ npm install -g zero
## Writing MDX files ## Writing MDX files
Create a new directory for your project and add an `index.mdx` file with the Create a new directory for your project and add an `index.mdx` file with the
following markdown: following markdown:
```markdown ```markdown
@ -27,7 +27,7 @@ Zero has some additional features for MDX, you can [read them here](https://gith
## Resources ## Resources
* [Example Project](https://github.com/mdx-js/mdx/tree/master/examples/zero) - [Example Project](https://github.com/mdx-js/mdx/tree/master/examples/zero)
* [Zero GitHub](https://github.com/remoteinterview/zero/) - [Zero GitHub](https://github.com/remoteinterview/zero/)
* [Zero Website](https://zeroserver.io/) - [Zero Website](https://zeroserver.io/)
* [Zero MDX Docs](https://github.com/remoteinterview/zero/tree/master/docs/mdx) - [Zero MDX Docs](https://github.com/remoteinterview/zero/tree/master/docs/mdx)

View File

@ -1,22 +1,22 @@
# Custom loader # Custom loader
By design, the default MDX is very minimal and likely wont see any additional features outside of the MDX spec. However, webpack [makes it straightforward][webpack-loader] to write your own loader to add custom syntax support. By design, the default MDX is very minimal and likely wont see any additional features outside of the MDX spec. However, webpack [makes it straightforward][webpack-loader] to write your own loader to add custom syntax support.
Consider a scenario where you wanted to add frontmatter support to all your MDX documents. You could achieve this with a remark plugin or a custom loader. Here well write a [custom loader][x0]: Consider a scenario where you wanted to add frontmatter support to all your MDX documents. You could achieve this with a remark plugin or a custom loader. Here well write a [custom loader][x0]:
```js ```js
// lib/fm-loader.js // lib/fm-loader.js
const matter = require('gray-matter') const matter = require('gray-matter')
const stringifyObject = require('stringify-object') const stringifyObject = require('stringify-object')
module.exports = async function (src) { module.exports = async function(src) {
const callback = this.async() const callback = this.async()
const { content, data } = matter(src) const {content, data} = matter(src)
const code = `export const frontMatter = ${stringifyObject(data)} const code = `export const frontMatter = ${stringifyObject(data)}
${content}` ${content}`
return callback(null, code) return callback(null, code)
} }
``` ```
@ -43,5 +43,4 @@ module.exports = {
``` ```
[webpack-loader]: https://webpack.js.org/contribute/writing-a-loader [webpack-loader]: https://webpack.js.org/contribute/writing-a-loader
[x0]: https://github.com/c8r/x0/blob/master/lib/mdx-fm-loader.js [x0]: https://github.com/c8r/x0/blob/master/lib/mdx-fm-loader.js

View File

@ -5,11 +5,11 @@ for common use cases, tools, and patterns.
Its intended to become the central knowledge base for MDX, so please feel free Its intended to become the central knowledge base for MDX, so please feel free
to add to them by [contributing](/contributing)! to add to them by [contributing](/contributing)!
* [Add syntax highlighting to code blocks](/guides/syntax-highlighting) - [Add syntax highlighting to code blocks](/guides/syntax-highlighting)
* [Add a live code block](/guides/live-code) - [Add a live code block](/guides/live-code)
* [Render MDX to the terminal](/guides/terminal) - [Render MDX to the terminal](/guides/terminal)
* [**\[WIP\]** Implement a dynamic table of contents](/guides/table-of-contents) - [**\[WIP\]** Implement a dynamic table of contents](/guides/table-of-contents)
* [**\[WIP\]** Use MDX in a Vue project](/guides/vue) - [**\[WIP\]** Use MDX in a Vue project](/guides/vue)
## Customizing ## Customizing
@ -17,6 +17,6 @@ At its core MDX is minimal and unopinionated, so theres often a need to
customize it. customize it.
Here are a few ways to do that: Here are a few ways to do that:
* [Write a custom remark plugin](/guides/writing-a-plugin) - [Write a custom remark plugin](/guides/writing-a-plugin)
* [Building a custom webpack loader](/guides/custom-loader) - [Building a custom webpack loader](/guides/custom-loader)
* [Wrapper customization](/guides/wrapper-customization) - [Wrapper customization](/guides/wrapper-customization)

View File

@ -5,7 +5,7 @@ If you havent read the syntax highlighting guide its recommended start the
# Live code # Live code
An increasingly common approach for live code editors is to overload the An increasingly common approach for live code editors is to overload the
code block. This is often done so that the code shows up nicely when rendered code block. This is often done so that the code shows up nicely when rendered
to GitHub and its a nice usage of meta strings. to GitHub and its a nice usage of meta strings.
## Code block meta string ## Code block meta string
@ -14,7 +14,8 @@ After the language in code fences you can add `key=value` pairs which will
be automatically passed as props to your code block. be automatically passed as props to your code block.
````md ````md
```js live=true ```js live=true
```
```` ````
## Component ## Component
@ -79,8 +80,7 @@ const components = {
} }
export default props => ( export default props => (
<MDXProvider components={components}> <MDXProvider components={components}>
<main {...props}> <main {...props}></main>
</main>
</MDXProvider> </MDXProvider>
) )
``` ```
@ -88,7 +88,7 @@ export default props => (
## Using the MDXProvider context for rendering ## Using the MDXProvider context for rendering
With the react-live editor you can ensure that your MDX components With the react-live editor you can ensure that your MDX components
in context are rendered in the preview. In order to do this you in context are rendered in the preview. In order to do this you
can use the MDX custom pragma. can use the MDX custom pragma.
To achieve this, import the pragma: To achieve this, import the pragma:
@ -127,7 +127,7 @@ export default ({children, className, live, render}) => {
<LiveProvider <LiveProvider
code={children.trim()} code={children.trim()}
transformCode={code => '/** @jsx mdx */' + code} transformCode={code => '/** @jsx mdx */' + code}
scope={{ mdx }} scope={{mdx}}
> >
<LivePreview /> <LivePreview />
<LiveEditor /> <LiveEditor />

View File

@ -4,11 +4,17 @@ You can render math blocks via [remark-math](https://github.com/remarkjs/remark-
First, link a stylesheet and use the `$` syntax: First, link a stylesheet and use the `$` syntax:
```md ```mdx
<!-- index.mdx --> <!-- index.mdx -->
<!-- Apply katex css --> <!-- Apply katex css -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.0/dist/katex.min.css" integrity="sha384-BdGj8xC2eZkQaxoQ8nSLefg4AV4/AwB3Fj+8SUSo7pnKP6Eoy18liIKTPn9oBYNG" crossOrigin="anonymous"/>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/katex@0.11.0/dist/katex.min.css"
integrity="sha384-BdGj8xC2eZkQaxoQ8nSLefg4AV4/AwB3Fj+8SUSo7pnKP6Eoy18liIKTPn9oBYNG"
crossOrigin="anonymous"
/>
Lift($L$) can be determined by Lift Coefficient ($C_L$) like the following equation. Lift($L$) can be determined by Lift Coefficient ($C_L$) like the following equation.

View File

@ -2,8 +2,8 @@
There are two primary approaches for adding syntax highlighting to MDX: There are two primary approaches for adding syntax highlighting to MDX:
* composition via the MDXProvider - composition via the MDXProvider
* remark plugin - remark plugin
Its typically preferred to take the compositional approach, but both Its typically preferred to take the compositional approach, but both
will be documented here. will be documented here.
@ -11,8 +11,8 @@ will be documented here.
## Composition ## Composition
The [MDXProvider](https://mdxjs.com/getting-started/#mdxprovider) provides The [MDXProvider](https://mdxjs.com/getting-started/#mdxprovider) provides
a way to map components to be rendered for a given Markdown element. So, a way to map components to be rendered for a given Markdown element. So,
this allows you to choose a specific component for the `code` block. To this allows you to choose a specific component for the `code` block. To
get started you can wrap your app in the MDXProvider and add in a component get started you can wrap your app in the MDXProvider and add in a component
to ensure its being picked up: to ensure its being picked up:
@ -25,13 +25,12 @@ import {MDXProvider} from '@mdx-js/react'
const components = { const components = {
pre: props => <div {...props} />, pre: props => <div {...props} />,
code: props => <pre style={{ color: 'tomato' }} {...props} /> code: props => <pre style={{color: 'tomato'}} {...props} />
} }
export default props => ( export default props => (
<MDXProvider components={components}> <MDXProvider components={components}>
<main {...props}> <main {...props}></main>
</main>
</MDXProvider> </MDXProvider>
) )
``` ```
@ -42,7 +41,7 @@ any code block found in your MDX files.
### prism-react-renderer ### prism-react-renderer
Now that you have a custom component being rendered for code blocks you can Now that you have a custom component being rendered for code blocks you can
choose any React component library to handle the syntax highlighting. A solid choose any React component library to handle the syntax highlighting. A solid
library to choose is [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer). library to choose is [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer).
You can install it with: You can install it with:
@ -54,7 +53,7 @@ yarn add prism-react-renderer
#### Build a CodeBlock component #### Build a CodeBlock component
You can essentially cut and paste the entire example into a new You can essentially cut and paste the entire example into a new
component file. The only big difference is the MDX will pass in the component file. The only big difference is the MDX will pass in the
code string as `children` so you will need to destructure that prop code string as `children` so you will need to destructure that prop
and pass it to Highlight as the `code` prop. and pass it to Highlight as the `code` prop.
@ -65,7 +64,7 @@ import Highlight, {defaultProps} from 'prism-react-renderer'
export default ({children}) => { export default ({children}) => {
return ( return (
<Highlight {...defaultProps} code={children} language='javascript'> <Highlight {...defaultProps} code={children} language="javascript">
{({className, style, tokens, getLineProps, getTokenProps}) => ( {({className, style, tokens, getLineProps, getTokenProps}) => (
<pre className={className} style={{...style, padding: '20px'}}> <pre className={className} style={{...style, padding: '20px'}}>
{tokens.map((line, i) => ( {tokens.map((line, i) => (
@ -82,9 +81,9 @@ export default ({children}) => {
} }
``` ```
Now you should see syntax highlighting in your MDX files. However, right now Now you should see syntax highlighting in your MDX files. However, right now
`javascript` is hardcoded as the language. You will need to take the language `javascript` is hardcoded as the language. You will need to take the language
from the code fence and pass it to Highlight directly. MDX will pass the language from the code fence and pass it to Highlight directly. MDX will pass the language
as `className` so you can pull out the language with: as `className` so you can pull out the language with:
```js ```js
@ -123,7 +122,7 @@ export default ({children, className}) => {
## Remark plugin ## Remark plugin
In addition to composition you can use any plugin from the remark In addition to composition you can use any plugin from the remark
ecosystem. One solid library for syntax highlighting is ecosystem. One solid library for syntax highlighting is
[@mapbox/rehype-prism](https://github.com/mapbox/rehype-prism). [@mapbox/rehype-prism](https://github.com/mapbox/rehype-prism).
```js ```js

View File

@ -2,6 +2,4 @@ import Note from 'gatsby-theme-mdx/src/components/note'
# Table of contents # Table of contents
<Note> <Note>This guide is a WIP</Note>
This guide is a WIP
</Note>

View File

@ -1,4 +1,4 @@
import { Tweet } from '@blocks/kit' import {Tweet} from '@blocks/kit'
# Terminal # Terminal
@ -41,15 +41,15 @@ const {MDXProvider} = require('@mdx-js/react')
const MDX = require('@mdx-js/runtime') const MDX = require('@mdx-js/runtime')
const components = { const components = {
h1: ({ children }) => <Text bold>{children}</Text>, h1: ({children}) => <Text bold>{children}</Text>,
p: ({ children }) => <Text>{children}</Text> p: ({children}) => <Text>{children}</Text>
} }
render( render(
<MDXProvider components={components}> <MDXProvider components={components}>
<MDX>{MDXContent}</MDX> <MDX>{MDXContent}</MDX>
</MDXProvider> </MDXProvider>
); )
``` ```
You can also provide other components to the runtime scope for additional You can also provide other components to the runtime scope for additional
@ -60,8 +60,8 @@ const components = {
Box, Box,
Color, Color,
Text, Text,
h1: ({ children }) => <Text bold>{children}</Text>, h1: ({children}) => <Text bold>{children}</Text>,
p: ({ children }) => <Text>{children}</Text> p: ({children}) => <Text>{children}</Text>
} }
``` ```
@ -71,7 +71,7 @@ This will allow you to write content like the following
```mdx ```mdx
# Hello, world! # Hello, world!
From <Color bgBlack white bold> MDX! </Color> From <Color bgBlack white bold> MDX! </Color>
<Box marginTop={1}> <Box marginTop={1}>
<Color bgCyan white bold> <Color bgCyan white bold>
@ -83,10 +83,10 @@ From <Color bgBlack white bold> MDX! </Color>
## All together ## All together
```js ```js
const React = require('react'); const React = require('react')
const {render, Color, Box, Text} = require('ink'); const {render, Color, Box, Text} = require('ink')
const MDX = require('@mdx-js/runtime') const MDX = require('@mdx-js/runtime')
const { MDXProvider } = require('@mdx-js/react') const {MDXProvider} = require('@mdx-js/react')
const MDXContent = ` const MDXContent = `
# Hello, world! # Hello, world!
@ -103,15 +103,15 @@ From <Color bgBlack white bold> MDX! </Color>
const components = { const components = {
Box, Box,
Color, Color,
h1: ({ children }) => <Text bold>{children}</Text>, h1: ({children}) => <Text bold>{children}</Text>,
p: ({ children }) => <Text>{children}</Text> p: ({children}) => <Text>{children}</Text>
} }
render( render(
<MDXProvider components={components}> <MDXProvider components={components}>
<MDX>{MDXContent}</MDX> <MDX>{MDXContent}</MDX>
</MDXProvider> </MDXProvider>
); )
``` ```
<Tweet tweetId="1141781114786160641" /> <Tweet tweetId="1141781114786160641" />
@ -119,5 +119,4 @@ render(
[See the full example](https://github.com/mdx-js/mdx/tree/master/examples/cli) [See the full example](https://github.com/mdx-js/mdx/tree/master/examples/cli)
[ink]: https://github.com/vadimdemedes/ink [ink]: https://github.com/vadimdemedes/ink
[runtime]: https://mdxjs.com/advanced/runtime [runtime]: https://mdxjs.com/advanced/runtime

View File

@ -2,9 +2,7 @@ import Note from 'gatsby-theme-mdx/src/components/note'
# Vue # Vue
<Note> <Note>This guide is a WIP</Note>
This guide is a WIP
</Note>
If you want to initialize a project to try Vue + MDX you can If you want to initialize a project to try Vue + MDX you can
[use the Vue example](https://github.com/mdx-js/mdx/tree/master/examples/vue). [use the Vue example](https://github.com/mdx-js/mdx/tree/master/examples/vue).
@ -30,10 +28,7 @@ module.exports = {
rules: [ rules: [
{ {
test: /.mdx?$/, test: /.mdx?$/,
use: [ use: ['babel-loader', '@mdx-js/vue-loader']
'babel-loader',
'@mdx-js/vue-loader'
]
} }
] ]
} }
@ -41,5 +36,5 @@ module.exports = {
} }
``` ```
Thats it. Now restart your server and you should be able to create `.mdx` files Thats it. Now restart your server and you should be able to create `.mdx` files
and import them in other components. and import them in other components.

View File

@ -3,22 +3,22 @@ import Note from 'gatsby-theme-mdx/src/components/note'
# Wrapper customization # Wrapper customization
The [wrapper](/getting-started#using-the-wrapper) component can be used The [wrapper](/getting-started#using-the-wrapper) component can be used
to set the layout for the MDX document. Its often used to set container to set the layout for the MDX document. Its often used to set container
width, borders, background colors, etc. However, its also unique because width, borders, background colors, etc. However, its also unique because
it has access to the children passed to it. it has access to the children passed to it.
This means that you can do powerful things with the MDX document elements. This means that you can do powerful things with the MDX document elements.
If you arent very familiar with React children, it might be worthwile to If you arent very familiar with React children, it might be worthwile to
start with [*A deep dive into children in React*](https://mxstbr.blog/2017/02/react-children-deepdive/) start with [_A deep dive into children in React_](https://mxstbr.blog/2017/02/react-children-deepdive/)
by Max Stoiber. by Max Stoiber.
> We can render arbitrary components as children, but still control them from the > We can render arbitrary components as children, but still control them from the
> parent instead of the component we render them from. > parent instead of the component we render them from.
> >
> *Max Stoiber - A deep dive into children in React* > _Max Stoiber - A deep dive into children in React_
The implications of this are very interesting from the context of an The implications of this are very interesting from the context of an
MDX wrapper component. This means the wrapper can do things like reordering MDX wrapper component. This means the wrapper can do things like reordering
components, wrapping them, or even further customizing them. components, wrapping them, or even further customizing them.
## Getting started ## Getting started
@ -46,7 +46,7 @@ import {MDXProvider} from '@mdx-js/react'
const components = { const components = {
wrapper: props => ( wrapper: props => (
<div style={{ padding: '20px', backgroundColor: 'tomato' }}> <div style={{padding: '20px', backgroundColor: 'tomato'}}>
<main {...props} /> <main {...props} />
</div> </div>
) )
@ -62,13 +62,14 @@ export default props => (
### Inspecting types ### Inspecting types
<Note> <Note>
This only works on the latest alpha version @mdx-js/mdx@next (&gt;= 1.0.0-alpha.7) This only works on the latest alpha version @mdx-js/mdx@next (&gt;=
1.0.0-alpha.7)
</Note> </Note>
Sometimes you might want to inspect the element type of that Sometimes you might want to inspect the element type of that
MDX will be rendering with its custom pragma. You can use the MDX will be rendering with its custom pragma. You can use the
wrapper to achieve this because it will have access to the MDX wrapper to achieve this because it will have access to the MDX
components as children. You can check their type by accessing components as children. You can check their type by accessing
the `mdxType` in props. the `mdxType` in props.
```js ```js
@ -78,7 +79,7 @@ import React from 'react'
import {MDXProvider} from '@mdx-js/react' import {MDXProvider} from '@mdx-js/react'
const components = { const components = {
wrapper: ({ children, ...props }) => { wrapper: ({children, ...props}) => {
console.log(children.map(child => child.props.mdxType)) console.log(children.map(child => child.props.mdxType))
return <>{children}</> return <>{children}</>
} }
@ -93,7 +94,7 @@ export default props => (
### Manipulating children ### Manipulating children
You can also manipulate and modify children. Here is an example of reordering You can also manipulate and modify children. Here is an example of reordering
them by converting them to an array and calling `reverse`. them by converting them to an array and calling `reverse`.
```js ```js
@ -103,7 +104,7 @@ import React from 'react'
import {MDXProvider} from '@mdx-js/react' import {MDXProvider} from '@mdx-js/react'
const components = { const components = {
wrapper: ({ children, ...props }) => { wrapper: ({children, ...props}) => {
const reversedChildren = React.Children.toArray(children).reverse() const reversedChildren = React.Children.toArray(children).reverse()
return <>{reversedChildren}</> return <>{reversedChildren}</>
} }
@ -119,10 +120,10 @@ export default props => (
## Related ## Related
If you would like to dive deeper, check out If you would like to dive deeper, check out
[*A deep dive into children in React*](https://mxstbr.blog/2017/02/react-children-deepdive/) [_A deep dive into children in React_](https://mxstbr.blog/2017/02/react-children-deepdive/)
or Brent Jacksons [MDX Blocks](https://github.com/jxnblk/mdx-blocks) or Brent Jacksons [MDX Blocks](https://github.com/jxnblk/mdx-blocks)
* * * ---
* <https://mxstbr.blog/2017/02/react-children-deepdive> - <https://mxstbr.blog/2017/02/react-children-deepdive>
* <https://github.com/jxnblk/mdx-blocks> - <https://github.com/jxnblk/mdx-blocks>

View File

@ -2,12 +2,12 @@
For a full-fledged introduction to plugins its recommended to read the [remark guides][remark-guides] and study up on [syntax trees][syntax-trees]. For a full-fledged introduction to plugins its recommended to read the [remark guides][remark-guides] and study up on [syntax trees][syntax-trees].
Now lets consider an example where you want to pass all headings through the [title][] module to ensure consistent capitalization. We can use [unist-util-visit][] to visit all headings and change the text nodes with `title(text)`. Now lets consider an example where you want to pass all headings through the [title][] module to ensure consistent capitalization. We can use [unist-util-visit][] to visit all headings and change the text nodes with `title(text)`.
## Visiting heading nodes ## Visiting heading nodes
The first thing you want to do is install the `unist-util-visit` library. This is a utility library that allows you The first thing you want to do is install the `unist-util-visit` library. This is a utility library that allows you
to visit all heading (or any other type of nodes) without having to write a lot of boiler plate code. It handles that to visit all heading (or any other type of nodes) without having to write a lot of boiler plate code. It handles that
for you. for you.
Then you can first log out the nodes to see it in action: Then you can first log out the nodes to see it in action:
@ -22,11 +22,11 @@ module.exports = () => (tree, file) => {
} }
``` ```
This will log out all the nodes in your document that are headings. Inside heading nodes there are text nodes. These This will log out all the nodes in your document that are headings. Inside heading nodes there are text nodes. These
include the raw text included in the heading. include the raw text included in the heading.
*Note*: The reason that heading nodes include multiple text node types is because there can be other _Note_: The reason that heading nodes include multiple text node types is because there can be other
“[phrasing content][phrasing]” nodes. For example if your heading looked like `# Hello, _world_`. In addition to the “[phrasing content][phrasing]” nodes. For example if your heading looked like `# Hello, _world_`. In addition to the
text there is also an emphasis node. text there is also an emphasis node.
## Visiting text nodes ## Visiting text nodes
@ -57,7 +57,7 @@ const visit = require('unist-util-visit')
module.exports = () => (tree, file) => { module.exports = () => (tree, file) => {
visit(tree, 'heading', node => { visit(tree, 'heading', node => {
visit(node, 'text', textNode => { visit(node, 'text', textNode => {
const text = textNode.value ? textNode.value.trim() : '' const text = textNode.value ? textNode.value.trim() : ''
textNode.value = title(text) textNode.value = title(text)
}) })
}) })
@ -65,11 +65,7 @@ module.exports = () => (tree, file) => {
``` ```
[remark-guides]: https://github.com/remarkjs/remark/blob/master/doc/plugins.md#creating-plugins [remark-guides]: https://github.com/remarkjs/remark/blob/master/doc/plugins.md#creating-plugins
[syntax-trees]: https://github.com/syntax-tree/unist#syntax-tree [syntax-trees]: https://github.com/syntax-tree/unist#syntax-tree
[title]: https://github.com/zeit/title [title]: https://github.com/zeit/title
[unist-util-visit]: https://github.com/syntax-tree/unist-util-visit [unist-util-visit]: https://github.com/syntax-tree/unist-util-visit
[phrasing]: https://www.w3.org/TR/2011/WD-html5-author-20110809/content-models.html#phrasing-content-0 [phrasing]: https://www.w3.org/TR/2011/WD-html5-author-20110809/content-models.html#phrasing-content-0

View File

@ -3,8 +3,8 @@
### Markdown for the component era ### Markdown for the component era
MDX is an authorable format that lets you seamlessly write JSX in your Markdown MDX is an authorable format that lets you seamlessly write JSX in your Markdown
documents. You can import components, such as interactive charts or alerts, and documents. You can import components, such as interactive charts or alerts, and
embed them within your content. This makes writing long-form content with embed them within your content. This makes writing long-form content with
components a blast :rocket:. components a blast :rocket:.
#### Try it #### Try it
@ -43,16 +43,15 @@ during the build stage.
## Why? ## Why?
Before MDX, some of the benefits of writing Markdown were lost when integrating Before MDX, some of the benefits of writing Markdown were lost when integrating
with JSX. Implementations were often template string-based which required lots with JSX. Implementations were often template string-based which required lots
of escaping and cumbersome syntax. of escaping and cumbersome syntax.
MDX seeks to make writing with Markdown *and* JSX simpler while being more MDX seeks to make writing with Markdown _and_ JSX simpler while being more
expressive. Writing is fun again when you combine components, that can expressive. Writing is fun again when you combine components, that can
even be dynamic or load data, with the simplicity of Markdown for long-form even be dynamic or load data, with the simplicity of Markdown for long-form
content. content.
> [Watch some of these features in action][intro] > [Watch some of these features in action][intro]
[quote]: https://twitter.com/chrisbiscardi/status/1022304288326864896 [quote]: https://twitter.com/chrisbiscardi/status/1022304288326864896
[intro]: https://www.youtube.com/watch?v=d2sQiI5NFAM&list=PLV5CVI1eNcJgCrPH_e6d57KRUTiDZgs0u [intro]: https://www.youtube.com/watch?v=d2sQiI5NFAM&list=PLV5CVI1eNcJgCrPH_e6d57KRUTiDZgs0u

View File

@ -6,9 +6,9 @@ In order to ensure as seamless of an upgrade as possible we plan on supporting v
## ⚠️ Breaking changes ## ⚠️ Breaking changes
* [🚨`@mdx-js/tag` is replaced by `@mdx-js/react` and an `mdx` pragma](#pragma) 🚨 - [🚨`@mdx-js/tag` is replaced by `@mdx-js/react` and an `mdx` pragma](#pragma) 🚨
* [MDXProvider now merges component contexts when nested](#mdxprovider) - [MDXProvider now merges component contexts when nested](#mdxprovider)
* [React support now requires `>= 16.8` in `@mdx-js/react`](#react) - [React support now requires `>= 16.8` in `@mdx-js/react`](#react)
## Pragma ## Pragma
@ -56,4 +56,4 @@ By ignoring outer context components and returning a new component mapping, you
## React ## React
Before upgrading to `@mdx-js/mdx@1`, update your website/application to `react@16.8 react-dom@16.8` and ensure it works as expected. Then upgrade to v1. Before upgrading to `@mdx-js/mdx@1`, update your website/application to `react@16.8 react-dom@16.8` and ensure it works as expected. Then upgrade to v1.

View File

@ -1,3 +1,3 @@
import Redirect from 'gatsby-theme-mdx/src/components/redirect' import Redirect from 'gatsby-theme-mdx/src/components/redirect'
<Redirect to='/advanced/plugins' /> <Redirect to="/advanced/plugins" />

View File

@ -2,55 +2,42 @@
## Apps ## Apps
* [demoboard][]: The simplest editor alive - [demoboard][]: The simplest editor alive
## Libraries ## Libraries
* [ok-mdx][]: Browser-based MDX editor - [ok-mdx][]: Browser-based MDX editor
* [docz][]: Documentation framework - [docz][]: Documentation framework
* [mdx-deck][]: MDX-based presentation decks - [mdx-deck][]: MDX-based presentation decks
* [mdx-docs][]: Next-based documentation framework - [mdx-docs][]: Next-based documentation framework
* [mdx-paper][]: MDX-based research articles - [mdx-paper][]: MDX-based research articles
* [spectacle-boilerplate-mdx][]: Boilerplate that facilitates using MDX with - [spectacle-boilerplate-mdx][]: Boilerplate that facilitates using MDX with
Spectacle Spectacle
* [Charge][]: An opinionated, zero-config static site generator - [Charge][]: An opinionated, zero-config static site generator
## Sites ## Sites
* [ZEIT Docs][zeit-docs] - [ZEIT Docs][zeit-docs]
* [Compositor][] - [Compositor][]
* [Prisma][] - [Prisma][]
* [Max Stoibers Blog][mxstbr] - [Max Stoibers Blog][mxstbr]
## Other related links ## Other related links
* [awesome-mdx][] - [awesome-mdx][]
* [MDX: content for kings and princesses][mdx-fairy-tale] - [MDX: content for kings and princesses][mdx-fairy-tale]
[demoboard]: https://frontarm.com/demoboard [demoboard]: https://frontarm.com/demoboard
[ok-mdx]: https://github.com/jxnblk/ok-mdx [ok-mdx]: https://github.com/jxnblk/ok-mdx
[mdx-deck]: https://github.com/jxnblk/mdx-deck [mdx-deck]: https://github.com/jxnblk/mdx-deck
[mdx-docs]: https://github.com/jxnblk/mdx-docs [mdx-docs]: https://github.com/jxnblk/mdx-docs
[mdx-paper]: https://github.com/hubgit/mdx-paper [mdx-paper]: https://github.com/hubgit/mdx-paper
[docz]: https://www.docz.site/ [docz]: https://www.docz.site/
[zeit-docs]: https://github.com/zeit/docs [zeit-docs]: https://github.com/zeit/docs
[compositor]: https://compositor.io [compositor]: https://compositor.io
[prisma]: https://www.prisma.io/docs [prisma]: https://www.prisma.io/docs
[mxstbr]: https://mxstbr.com [mxstbr]: https://mxstbr.com
[awesome-mdx]: https://github.com/transitive-bullshit/awesome-mdx [awesome-mdx]: https://github.com/transitive-bullshit/awesome-mdx
[spectacle-boilerplate-mdx]: https://github.com/FormidableLabs/spectacle-boilerplate-mdx [spectacle-boilerplate-mdx]: https://github.com/FormidableLabs/spectacle-boilerplate-mdx
[charge]: https://charge.js.org [charge]: https://charge.js.org
[mdx-fairy-tale]: https://github.com/DeveloperMode/mdx-fairy-tale [mdx-fairy-tale]: https://github.com/DeveloperMode/mdx-fairy-tale

View File

@ -4,7 +4,7 @@
> By interacting with this repository, organization, or community you agree to > By interacting with this repository, organization, or community you agree to
> abide by its terms. > abide by its terms.
Hi! 👋 Hi! 👋
Were excited that youre using **MDX** and wed love to help. Were excited that youre using **MDX** and wed love to help.
To help us help you, please read through the following guidelines. To help us help you, please read through the following guidelines.
@ -14,9 +14,9 @@ free customer service.
## Table of Contents ## Table of Contents
* [Questions](#questions) - [Questions](#questions)
* [Asking quality questions](#asking-quality-questions) - [Asking quality questions](#asking-quality-questions)
* [Contributions](#contributions) - [Contributions](#contributions)
## Questions ## Questions
@ -28,23 +28,23 @@ Jump in there and lurk, talk to us, and help others.
Help us help you! Help us help you!
Spending time framing a question and adding support links or resources makes it Spending time framing a question and adding support links or resources makes it
much easier for us to help. Its easy to fall into the trap of asking something too much easier for us to help. Its easy to fall into the trap of asking something too
specific when youre close to a problem. Then, those trying to help you out have specific when youre close to a problem. Then, those trying to help you out have
to spend a lot of time asking additional questions to understand what you are to spend a lot of time asking additional questions to understand what you are
hoping to achieve. hoping to achieve.
Spending the extra time up front can help save everyone time in the long run. Spending the extra time up front can help save everyone time in the long run.
* Try to define what you need help with: - Try to define what you need help with:
* Is there something in particular you want to do? - Is there something in particular you want to do?
* What problem are you encountering and what steps have you taken to try and fix it? - What problem are you encountering and what steps have you taken to try and fix it?
* Is there a concept youre not understanding? - Is there a concept youre not understanding?
* Learn about the [rubber duck debugging method][rubberduck] - Learn about the [rubber duck debugging method][rubberduck]
* Avoid falling for the [XY problem][xy] - Avoid falling for the [XY problem][xy]
* Search on GitHub and Spectrum to see if a similar question has been asked - Search on GitHub and Spectrum to see if a similar question has been asked
* Read through the [Getting Started Guide](https://mdxjs.com/getting-started) - Read through the [Getting Started Guide](https://mdxjs.com/getting-started)
* If possible, provide sample code, a [CodeSandbox](https://codesandbox.io), or a video - If possible, provide sample code, a [CodeSandbox](https://codesandbox.io), or a video
* The more time you put into asking your question, the better we can help you - The more time you put into asking your question, the better we can help you
## Contributions ## Contributions
@ -53,11 +53,7 @@ Spending the extra time up front can help save everyone time in the long run.
<!-- Definitions --> <!-- Definitions -->
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[rubberduck]: https://rubberduckdebugging.com [rubberduck]: https://rubberduckdebugging.com
[xy]: https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378 [xy]: https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378
[chat]: https://spectrum.chat/mdx [chat]: https://spectrum.chat/mdx
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing

View File

@ -31,13 +31,13 @@ See the section about [deployment](https://facebook.github.io/create-react-app/d
### `npm run eject` ### `npm run eject`
**Note: this is a one-way operation. Once you `eject`, you cant go back!** **Note: this is a one-way operation. Once you `eject`, you cant go back!**
If you arent satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. If you arent satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own. Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point youre on your own.
You dont have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnt feel obligated to use this feature. However we understand that this tool wouldnt be useful if you couldnt customize it when you are ready for it. You dont have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnt feel obligated to use this feature. However we understand that this tool wouldnt be useful if you couldnt customize it when you are ready for it.
## Learn More ## Learn More

View File

@ -1,7 +1,7 @@
import React, {lazy, Component, Suspense} from 'react' import React, {lazy, Component, Suspense} from 'react'
import {importMDX} from 'mdx.macro' import {importMDX} from 'mdx.macro'
const Content = lazy(() => importMDX('./Content.mdx')) const Content = lazy(() => importMDX('./content.mdx'))
class App extends Component { class App extends Component {
render() { render() {

View File

@ -1,7 +0,0 @@
export const Demo = () => (
<div style={{ padding: 20, backgroundColor: "tomato" }} />
);
# Hello, world!
<Demo />

View File

@ -0,0 +1,7 @@
export const Demo = () => (
<div style={{padding: 20, backgroundColor: 'tomato'}} />
)
# Hello, world!
<Demo />

View File

@ -1,3 +1,3 @@
# Hello, world! # Hello, world!
<div style={{ padding: '20px', backgroundColor: 'tomato' }} /> <div style={{padding: '20px', backgroundColor: 'tomato'}} />

View File

@ -4,15 +4,15 @@
import React from 'react' import React from 'react'
import Example from './place' import Example from './place'
export default () => ( export default () => <Example />
<Example />
)
``` ```
```js render=true ```js render=true
<div style={{ backgroundColor: 'rebeccapurple', padding: '20px', marginTop: '20px' }} /> <div
style={{backgroundColor: 'rebeccapurple', padding: '20px', marginTop: '20px'}}
/>
``` ```
```js live=true ```js live=true
<div style={{ backgroundColor: 'tomato', padding: '20px' }} /> <div style={{backgroundColor: 'tomato', padding: '20px'}} />
``` ```

View File

@ -1,8 +1,8 @@
import Counter from './_counter.jsx'; import Counter from './_counter.jsx'
# Hello, world! # Hello, world!
Zero supports MDX natively. Zero supports MDX natively.
You can import React components in an `.mdx` file. You can import React components in an `.mdx` file.
<Counter /> <Counter />

View File

@ -66,7 +66,7 @@
"lerna": "3.20.2", "lerna": "3.20.2",
"lint-staged": "10.0.2", "lint-staged": "10.0.2",
"memory-fs": "0.5.0", "memory-fs": "0.5.0",
"prettier": "1.19.1", "prettier": "prettier/prettier",
"prettier-plugin-pkg": "0.4.10", "prettier-plugin-pkg": "0.4.10",
"react": "16.12.0", "react": "16.12.0",
"react-dom": "16.12.0", "react-dom": "16.12.0",
@ -76,9 +76,13 @@
"remark-math": "2.0.0", "remark-math": "2.0.0",
"remark-mdx": "^1.5.1", "remark-mdx": "^1.5.1",
"remark-parse": "7.0.2", "remark-parse": "7.0.2",
"remark-preset-prettier": "^0.3.0",
"remark-preset-wooorm": "6.0.1", "remark-preset-wooorm": "6.0.1",
"remark-slug": "5.1.2", "remark-slug": "5.1.2",
"remark-stringify": "7.0.4", "remark-stringify": "7.0.4",
"retext-english": "^3.0.4",
"retext-preset-wooorm": "^2.0.0",
"retext-sentence-spacing": "^3.0.0",
"rimraf": "3.0.0", "rimraf": "3.0.0",
"typescript": "3.7.5", "typescript": "3.7.5",
"unified": "8.4.2", "unified": "8.4.2",
@ -123,23 +127,5 @@
"bracketSpacing": false, "bracketSpacing": false,
"semi": false, "semi": false,
"trailingComma": "none" "trailingComma": "none"
},
"remarkConfig": {
"plugins": [
"./packages/remark-mdx",
"preset-wooorm",
[
"lint-no-file-name-mixed-case",
false
],
[
"lint-maximum-line-length",
false
],
[
"validate-links",
false
]
]
} }
} }

View File

@ -38,10 +38,7 @@ const plugin = new BabelPluginApplyMdxTypeProp()
const result = babel.transform(jsx, { const result = babel.transform(jsx, {
configFile: false, configFile: false,
plugins: [ plugins: ['@babel/plugin-syntax-jsx', plugin.plugin]
'@babel/plugin-syntax-jsx',
plugin.plugin
]
}) })
console.log(result.code) console.log(result.code)

View File

@ -1,7 +1,7 @@
# `babel-plugin-extract-import-names` # `babel-plugin-extract-import-names`
Babel plugin that extracts all variable names from Babel plugin that extracts all variable names from
import statements. Used by the [MDX](https://mdxjs.com) import statements. Used by the [MDX](https://mdxjs.com)
pragma. pragma.
## Installation ## Installation

View File

@ -1,7 +1,7 @@
# `babel-plugin-html-attributes-to-jsx` # `babel-plugin-html-attributes-to-jsx`
Coerce HTML attributes into something JSX and React Coerce HTML attributes into something JSX and React
friendly. Used by [MDX](https://mdxjs.com). friendly. Used by [MDX](https://mdxjs.com).
## Installation ## Installation
@ -28,10 +28,7 @@ const plugin = new BabelPluginHtmlAttributesToJsx()
const result = babel.transform(jsx, { const result = babel.transform(jsx, {
configFile: false, configFile: false,
plugins: [ plugins: ['@babel/plugin-syntax-jsx', plugin]
'@babel/plugin-syntax-jsx',
plugin
]
}) })
console.log(result.code) console.log(result.code)

View File

@ -1,7 +1,7 @@
# `babel-plugin-remove-export-keywords` # `babel-plugin-remove-export-keywords`
Remove export keywords by coercing them into variable Remove export keywords by coercing them into variable
declarations. Used by [MDX](https://mdxjs.com). declarations. Used by [MDX](https://mdxjs.com).
## Installation ## Installation
@ -28,10 +28,7 @@ const plugin = new BabelPluginApplyMdxTypeProp()
const result = babel.transform(jsx, { const result = babel.transform(jsx, {
configFile: false, configFile: false,
plugins: [ plugins: ['@babel/plugin-syntax-jsx', plugin]
'@babel/plugin-syntax-jsx',
plugin
]
}) })
console.log(result.code) console.log(result.code)

View File

@ -39,31 +39,17 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: https://github.com/mdx-js/mdx/blob/master/license [mit]: https://github.com/mdx-js/mdx/blob/master/license
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[npm]: https://docs.npmjs.com/cli/init [npm]: https://docs.npmjs.com/cli/init
[next]: https://github.com/mdx-js/mdx/tree/master/examples/next [next]: https://github.com/mdx-js/mdx/tree/master/examples/next

View File

@ -1,36 +1,36 @@
* [Introduction](/) - [Introduction](/)
* [Getting Started](/getting-started) - [Getting Started](/getting-started)
* [Next.js](/getting-started/next) - [Next.js](/getting-started/next)
* [Gatsby](/getting-started/gatsby) - [Gatsby](/getting-started/gatsby)
* [Create React App](/getting-started/create-react-app) - [Create React App](/getting-started/create-react-app)
* [React Static](/getting-started/react-static) - [React Static](/getting-started/react-static)
* [Webpack](/getting-started/webpack) - [Webpack](/getting-started/webpack)
* [Parcel](/getting-started/parcel) - [Parcel](/getting-started/parcel)
* [Zero](/getting-started/zero) - [Zero](/getting-started/zero)
* [Playground <sup style={{ color: '#444', textTransform: 'uppercase' }}>*alpha*</sup>](/playground) - [Playground <sup style={{ color: '#444', textTransform: 'uppercase' }}>_alpha_</sup>](/playground)
* [Guides](/guides) - [Guides](/guides)
* [Syntax highlighting](/guides/syntax-highlighting) - [Syntax highlighting](/guides/syntax-highlighting)
* [Live code editor](/guides/live-code) - [Live code editor](/guides/live-code)
* [Math blocks](/guides/math-blocks) - [Math blocks](/guides/math-blocks)
* [Table of contents](/guides/table-of-contents) - [Table of contents](/guides/table-of-contents)
* [Writing a plugin](/guides/writing-a-plugin) - [Writing a plugin](/guides/writing-a-plugin)
* [Custom loader](/guides/custom-loader) - [Custom loader](/guides/custom-loader)
* [Wrapper customization](/guides/wrapper-customization) - [Wrapper customization](/guides/wrapper-customization)
* [Render MDX to the terminal](/guides/terminal) - [Render MDX to the terminal](/guides/terminal)
* [Vue <sup style={{ color: '#444', textTransform: 'uppercase' }}>*alpha*</sup>](/guides/vue) - [Vue <sup style={{ color: '#444', textTransform: 'uppercase' }}>_alpha_</sup>](/guides/vue)
* [Advanced](/advanced) - [Advanced](/advanced)
* [API](/advanced/api) - [API](/advanced/api)
* [Runtime](/advanced/runtime) - [Runtime](/advanced/runtime)
* [AST](/advanced/ast) - [AST](/advanced/ast)
* [Components](/advanced/components) - [Components](/advanced/components)
* [Plugins](/advanced/plugins) - [Plugins](/advanced/plugins)
* [Transform Content](/advanced/transform-content) - [Transform Content](/advanced/transform-content)
* [Typescript](/advanced/typescript) - [Typescript](/advanced/typescript)
* [Support](/support) - [Support](/support)
* [Contributing](/contributing) - [Contributing](/contributing)
* [Projects](/projects) - [Projects](/projects)
* [Editors](/editors) - [Editors](/editors)
* [Blog](/blog) - [Blog](/blog)
* [About](/about) - [About](/about)
* [Migrating from v0 to v1](/migrating/v1) - [Migrating from v0 to v1](/migrating/v1)
* [V0](https://v0.mdxjs.com) - [V0](https://v0.mdxjs.com)

View File

@ -5,9 +5,9 @@ export default Layout
# Playground # Playground
Write some MDX code and see it render to the right. Below, you can also Write some MDX code and see it render to the right. Below, you can also
see the output JSX and the intermediary ASTs. This can be helpful for see the output JSX and the intermediary ASTs. This can be helpful for
debugging or exploring how MDX works. All [Rebass][] components are in debugging or exploring how MDX works. All [Rebass][] components are in
scope, so you can use those in the editor. scope, so you can use those in the editor.
<Playground /> <Playground />

View File

@ -23,23 +23,20 @@ module: {
// ... // ...
{ {
test: /\.mdx?$/, test: /\.mdx?$/,
use: [ use: ['babel-loader', '@mdx-js/loader']
'babel-loader',
'@mdx-js/loader'
]
} }
] ]
} }
``` ```
The `renderer` option specifies a string that will be prepended to the generated source allowing for the use of any `createElement` implementation. By default, that string is: The `renderer` option specifies a string that will be prepended to the generated source allowing for the use of any `createElement` implementation. By default, that string is:
```js ```js
import React from 'react' import React from 'react'
import { mdx } from '@mdx-js/react' import {mdx} from '@mdx-js/react'
``` ```
Using the `renderer` option, one can swap out React for another implementation. The example below wraps a generic JSX compatible function named `h`. Using the `renderer` option, one can swap out React for another implementation. The example below wraps a generic JSX compatible function named `h`.
```js ```js
const renderer = ` const renderer = `
@ -95,29 +92,16 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: license [mit]: license
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[npm]: https://docs.npmjs.com/cli/install [npm]: https://docs.npmjs.com/cli/install

View File

@ -31,8 +31,12 @@ console.log(result)
Yields: Yields:
```js ```js
export default ({components, ...props}) => <MDXTag name="wrapper" components={components}><MDXTag name="h1" components={components}>{`Hello, MDX`}</MDXTag> export default ({components, ...props}) => (
<MDXTag name="p" components={components}>{`I <3 Markdown and JSX`}</MDXTag></MDXTag> <MDXTag name="wrapper" components={components}>
<MDXTag name="h1" components={components}>{`Hello, MDX`}</MDXTag>
<MDXTag name="p" components={components}>{`I <3 Markdown and JSX`}</MDXTag>
</MDXTag>
)
``` ```
## Contribute ## Contribute
@ -51,31 +55,17 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: license [mit]: license
[remark]: https://github.com/remarkjs/remark [remark]: https://github.com/remarkjs/remark
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[npm]: https://docs.npmjs.com/cli/install [npm]: https://docs.npmjs.com/cli/install

View File

@ -47,33 +47,18 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: https://github.com/mdx-js/mdx/blob/master/license [mit]: https://github.com/mdx-js/mdx/blob/master/license
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[parcel]: https://parceljs.org [parcel]: https://parceljs.org
[npm]: https://docs.npmjs.com/cli/install [npm]: https://docs.npmjs.com/cli/install
[yarn]: https://yarnpkg.com/lang/en/docs/cli/install/ [yarn]: https://yarnpkg.com/lang/en/docs/cli/install/

View File

@ -18,14 +18,15 @@ npm install --save @mdx-js/react
## Usage ## Usage
```md ```md
// helloworld.md <!-- helloworld.md -->
# Hello, World! # Hello, World!
``` ```
```jsx ```jsx
import React from 'react' import React from 'react'
import { MDXProvider } from '@mdx-js/react' import {MDXProvider} from '@mdx-js/react'
import { renderToString } from 'react-dom/server' import {renderToString} from 'react-dom/server'
import HelloWorld from './helloworld.md' import HelloWorld from './helloworld.md'
@ -33,7 +34,7 @@ const H1 = props => <h1 style={{color: 'tomato'}} {...props} />
console.log( console.log(
renderToString( renderToString(
<MDXProvider components={{ h1: H1 }}> <MDXProvider components={{h1: H1}}>
<HelloWorld /> <HelloWorld />
</MDXProvider> </MDXProvider>
) )
@ -62,29 +63,16 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: license [mit]: license
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[npm]: https://docs.npmjs.com/cli/install [npm]: https://docs.npmjs.com/cli/install

View File

@ -4,7 +4,7 @@
[![lerna][lerna-badge]][lerna] [![lerna][lerna-badge]][lerna]
[![Join the community on Spectrum][spectrum-badge]][spectrum] [![Join the community on Spectrum][spectrum-badge]][spectrum]
Remove export nodes from the [MDXAST][]. This is useful for scenarios where the exports arent needed like an MDX playground. Remove export nodes from the [MDXAST][]. This is useful for scenarios where the exports arent needed like an MDX playground.
## Installation ## Installation
@ -75,31 +75,17 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: license [mit]: license
[remark]: https://github.com/remarkjs/remark [remark]: https://github.com/remarkjs/remark
[johno]: https://johno.com [johno]: https://johno.com
[npm]: https://docs.npmjs.com/cli/install [npm]: https://docs.npmjs.com/cli/install
[mdx]: https://mdxjs.com [mdx]: https://mdxjs.com
[mdxast]: https://github.com/mdx-js/specification#mdxast [mdxast]: https://github.com/mdx-js/specification#mdxast

View File

@ -4,7 +4,7 @@
[![lerna][lerna-badge]][lerna] [![lerna][lerna-badge]][lerna]
[![Join the community on Spectrum][spectrum-badge]][spectrum] [![Join the community on Spectrum][spectrum-badge]][spectrum]
Remove import nodes from the [MDXAST][]. This is useful for scenarios where the imports arent needed like an MDX playground. Remove import nodes from the [MDXAST][]. This is useful for scenarios where the imports arent needed like an MDX playground.
## Installation ## Installation
@ -73,31 +73,17 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: license [mit]: license
[remark]: https://github.com/remarkjs/remark [remark]: https://github.com/remarkjs/remark
[johno]: https://johno.com [johno]: https://johno.com
[npm]: https://docs.npmjs.com/cli/install [npm]: https://docs.npmjs.com/cli/install
[mdx]: https://mdxjs.com [mdx]: https://mdxjs.com
[mdxast]: https://github.com/mdx-js/specification#mdxast [mdxast]: https://github.com/mdx-js/specification#mdxast

View File

@ -30,29 +30,16 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: license [mit]: license
[remark]: https://github.com/remarkjs/remark [remark]: https://github.com/remarkjs/remark
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[author]: https://wooorm.com [author]: https://wooorm.com
[author2]: https://johno.com [author2]: https://johno.com

View File

@ -27,7 +27,7 @@ import MDX from '@mdx-js/runtime'
// Provide custom components for markdown elements // Provide custom components for markdown elements
const components = { const components = {
h1: props => <h1 style={{ color: 'tomato' }} {...props} />, h1: props => <h1 style={{color: 'tomato'}} {...props} />,
Demo: props => <h1>This is a demo component</h1> Demo: props => <h1>This is a demo component</h1>
} }
@ -43,7 +43,9 @@ const mdx = `
` `
export default () => ( export default () => (
<MDX components={components} scope={scope}>{mdx}</MDX> <MDX components={components} scope={scope}>
{mdx}
</MDX>
) )
``` ```
@ -63,29 +65,16 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: license [mit]: license
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[npm]: https://docs.npmjs.com/cli/install [npm]: https://docs.npmjs.com/cli/install

View File

@ -9,7 +9,5 @@ Test utility functions used in [MDX][].
<!-- Definitions --> <!-- Definitions -->
[mit]: license [mit]: license
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[author]: https://johno.com [author]: https://johno.com

View File

@ -15,7 +15,5 @@ yarn add @mdx-js/util
<!-- Definitions --> <!-- Definitions -->
[mit]: license [mit]: license
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[author]: https://johno.com [author]: https://johno.com

View File

@ -23,10 +23,7 @@ module: {
// ... // ...
{ {
test: /\.mdx?$/, test: /\.mdx?$/,
use: [ use: ['babel-loader', '@mdx-js/vue-loader']
'babel-loader',
'@mdx-js/vue-loader'
]
} }
] ]
} }
@ -48,29 +45,16 @@ abide by its terms.
<!-- Definitions --> <!-- Definitions -->
[build]: https://travis-ci.com/mdx-js/mdx [build]: https://travis-ci.com/mdx-js/mdx
[build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master [build-badge]: https://travis-ci.com/mdx-js/mdx.svg?branch=master
[lerna]: https://lernajs.io/ [lerna]: https://lernajs.io/
[lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-badge]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mit]: license [mit]: license
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[mdx]: https://github.com/mdx-js/mdx [mdx]: https://github.com/mdx-js/mdx
[npm]: https://docs.npmjs.com/cli/install [npm]: https://docs.npmjs.com/cli/install

View File

@ -74,22 +74,22 @@ and cumbersome syntax.
> >
> — [@chrisbiscardi][tweet] > — [@chrisbiscardi][tweet]
MDX seeks to make writing with markdown *and* JSX simpler while being more MDX seeks to make writing with markdown _and_ JSX simpler while being more
expressive. expressive.
The possibilities are endless when you combine components (that can even be The possibilities are endless when you combine components (that can even be
dynamic or load data) with the simplicity of markdown for long-form content. dynamic or load data) with the simplicity of markdown for long-form content.
A nice example of this is [mdx-deck][], a great way to create slides with MDX. A nice example of this is [mdx-deck][], a great way to create slides with MDX.
* Fast - Fast
* No runtime compilation - No runtime compilation
* [Pluggable][remark-plugins] - [Pluggable][remark-plugins]
* Element to React component mapping - Element to React component mapping
* React component `import`/`export` - React component `import`/`export`
* Customizable layouts - Customizable layouts
* [Webpack loader](https://mdxjs.com/getting-started/webpack) - [Webpack loader](https://mdxjs.com/getting-started/webpack)
* [Parcel plugin](https://mdxjs.com/getting-started/parcel) - [Parcel plugin](https://mdxjs.com/getting-started/parcel)
* [Next.js plugin](https://mdxjs.com/getting-started/next) - [Next.js plugin](https://mdxjs.com/getting-started/next)
* [Gatsby plugin](https://mdxjs.com/getting-started/gatsby) - [Gatsby plugin](https://mdxjs.com/getting-started/gatsby)
## Sponsors ## Sponsors
@ -128,10 +128,10 @@ A nice example of this is [mdx-deck][], a great way to create slides with MDX.
## Authors ## Authors
* [John Otander][john] ([@4lpine][4lpine]) [Compositor][] + [Clearbit][] - [John Otander][john] ([@4lpine][4lpine]) [Compositor][] + [Clearbit][]
* [Tim Neutkens][tim] ([@timneutkens][timneutkens]) [ZEIT][] - [Tim Neutkens][tim] ([@timneutkens][timneutkens]) [ZEIT][]
* [Guillermo Rauch][guillermo] ([@rauchg][rauchg]) [ZEIT][] - [Guillermo Rauch][guillermo] ([@rauchg][rauchg]) [ZEIT][]
* [Brent Jackson][brent] ([@jxnblk][jxnblk]) [Compositor][] - [Brent Jackson][brent] ([@jxnblk][jxnblk]) [Compositor][]
## Related ## Related
@ -155,55 +155,29 @@ Join us on [Spectrum][]!
[MIT][] © [Compositor][] and [ZEIT][] [MIT][] © [Compositor][] and [ZEIT][]
[build]: https://github.com/mdx-js/mdx/actions?query=workflow%3A%22CI%22 [build]: https://github.com/mdx-js/mdx/actions?query=workflow%3A%22CI%22
[build-badge]: https://github.com/mdx-js/mdx/workflows/CI/badge.svg [build-badge]: https://github.com/mdx-js/mdx/workflows/CI/badge.svg
[spectrum]: https://spectrum.chat/mdx [spectrum]: https://spectrum.chat/mdx
[spectrum-badge]: https://withspectrum.github.io/badge/badge.svg [spectrum-badge]: https://withspectrum.github.io/badge/badge.svg
[intro]: https://www.youtube.com/watch?v=d2sQiI5NFAM&list=PLV5CVI1eNcJgCrPH_e6d57KRUTiDZgs0u [intro]: https://www.youtube.com/watch?v=d2sQiI5NFAM&list=PLV5CVI1eNcJgCrPH_e6d57KRUTiDZgs0u
[tweet]: https://twitter.com/chrisbiscardi/status/1022304288326864896 [tweet]: https://twitter.com/chrisbiscardi/status/1022304288326864896
[remark-plugins]: https://github.com/remarkjs/remark/blob/master/doc/plugins.md [remark-plugins]: https://github.com/remarkjs/remark/blob/master/doc/plugins.md
[website]: https://mdxjs.com [website]: https://mdxjs.com
[spec]: https://github.com/mdx-js/specification#related [spec]: https://github.com/mdx-js/specification#related
[john]: https://johno.com [john]: https://johno.com
[tim]: https://github.com/timneutkens [tim]: https://github.com/timneutkens
[guillermo]: https://rauchg.com [guillermo]: https://rauchg.com
[brent]: https://jxnblk.com [brent]: https://jxnblk.com
[4lpine]: https://twitter.com/4lpine [4lpine]: https://twitter.com/4lpine
[rauchg]: https://twitter.com/rauchg [rauchg]: https://twitter.com/rauchg
[timneutkens]: https://twitter.com/timneutkens [timneutkens]: https://twitter.com/timneutkens
[jxnblk]: https://twitter.com/jxnblk [jxnblk]: https://twitter.com/jxnblk
[compositor]: https://compositor.io [compositor]: https://compositor.io
[zeit]: https://zeit.co [zeit]: https://zeit.co
[clearbit]: https://clearbit.com [clearbit]: https://clearbit.com
[announcement]: https://medium.com/unifiedjs/collectively-evolving-through-crowdsourcing-22c359ea95cc [announcement]: https://medium.com/unifiedjs/collectively-evolving-through-crowdsourcing-22c359ea95cc
[contribute]: #contribute [contribute]: #contribute
[contributing]: https://mdxjs.com/contributing [contributing]: https://mdxjs.com/contributing
[support]: https://mdxjs.com/support [support]: https://mdxjs.com/support
[coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md [coc]: https://github.com/mdx-js/.github/blob/master/code-of-conduct.md
[mdx-deck]: https://github.com/jxnblk/mdx-deck [mdx-deck]: https://github.com/jxnblk/mdx-deck
[mit]: license [mit]: license

468
yarn.lock
View File

@ -33,6 +33,13 @@
resolved "https://registry.yarnpkg.com/@ampproject/toolbox-script-csp/-/toolbox-script-csp-1.1.1.tgz#0b049a1c86c99f300162a10e1b9ce83c6e354a45" resolved "https://registry.yarnpkg.com/@ampproject/toolbox-script-csp/-/toolbox-script-csp-1.1.1.tgz#0b049a1c86c99f300162a10e1b9ce83c6e354a45"
integrity sha512-gACGfsVKinCy/977FSrlVgo6jxTZ0lcTCvCnRlNwvSOcxJVm+jJR3sP7/F43fpak9Gsq/EwFaatfnNMbunPc+w== integrity sha512-gACGfsVKinCy/977FSrlVgo6jxTZ0lcTCvCnRlNwvSOcxJVm+jJR3sP7/F43fpak9Gsq/EwFaatfnNMbunPc+w==
"@angular/compiler@8.2.14":
version "8.2.14"
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-8.2.14.tgz#46db7a9d1c17f236126518ff26480c160d5a6183"
integrity sha512-ABZO4E7eeFA1QyJ2trDezxeQM5ZFa1dXw1Mpl/+1vuXDKNjJgNyWYwKp/NwRkLmrsuV0yv4UDCDe4kJOGbPKnw==
dependencies:
tslib "^1.9.0"
"@babel/cli@^7.1.5": "@babel/cli@^7.1.5":
version "7.8.3" version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.8.3.tgz#121beb7c273e0521eb2feeb3883a2b7435d12328" resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.8.3.tgz#121beb7c273e0521eb2feeb3883a2b7435d12328"
@ -322,7 +329,7 @@
esutils "^2.0.2" esutils "^2.0.2"
js-tokens "^4.0.0" js-tokens "^4.0.0"
"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.3", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.7.5", "@babel/parser@^7.8.3": "@babel/parser@7.8.3", "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.3", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.7.5", "@babel/parser@^7.8.3":
version "7.8.3" version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081"
integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ== integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==
@ -1504,6 +1511,26 @@
unique-filename "^1.1.1" unique-filename "^1.1.1"
which "^1.3.1" which "^1.3.1"
"@glimmer/interfaces@^0.41.0":
version "0.41.4"
resolved "https://registry.yarnpkg.com/@glimmer/interfaces/-/interfaces-0.41.4.tgz#3f3e26abea8a4e1463130e9a75e94372781d154b"
integrity sha512-MzXwMyod3MlwSZezHSaVBsCEIW/giYYfTDYARR46QnYsaFVatMVbydjsI7jkAuBCbnLCyNOIc1TrYIj71i/rpg==
"@glimmer/syntax@0.41.0":
version "0.41.0"
resolved "https://registry.yarnpkg.com/@glimmer/syntax/-/syntax-0.41.0.tgz#af033e48475e29a4784900c13695925d752f462d"
integrity sha512-sYmgUMdK0jX+3ZNX9C2TKvL1YZGsKIcXRicwnzoTC7F56z29CbSCc7o6Zf0CI4L2Q7FSnHDxldlSe48wBAr6vQ==
dependencies:
"@glimmer/interfaces" "^0.41.0"
"@glimmer/util" "^0.41.0"
handlebars "^4.0.13"
simple-html-tokenizer "^0.5.7"
"@glimmer/util@^0.41.0":
version "0.41.4"
resolved "https://registry.yarnpkg.com/@glimmer/util/-/util-0.41.4.tgz#508fd82ca40305416e130f0da7b537295ded7989"
integrity sha512-DwS94K+M0vtG+cymxH0rslJr09qpdjyOLdCjmpKcG/nNiZQfMA1ybAaFEmwk9UaVlUG9STENFeQwyrLevJB+7g==
"@hapi/address@2.x.x": "@hapi/address@2.x.x":
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a"
@ -1546,7 +1573,7 @@
prop-types "^15.6.2" prop-types "^15.6.2"
scheduler "^0.17.0" scheduler "^0.17.0"
"@iarna/toml@^2.2.0": "@iarna/toml@2.2.3", "@iarna/toml@^2.2.0":
version "2.2.3" version "2.2.3"
resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab" resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.3.tgz#f060bf6eaafae4d56a7dac618980838b0696e2ab"
integrity sha512-FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg== integrity sha512-FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg==
@ -3558,6 +3585,19 @@
"@typescript-eslint/typescript-estree" "2.17.0" "@typescript-eslint/typescript-estree" "2.17.0"
eslint-visitor-keys "^1.1.0" eslint-visitor-keys "^1.1.0"
"@typescript-eslint/typescript-estree@2.11.0":
version "2.11.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.11.0.tgz#21ada6504274cd1644855926312c798fc697e9fb"
integrity sha512-HGY4+d4MagO6cKMcKfIKaTMxcAv7dEVnji2Zi+vi5VV8uWAM631KjAB5GxFcexMYrwKT0EekRiiGK1/Sd7VFGA==
dependencies:
debug "^4.1.1"
eslint-visitor-keys "^1.1.0"
glob "^7.1.6"
is-glob "^4.0.1"
lodash.unescape "4.0.1"
semver "^6.3.0"
tsutils "^3.17.1"
"@typescript-eslint/typescript-estree@2.17.0": "@typescript-eslint/typescript-estree@2.17.0":
version "2.17.0" version "2.17.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.17.0.tgz#2ce1531ec0925ef8d22d7026235917c2638a82af" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.17.0.tgz#2ce1531ec0925ef8d22d7026235917c2638a82af"
@ -4196,6 +4236,21 @@ amphtml-validator@1.0.23:
commander "2.9.0" commander "2.9.0"
promise "7.1.1" promise "7.1.1"
angular-estree-parser@1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/angular-estree-parser/-/angular-estree-parser-1.1.5.tgz#f278e03e648a2bfb6c5dcdf17ba3273f3251b74a"
integrity sha512-M82O7HGwgS6mBfQq9ijCwuP4uYgSgycmNWQOHomToWRAdfX/c2pAwpCYdbVG9lc6Go8mr5+A2bRQnykdCVdpuA==
dependencies:
lines-and-columns "^1.1.6"
tslib "^1.9.3"
angular-html-parser@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/angular-html-parser/-/angular-html-parser-1.3.0.tgz#2b87c3c1b7535a972a00e35604221df3c51e6c6e"
integrity sha512-FCLuM8ZUt30qwiV5KlW8uWL9cwlS2loOIGq8wUQFypkJ1QZqJk829yxTsvp2DvCMZ7uLwfjIaIrKV5N2+RLiSQ==
dependencies:
tslib "^1.9.3"
ansi-align@^2.0.0: ansi-align@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
@ -6927,6 +6982,14 @@ circular-dependency-plugin@^5.0.2:
resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93"
integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==
cjk-regex@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/cjk-regex/-/cjk-regex-2.0.0.tgz#060aa111e61092768c438ccc9c643a53e8fe1ee5"
integrity sha512-E4gFi2f3jC0zFVHpaAcupW+gv9OejZ2aV3DP/LlSO0dDcZJAXw7W0ivn+vN17edN/PhU4HCgs1bfx7lPK7FpdA==
dependencies:
regexp-util "^1.2.1"
unicode-regex "^2.0.0"
class-utils@^0.3.5: class-utils@^0.3.5:
version "0.3.6" version "0.3.6"
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
@ -7810,7 +7873,7 @@ cors@^2.8.5:
object-assign "^4" object-assign "^4"
vary "^1" vary "^1"
cosmiconfig@^5.0.0, cosmiconfig@^5.0.2, cosmiconfig@^5.1.0, cosmiconfig@^5.2.1: cosmiconfig@5.2.1, cosmiconfig@^5.0.0, cosmiconfig@^5.0.2, cosmiconfig@^5.1.0, cosmiconfig@^5.2.1:
version "5.2.1" version "5.2.1"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
@ -8401,6 +8464,11 @@ dashdash@^1.12.0:
dependencies: dependencies:
assert-plus "^1.0.0" assert-plus "^1.0.0"
dashify@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dashify/-/dashify-2.0.0.tgz#fff270ca2868ca427fee571de35691d6e437a648"
integrity sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A==
data-urls@^1.0.0, data-urls@^1.1.0: data-urls@^1.0.0, data-urls@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
@ -8554,7 +8622,7 @@ decompress@^4.0.0:
pify "^2.3.0" pify "^2.3.0"
strip-dirs "^2.0.0" strip-dirs "^2.0.0"
dedent@^0.7.0: dedent@0.7.0, dedent@^0.7.0:
version "0.7.0" version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
@ -8869,6 +8937,11 @@ diff-sequences@^25.1.0:
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.1.0.tgz#fd29a46f1c913fd66c22645dc75bffbe43051f32" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.1.0.tgz#fd29a46f1c913fd66c22645dc75bffbe43051f32"
integrity sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw== integrity sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw==
diff@4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
diff@^3.2.0: diff@^3.2.0:
version "3.5.0" version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
@ -9173,7 +9246,12 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0" jsbn "~0.1.0"
safer-buffer "^2.1.0" safer-buffer "^2.1.0"
editorconfig@^0.15.3: editorconfig-to-prettier@0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/editorconfig-to-prettier/-/editorconfig-to-prettier-0.1.1.tgz#7391c7067dfd68ffee65afc2c4fbe4fba8d4219a"
integrity sha512-MMadSSVRDb4uKdxV6bCXXN4cTsxIsXYtV4XdPu6FOCSAw6zsCIDA+QEktEU+u6h+c/mTrul5NR+pwFpPxwetiQ==
editorconfig@0.15.3, editorconfig@^0.15.3:
version "0.15.3" version "0.15.3"
resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5"
integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==
@ -9925,7 +10003,7 @@ estree-walker@^0.6.1:
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
esutils@^2.0.0, esutils@^2.0.2: esutils@2.0.3, esutils@^2.0.0, esutils@^2.0.2:
version "2.0.3" version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
@ -10615,6 +10693,16 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.2.0:
make-dir "^3.0.0" make-dir "^3.0.0"
pkg-dir "^4.1.0" pkg-dir "^4.1.0"
find-parent-dir@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=
find-project-root@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/find-project-root/-/find-project-root-1.1.1.tgz#d242727a2d904725df5714f23dfdcdedda0b6ef8"
integrity sha1-0kJyei2QRyXfVxTyPf3N7doLbvg=
find-root@^1.1.0: find-root@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
@ -10700,6 +10788,11 @@ flatten@^1.0.2:
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==
flow-parser@0.116.1:
version "0.116.1"
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.116.1.tgz#2cded960269f702552feb5419c57c7c146ba171e"
integrity sha512-uMbaTjiMhBKa/il1esHyWyVVWfrWdG/eLmG62MQulZ59Yghpa30H1tmukFZLptsBafZ8ddiPyf7I+SiA+euZ6A==
flush-write-stream@^1.0.0: flush-write-stream@^1.0.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
@ -11417,6 +11510,13 @@ get-stream@3.0.0, get-stream@^3.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
get-stream@4.1.0, get-stream@^4.0.0, get-stream@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
dependencies:
pump "^3.0.0"
get-stream@^2.2.0: get-stream@^2.2.0:
version "2.3.1" version "2.3.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
@ -11425,13 +11525,6 @@ get-stream@^2.2.0:
object-assign "^4.0.1" object-assign "^4.0.1"
pinkie-promise "^2.0.0" pinkie-promise "^2.0.0"
get-stream@^4.0.0, get-stream@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
dependencies:
pump "^3.0.0"
get-stream@^5.0.0, get-stream@^5.1.0: get-stream@^5.0.0, get-stream@^5.1.0:
version "5.1.0" version "5.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
@ -11675,6 +11768,17 @@ globby@10.0.1, globby@^10.0.1:
merge2 "^1.2.3" merge2 "^1.2.3"
slash "^3.0.0" slash "^3.0.0"
globby@6.1.0, globby@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
dependencies:
array-union "^1.0.1"
glob "^7.0.3"
object-assign "^4.0.1"
pify "^2.0.0"
pinkie-promise "^2.0.0"
globby@8.0.1: globby@8.0.1:
version "8.0.1" version "8.0.1"
resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50"
@ -11701,17 +11805,6 @@ globby@8.0.2:
pify "^3.0.0" pify "^3.0.0"
slash "^1.0.0" slash "^1.0.0"
globby@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
dependencies:
array-union "^1.0.1"
glob "^7.0.3"
object-assign "^4.0.1"
pify "^2.0.0"
pinkie-promise "^2.0.0"
globby@^7.1.1: globby@^7.1.1:
version "7.1.1" version "7.1.1"
resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
@ -11896,7 +11989,7 @@ graphql-type-json@^0.2.4:
resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.2.4.tgz#545af27903e40c061edd30840a272ea0a49992f9" resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.2.4.tgz#545af27903e40c061edd30840a272ea0a49992f9"
integrity sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w== integrity sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w==
graphql@^14.5.8: graphql@14.5.8, graphql@^14.5.8:
version "14.5.8" version "14.5.8"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.5.8.tgz#504f3d3114cb9a0a3f359bbbcf38d9e5bf6a6b3c" resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.5.8.tgz#504f3d3114cb9a0a3f359bbbcf38d9e5bf6a6b3c"
integrity sha512-MMwmi0zlVLQKLdGiMfWkgQD7dY/TUKt4L+zgJ/aR0Howebod3aNgP5JkgvAULiR2HPVZaP2VEElqtdidHweLkg== integrity sha512-MMwmi0zlVLQKLdGiMfWkgQD7dY/TUKt4L+zgJ/aR0Howebod3aNgP5JkgvAULiR2HPVZaP2VEElqtdidHweLkg==
@ -11976,7 +12069,7 @@ handle-thing@^2.0.0:
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==
handlebars@^4.0.3, handlebars@^4.1.2: handlebars@^4.0.13, handlebars@^4.0.3, handlebars@^4.1.2:
version "4.7.2" version "4.7.2"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.2.tgz#01127b3840156a0927058779482031afe0e730d7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.2.tgz#01127b3840156a0927058779482031afe0e730d7"
integrity sha512-4PwqDL2laXtTWZghzzCtunQUTLbo31pcCJrd/B/9JP8XbhVzpS5ZXuKqlOzsd1rtcaLo4KqAn8nl8mkknS4MHw== integrity sha512-4PwqDL2laXtTWZghzzCtunQUTLbo31pcCJrd/B/9JP8XbhVzpS5ZXuKqlOzsd1rtcaLo4KqAn8nl8mkknS4MHw==
@ -12377,6 +12470,11 @@ html-comment-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
html-element-attributes@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/html-element-attributes/-/html-element-attributes-2.2.0.tgz#14c45a0480e1afd1f227b3a84b6f158f595f3d49"
integrity sha512-OYsGPti+liRbzedLympKEQuVVnnXrmXc+x9ZDrsk+ts1j1f6VVpQ3jk3WiYHlC5ozcSVacugyu9S+r24FyREvA==
html-encoding-sniffer@^1.0.2: html-encoding-sniffer@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
@ -12407,6 +12505,16 @@ html-minifier@^3.2.3, html-minifier@^3.5.16, html-minifier@^3.5.20:
relateurl "0.2.x" relateurl "0.2.x"
uglify-js "3.4.x" uglify-js "3.4.x"
html-styles@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/html-styles/-/html-styles-1.0.0.tgz#a18061fd651f99c6b75c45c8e0549a3bc3e01a75"
integrity sha1-oYBh/WUfmca3XEXI4FSaO8PgGnU=
html-tag-names@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.4.tgz#51c559e36a077b5eb6c71e6cb49b1d70fffc9124"
integrity sha512-QCOY1/oHmo2BNwsTzuYlW51JLXSxfmMvve+2/9i2cbhxXxT6SuhsUWzcIoMwUi0HZW/NIQBSyJaj7fbcsimoKg==
html-tags@^1.0.0: html-tags@^1.0.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.2.0.tgz#c78de65b5663aa597989dd2b7ab49200d7e4db98" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.2.0.tgz#c78de65b5663aa597989dd2b7ab49200d7e4db98"
@ -12686,16 +12794,16 @@ ignore-walk@^3.0.1:
dependencies: dependencies:
minimatch "^3.0.4" minimatch "^3.0.4"
ignore@4.0.6, ignore@^4.0.3, ignore@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
ignore@^3.3.5: ignore@^3.3.5:
version "3.3.10" version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
ignore@^4.0.3, ignore@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
ignore@^5.0.5, ignore@^5.1.1: ignore@^5.0.5, ignore@^5.1.1:
version "5.1.4" version "5.1.4"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
@ -13177,6 +13285,13 @@ is-callable@^1.1.4, is-callable@^1.1.5:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==
is-ci@2.0.0, is-ci@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
dependencies:
ci-info "^2.0.0"
is-ci@^1.0.10: is-ci@^1.0.10:
version "1.2.1" version "1.2.1"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
@ -13184,13 +13299,6 @@ is-ci@^1.0.10:
dependencies: dependencies:
ci-info "^1.5.0" ci-info "^1.5.0"
is-ci@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
dependencies:
ci-info "^2.0.0"
is-color-stop@^1.0.0: is-color-stop@^1.0.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
@ -14151,6 +14259,13 @@ jest-diff@^25.1.0:
jest-get-type "^25.1.0" jest-get-type "^25.1.0"
pretty-format "^25.1.0" pretty-format "^25.1.0"
jest-docblock@24.9.0, jest-docblock@^24.3.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2"
integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==
dependencies:
detect-newline "^2.1.0"
jest-docblock@^23.2.0: jest-docblock@^23.2.0:
version "23.2.0" version "23.2.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7"
@ -14158,13 +14273,6 @@ jest-docblock@^23.2.0:
dependencies: dependencies:
detect-newline "^2.1.0" detect-newline "^2.1.0"
jest-docblock@^24.3.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2"
integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==
dependencies:
detect-newline "^2.1.0"
jest-docblock@^25.1.0: jest-docblock@^25.1.0:
version "25.1.0" version "25.1.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.1.0.tgz#0f44bea3d6ca6dfc38373d465b347c8818eccb64" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.1.0.tgz#0f44bea3d6ca6dfc38373d465b347c8818eccb64"
@ -14996,6 +15104,11 @@ jest@^23.6.0:
import-local "^1.0.0" import-local "^1.0.0"
jest-cli "^23.6.0" jest-cli "^23.6.0"
js-base64@^2.1.9:
version "2.5.1"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==
js-beautify@^1.6.12: js-beautify@^1.6.12:
version "1.10.2" version "1.10.2"
resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.2.tgz#88c9099cd6559402b124cfab18754936f8a7b178" resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.2.tgz#88c9099cd6559402b124cfab18754936f8a7b178"
@ -15220,7 +15333,7 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
json-stable-stringify@^1.0.1: json-stable-stringify@1.0.1, json-stable-stringify@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
@ -15527,16 +15640,16 @@ lerna@3.20.2:
import-local "^2.0.0" import-local "^2.0.0"
npmlog "^4.1.2" npmlog "^4.1.2"
leven@3.1.0, leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
leven@^2.1.0: leven@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA=
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
levenary@^1.1.0: levenary@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.0.tgz#fc146fe75f32dc483a0a2c64aef720f602cd6210" resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.0.tgz#fc146fe75f32dc483a0a2c64aef720f602cd6210"
@ -15557,11 +15670,16 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2" prelude-ls "~1.1.2"
type-check "~0.3.2" type-check "~0.3.2"
lines-and-columns@^1.1.6: lines-and-columns@1.1.6, lines-and-columns@^1.1.6:
version "1.1.6" version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
linguist-languages@7.7.0:
version "7.7.0"
resolved "https://registry.yarnpkg.com/linguist-languages/-/linguist-languages-7.7.0.tgz#c069731f8b307ce301980a4bac4b81bf06a2c351"
integrity sha512-6vR1OgfD/YK1xgqVBT3aUx9zurSVeHUsXpVyTilT1o7LW6MNAcGmWy5wwmQAAhvEXxG2PZmktHbQiGtJ5hpGkg==
lint-staged@10.0.2: lint-staged@10.0.2:
version "10.0.2" version "10.0.2"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.0.2.tgz#cfdd9fa5080b05fc6e29536897da1795bc67c7f9" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.0.2.tgz#cfdd9fa5080b05fc6e29536897da1795bc67c7f9"
@ -15918,6 +16036,11 @@ lodash.transform@^4.6.0:
resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=
lodash.unescape@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
lodash.uniq@4.5.0, lodash.uniq@^4.5.0: lodash.uniq@4.5.0, lodash.uniq@^4.5.0:
version "4.5.0" version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
@ -15928,7 +16051,7 @@ lodash.upperfirst@^4.3.1:
resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce"
integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=
"lodash@>=3.5 <5", lodash@^4.11.1, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: lodash@4.17.15, "lodash@>=3.5 <5", lodash@^4.11.1, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0:
version "4.17.15" version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@ -16145,7 +16268,7 @@ mamacro@^0.0.3:
resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==
map-age-cleaner@^0.1.1: map-age-cleaner@^0.1.1, map-age-cleaner@^0.1.3:
version "0.1.3" version "0.1.3"
resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
@ -16383,6 +16506,15 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
mem@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3"
integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==
dependencies:
map-age-cleaner "^0.1.3"
mimic-fn "^2.1.0"
p-is-promise "^2.1.0"
mem@^4.0.0: mem@^4.0.0:
version "4.3.0" version "4.3.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
@ -16706,7 +16838,7 @@ minimist@0.0.8:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
@ -16931,6 +17063,11 @@ mz@^2.4.0, mz@^2.5.0, mz@^2.6.0:
object-assign "^4.0.1" object-assign "^4.0.1"
thenify-all "^1.0.0" thenify-all "^1.0.0"
n-readlines@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/n-readlines/-/n-readlines-1.0.0.tgz#c353797f216c253fdfef7e91da4e8b17c29a91a6"
integrity sha512-ISDqGcspVu6U3VKqtJZG1uR55SmNNF9uK0EMq1IvNVVZOui6MW6VR0+pIZhqz85ORAGp+4zW+5fJ/SE7bwEibA==
name-all-modules-plugin@^1.0.1: name-all-modules-plugin@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/name-all-modules-plugin/-/name-all-modules-plugin-1.0.1.tgz#0abfb6ad835718b9fb4def0674e06657a954375c" resolved "https://registry.yarnpkg.com/name-all-modules-plugin/-/name-all-modules-plugin-1.0.1.tgz#0abfb6ad835718b9fb4def0674e06657a954375c"
@ -17337,6 +17474,11 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-
semver "2 || 3 || 4 || 5" semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1" validate-npm-package-license "^3.0.1"
normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
normalize-path@^2.0.1, normalize-path@^2.1.1: normalize-path@^2.0.1, normalize-path@^2.1.1:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
@ -17344,11 +17486,6 @@ normalize-path@^2.0.1, normalize-path@^2.1.1:
dependencies: dependencies:
remove-trailing-separator "^1.0.1" remove-trailing-separator "^1.0.1"
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
normalize-range@^0.1.2: normalize-range@^0.1.2:
version "0.1.2" version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
@ -17888,7 +18025,7 @@ p-is-promise@^1.1.0:
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=
p-is-promise@^2.0.0: p-is-promise@^2.0.0, p-is-promise@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
@ -18255,6 +18392,10 @@ parse-path@^4.0.0:
is-ssh "^1.3.0" is-ssh "^1.3.0"
protocols "^1.4.0" protocols "^1.4.0"
parse-srcset@ikatyang/parse-srcset#54eb9c1cb21db5c62b4d0e275d7249516df6f0ee:
version "1.0.2"
resolved "https://codeload.github.com/ikatyang/parse-srcset/tar.gz/54eb9c1cb21db5c62b4d0e275d7249516df6f0ee"
parse-unit@^1.0.1: parse-unit@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-unit/-/parse-unit-1.0.1.tgz#7e1bb6d5bef3874c28e392526a2541170291eecf" resolved "https://registry.yarnpkg.com/parse-unit/-/parse-unit-1.0.1.tgz#7e1bb6d5bef3874c28e392526a2541170291eecf"
@ -18860,6 +19001,13 @@ postcss-lab-function@^2.0.1:
postcss "^7.0.2" postcss "^7.0.2"
postcss-values-parser "^2.0.0" postcss-values-parser "^2.0.0"
postcss-less@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-2.0.0.tgz#5d190b8e057ca446d60fe2e2587ad791c9029fb8"
integrity sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ==
dependencies:
postcss "^5.2.16"
postcss-load-config@^2.0.0: postcss-load-config@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003"
@ -18902,6 +19050,11 @@ postcss-media-minmax@^4.0.0:
dependencies: dependencies:
postcss "^7.0.2" postcss "^7.0.2"
postcss-media-query-parser@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=
postcss-merge-longhand@^4.0.11: postcss-merge-longhand@^4.0.11:
version "4.0.11" version "4.0.11"
resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
@ -19278,6 +19431,13 @@ postcss-safe-parser@4.0.1, postcss-safe-parser@^4.0.1:
dependencies: dependencies:
postcss "^7.0.0" postcss "^7.0.0"
postcss-scss@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1"
integrity sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==
dependencies:
postcss "^7.0.0"
postcss-selector-matches@^4.0.0: postcss-selector-matches@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff"
@ -19294,6 +19454,15 @@ postcss-selector-not@^4.0.0:
balanced-match "^1.0.0" balanced-match "^1.0.0"
postcss "^7.0.2" postcss "^7.0.2"
postcss-selector-parser@2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=
dependencies:
flatten "^1.0.2"
indexes-of "^1.0.1"
uniq "^1.0.1"
postcss-selector-parser@6.0.2, postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: postcss-selector-parser@6.0.2, postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
version "6.0.2" version "6.0.2"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
@ -19350,7 +19519,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: postcss-values-parser@2.0.1, postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f"
integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==
@ -19377,6 +19546,16 @@ postcss@7.0.21:
source-map "^0.6.1" source-map "^0.6.1"
supports-color "^6.1.0" supports-color "^6.1.0"
postcss@^5.2.16:
version "5.2.18"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
dependencies:
chalk "^1.1.3"
js-base64 "^2.1.9"
source-map "^0.5.6"
supports-color "^3.2.3"
postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.23: postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.23:
version "6.0.23" version "6.0.23"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
@ -19448,11 +19627,74 @@ prettier-plugin-pkg@0.4.10:
resolved "https://registry.yarnpkg.com/prettier-plugin-pkg/-/prettier-plugin-pkg-0.4.10.tgz#e32da7f72bc5c2b91c23711497a00a26955255ad" resolved "https://registry.yarnpkg.com/prettier-plugin-pkg/-/prettier-plugin-pkg-0.4.10.tgz#e32da7f72bc5c2b91c23711497a00a26955255ad"
integrity sha512-BPv9xcqRfycXefabThMFqqmHn4OV7Utv0c5rH6b/sf+JQidmEZCn25oyujvA+yTi4gG2/KbhE5dpDbJz4IOZpQ== integrity sha512-BPv9xcqRfycXefabThMFqqmHn4OV7Utv0c5rH6b/sf+JQidmEZCn25oyujvA+yTi4gG2/KbhE5dpDbJz4IOZpQ==
prettier@1.19.1, prettier@^1.18.2: prettier@^1.18.2:
version "1.19.1" version "1.19.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
prettier@prettier/prettier:
version "1.20.0-dev"
resolved "https://codeload.github.com/prettier/prettier/tar.gz/a858a315e926c21bd1ebfcde70a08419c9472a8c"
dependencies:
"@angular/compiler" "8.2.14"
"@babel/code-frame" "7.5.5"
"@babel/parser" "7.8.3"
"@glimmer/syntax" "0.41.0"
"@iarna/toml" "2.2.3"
"@typescript-eslint/typescript-estree" "2.11.0"
angular-estree-parser "1.1.5"
angular-html-parser "1.3.0"
camelcase "5.3.1"
chalk "2.4.2"
cjk-regex "2.0.0"
cosmiconfig "5.2.1"
dashify "2.0.0"
dedent "0.7.0"
diff "4.0.2"
editorconfig "0.15.3"
editorconfig-to-prettier "0.1.1"
escape-string-regexp "1.0.5"
esutils "2.0.3"
find-parent-dir "0.3.0"
find-project-root "1.1.1"
flow-parser "0.116.1"
get-stream "4.1.0"
globby "6.1.0"
graphql "14.5.8"
html-element-attributes "2.2.0"
html-styles "1.0.0"
html-tag-names "1.1.4"
ignore "4.0.6"
is-ci "2.0.0"
jest-docblock "24.9.0"
json-stable-stringify "1.0.1"
leven "3.1.0"
lines-and-columns "1.1.6"
linguist-languages "7.7.0"
lodash "4.17.15"
mem "5.1.1"
minimatch "3.0.4"
minimist "1.2.0"
n-readlines "1.0.0"
normalize-path "3.0.0"
parse-srcset ikatyang/parse-srcset#54eb9c1cb21db5c62b4d0e275d7249516df6f0ee
postcss-less "2.0.0"
postcss-media-query-parser "0.2.3"
postcss-scss "2.0.0"
postcss-selector-parser "2.2.3"
postcss-values-parser "2.0.1"
regexp-util "1.2.2"
remark-math "1.0.6"
remark-parse "5.0.0"
resolve "1.14.2"
semver "6.3.0"
string-width "4.1.0"
typescript "3.7.5"
unicode-regex "3.0.0"
unified "8.4.2"
vnopts "1.0.2"
yaml-unist-parser "1.1.1"
pretty-bytes@^5.1.0, pretty-bytes@^5.3.0: pretty-bytes@^5.1.0, pretty-bytes@^5.3.0:
version "5.3.0" version "5.3.0"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2"
@ -20835,6 +21077,13 @@ regex-parser@2.2.10:
resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37" resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37"
integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA== integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==
regexp-util@1.2.2, regexp-util@^1.2.0, regexp-util@^1.2.1:
version "1.2.2"
resolved "https://registry.yarnpkg.com/regexp-util/-/regexp-util-1.2.2.tgz#5cf599134921eb0d776e41d41e9c0da33f0fa2fc"
integrity sha512-5/rl2UD18oAlLQEIuKBeiSIOp1hb5wCXcakl5yvHxlY1wyWI4D5cUKKzCibBeu741PA9JKvZhMqbkDQqPusX3w==
dependencies:
tslib "^1.9.0"
regexp.prototype.flags@^1.2.0: regexp.prototype.flags@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
@ -21618,6 +21867,13 @@ remark-lint@^6.0.0:
dependencies: dependencies:
remark-message-control "^4.0.0" remark-message-control "^4.0.0"
remark-math@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-1.0.6.tgz#49eb3dd15d298734c9ae21673115389793af4d1b"
integrity sha512-I43wU/QOQpXvVFXKjA4FHp5xptK65+5F6yolm8+69/JV0EqSOB64wURUZ3JK50JtnTL8FvwLiH2PZ+fvsBxviA==
dependencies:
trim-trailing-lines "^1.1.0"
remark-math@2.0.0: remark-math@2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-2.0.0.tgz#bc0e981fb7c6c79d6a5f99937709549bebe6bb04" resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-2.0.0.tgz#bc0e981fb7c6c79d6a5f99937709549bebe6bb04"
@ -21632,10 +21888,10 @@ remark-message-control@^4.0.0:
unified-message-control "^1.0.0" unified-message-control "^1.0.0"
xtend "^4.0.1" xtend "^4.0.1"
remark-parse@7.0.2, remark-parse@^7.0.2: remark-parse@5.0.0, remark-parse@^5.0.0:
version "7.0.2" version "5.0.0"
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.2.tgz#41e7170d9c1d96c3d32cf1109600a9ed50dba7cf" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95"
integrity sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA== integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==
dependencies: dependencies:
collapse-white-space "^1.0.2" collapse-white-space "^1.0.2"
is-alphabetical "^1.0.0" is-alphabetical "^1.0.0"
@ -21653,10 +21909,10 @@ remark-parse@7.0.2, remark-parse@^7.0.2:
vfile-location "^2.0.0" vfile-location "^2.0.0"
xtend "^4.0.1" xtend "^4.0.1"
remark-parse@^5.0.0: remark-parse@7.0.2, remark-parse@^7.0.2:
version "5.0.0" version "7.0.2"
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.2.tgz#41e7170d9c1d96c3d32cf1109600a9ed50dba7cf"
integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== integrity sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==
dependencies: dependencies:
collapse-white-space "^1.0.2" collapse-white-space "^1.0.2"
is-alphabetical "^1.0.0" is-alphabetical "^1.0.0"
@ -21717,6 +21973,11 @@ remark-preset-lint-recommended@^3.0.1:
remark-lint-no-unused-definitions "^1.0.0" remark-lint-no-unused-definitions "^1.0.0"
remark-lint-ordered-list-marker-style "^1.0.0" remark-lint-ordered-list-marker-style "^1.0.0"
remark-preset-prettier@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/remark-preset-prettier/-/remark-preset-prettier-0.3.0.tgz#31ac7101eafc28815b930c04ab4fcfefbfdc7a6d"
integrity sha512-TYJfPdAn/T9+Nmm63qc7JtED9QL1hDh7V2loDPwAgfDFPTGQUzkeKLsl4z8QdjvJ/pgK/IZoKpZZbjK50CGgnw==
remark-preset-wooorm@6.0.1: remark-preset-wooorm@6.0.1:
version "6.0.1" version "6.0.1"
resolved "https://registry.yarnpkg.com/remark-preset-wooorm/-/remark-preset-wooorm-6.0.1.tgz#d4ca4b37d1d4f3b56f586331ea170bd9b967cacb" resolved "https://registry.yarnpkg.com/remark-preset-wooorm/-/remark-preset-wooorm-6.0.1.tgz#d4ca4b37d1d4f3b56f586331ea170bd9b967cacb"
@ -22083,6 +22344,13 @@ resolve@1.12.2:
dependencies: dependencies:
path-parse "^1.0.6" path-parse "^1.0.6"
resolve@1.14.2:
version "1.14.2"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2"
integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==
dependencies:
path-parse "^1.0.6"
resolve@^1.1.5, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1: resolve@^1.1.5, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1:
version "1.15.0" version "1.15.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.0.tgz#1b7ca96073ebb52e741ffd799f6b39ea462c67f5" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.0.tgz#1b7ca96073ebb52e741ffd799f6b39ea462c67f5"
@ -22896,6 +23164,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
simple-html-tokenizer@^0.5.7:
version "0.5.8"
resolved "https://registry.yarnpkg.com/simple-html-tokenizer/-/simple-html-tokenizer-0.5.8.tgz#3417382f75954ee34515cc4fd32d9918e693f173"
integrity sha512-0Sq4FvLlQEQODVA6PH2MIrc7tzYO0KT2HzzwvaVLYClWgIsuvaNUOrhrAvTi1pZHrcq7GDB4WiI3ukjqBMxcGQ==
simple-swizzle@^0.2.2: simple-swizzle@^0.2.2:
version "0.2.2" version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
@ -23502,6 +23775,15 @@ string-similarity@^1.2.2:
lodash.map "^4.6.0" lodash.map "^4.6.0"
lodash.maxby "^4.6.0" lodash.maxby "^4.6.0"
string-width@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff"
integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^5.2.0"
string-width@^1.0.1: string-width@^1.0.1:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
@ -24515,10 +24797,10 @@ trim-right@^1.0.1:
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
trim-trailing-lines@^1.0.0: trim-trailing-lines@^1.0.0, trim-trailing-lines@^1.1.0:
version "1.1.2" version "1.1.3"
resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz#d2f1e153161152e9f02fabc670fb40bec2ea2e3a" resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94"
integrity sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q== integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==
trim@0.0.1: trim@0.0.1:
version "0.0.1" version "0.0.1"
@ -24545,7 +24827,7 @@ ts-pnp@1.1.5, ts-pnp@^1.1.2:
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec"
integrity sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA== integrity sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA==
tslib@^1.10.0, tslib@^1.6.0, tslib@^1.8.1, tslib@^1.9.0: tslib@^1.10.0, tslib@^1.6.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
version "1.10.0" version "1.10.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
@ -24786,6 +25068,20 @@ unicode-property-aliases-ecmascript@^1.0.4:
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
unicode-regex@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/unicode-regex/-/unicode-regex-3.0.0.tgz#0c20df914c6da0412b3714cd300726e0f7f24698"
integrity sha512-WiDJdORsqgxkZrjC8WsIP573130HNn7KsB0IDnUccW2BG2b19QQNloNhVe6DKk3Aef0UcoIHhNVj7IkkcYWrNw==
dependencies:
regexp-util "^1.2.0"
unicode-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-regex/-/unicode-regex-2.0.0.tgz#ef8f6642c37dddcaa0c09af5b9456aabf6b436a3"
integrity sha512-5nbEG2YU7loyTvPABaKb+8B0u8L7vWCsVmCSsiaO249ZdMKlvrXlxR2ex4TUVAdzv/Cne/TdoXSSaJArGXaleQ==
dependencies:
regexp-util "^1.2.0"
unicode-trie@^0.3.1: unicode-trie@^0.3.1:
version "0.3.1" version "0.3.1"
resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085"
@ -25397,6 +25693,15 @@ vm-browserify@^1.0.1:
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019"
integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==
vnopts@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/vnopts/-/vnopts-1.0.2.tgz#f6a331473de0179d1679112cc090572b695202f7"
integrity sha512-d2rr2EFhAGHnTlURu49G7GWmiJV80HbAnkYdD9IFAtfhmxC+kSWEaZ6ZF064DJFTv9lQZQV1vuLTntyQpoanGQ==
dependencies:
chalk "^2.4.1"
leven "^2.1.0"
tslib "^1.9.3"
vue-hot-reload-api@^2.3.0: vue-hot-reload-api@^2.3.0:
version "2.3.3" version "2.3.3"
resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz#2756f46cb3258054c5f4723de8ae7e87302a1ccf" resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz#2756f46cb3258054c5f4723de8ae7e87302a1ccf"
@ -26410,7 +26715,16 @@ yaml-loader@^0.5.0:
dependencies: dependencies:
js-yaml "^3.5.2" js-yaml "^3.5.2"
yaml@^1.7.2: yaml-unist-parser@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/yaml-unist-parser/-/yaml-unist-parser-1.1.1.tgz#a2bc7b72578718e6e5b0ebc945dde8e1f258b561"
integrity sha512-cGtqhHBlcft+rTKiPsVcSyi43Eqm5a1buYokW9VkztroKMErBSdR9ANHx+/XxNppHZTu2KMEn4yY8MdhuGoFuA==
dependencies:
lines-and-columns "^1.1.6"
tslib "^1.10.0"
yaml "^1.7.1"
yaml@^1.7.1, yaml@^1.7.2:
version "1.7.2" version "1.7.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2"
integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==