diff --git a/.editorconfig b/.editorconfig
index abed2e2e82db..53a646e2741c 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -11,6 +11,7 @@ insert_final_newline = true
charset = utf-8
indent_style = space
indent_size = 2
+quote_type = single
# Format Configs
[.eslintignore,*rc]
diff --git a/package.json b/package.json
index f2f14a9dcb6b..0701cfccea9e 100644
--- a/package.json
+++ b/package.json
@@ -62,6 +62,8 @@
]
},
"devDependencies": {
+ "@mdx-js/loader": "0.15.7",
+ "@mdx-js/mdx": "0.15.7",
"@octokit/rest": "^15.9.4",
"alex": "^5.1.0",
"autoprefixer": "^7.2.3",
@@ -76,8 +78,8 @@
"copy-webpack-plugin": "4.5.2",
"cross-env": "5.2.0",
"css-loader": "^0.28.5",
- "directory-tree": "2.1.0",
- "directory-tree-webpack-plugin": "^0.3.1",
+ "directory-tree": "2.2.0",
+ "directory-tree-webpack-plugin": "0.3",
"duplexer": "^0.1.1",
"eslint": "4.19.1",
"eslint-loader": "^2.0.0",
@@ -92,14 +94,14 @@
"http-server": "^0.10.0",
"husky": "^1.0.0-rc.8",
"hyperlink": "^4.0.0",
- "lint-staged": "^7.2.0",
+ "lint-staged": "^8.1.0",
"loader-utils": "^1.1.0",
"lodash": "^4.17.4",
- "markdown-loader": "^2.0.1",
+ "markdown-loader": "^4.0.0",
"markdownlint": "^0.11.0",
"markdownlint-cli": "^0.13.0",
"markdownlint-rule-emphasis-style": "^1.0.0",
- "marked": "^0.3.7",
+ "marked": "^0.5.2",
"mermaid.cli": "^0.3.6",
"minimist": "1.2.0",
"mkdirp": "^0.5.1",
@@ -108,13 +110,13 @@
"npm-run-all": "^4.1.1",
"postcss-loader": "^2.0.6",
"redirect-webpack-plugin": "^0.1.1",
- "remark": "^9.0.0",
+ "remark": "^10.0.1",
"remark-autolink-headings": "^5.0.0",
"remark-custom-blockquotes": "1.0.0",
"remark-extract-anchors": "1.0.0",
"remark-loader": "^0.3.0",
"remark-mermaid": "^0.2.0",
- "remark-refractor": "1.0.0",
+ "remark-refractor": "1.1.0",
"remark-responsive-tables": "1.0.0",
"remark-slug": "^5.0.0",
"request": "^2.81.0",
@@ -146,7 +148,9 @@
"react-dom": "^16.2.0",
"react-g-analytics": "0.4.2",
"react-hot-loader": "^4.0.0-beta.12",
+ "react-markdown": "4.0.4",
"react-router-dom": "^4.2.2",
+ "react-tiny-popover": "3.4.2",
"webpack.vote": "^0.1.2",
"whatwg-fetch": "^2.0.3"
}
diff --git a/src/components/Configuration/Configuration.jsx b/src/components/Configuration/Configuration.jsx
new file mode 100644
index 000000000000..1200a1d5ba4d
--- /dev/null
+++ b/src/components/Configuration/Configuration.jsx
@@ -0,0 +1,39 @@
+import React from "react";
+import ReactMarkdown from "react-markdown";
+import { Details } from "./components";
+
+const detailComponentsList = ['link', 'mode', 'entry', 'filename', 'publicPath', 'advancedOutput', 'expert', 'advancedModule', 'alias', 'advancedResolve', 'hints', 'devtool', 'target', 'externals', 'stats', 'advanced', 'libraryTarget'];
+
+const Pre = props => {
+ const newChildren = React.Children.map(props.children.props.children, child => {
+ if (React.isValidElement(child)) {
+ if (child.props.props.className.includes("keyword")) {
+ if (!detailComponentsList.includes(child.props.props.componentname)) return child;
+
+ return ;
+ }
+
+ if (child.props.props.className.includes("comment")) {
+ return ;
+ }
+ }
+
+ return child;
+ });
+
+ const newProps = {
+ children: newChildren
+ };
+
+ return (
+
+
+
+ );
+};
+
+export default {
+ components: {
+ pre: Pre
+ }
+};
diff --git a/src/components/Configuration/Configuration.scss b/src/components/Configuration/Configuration.scss
new file mode 100644
index 000000000000..42a056dd1af2
--- /dev/null
+++ b/src/components/Configuration/Configuration.scss
@@ -0,0 +1,10 @@
+.shadow {
+ overflow: visible;
+ border-radius: 4px;
+ box-shadow: -1px 1px 10px 0 rgba(255, 255, 255, 0.44);
+}
+
+.inline {
+ padding-right: 15px !important;
+ margin: 0 !important;
+}
diff --git a/src/components/Configuration/components.js b/src/components/Configuration/components.js
new file mode 100644
index 000000000000..223a62499bcd
--- /dev/null
+++ b/src/components/Configuration/components.js
@@ -0,0 +1,98 @@
+import React from 'react';
+import Popover from 'react-tiny-popover';
+import './Configuration.scss';
+import { timeout } from 'q';
+
+const DEFAULT_CHILDREN_SIZE = 4;
+
+const isFirstChild = child => typeof child === 'string' && child !== ' ';
+
+const removeSpaces = child => (isFirstChild(child) ? child.trim() : child);
+
+const addLink = (child, i, url) => {
+ return isFirstChild(child) ? (
+
+ {child}
+
+ ) : (
+ child
+ );
+};
+
+const Card = ({ body }) => {
+ return (
+
+ );
+};
+
+export class Details extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ open: false,
+ summary: null,
+ content: null
+ };
+ }
+
+ componentDidMount() {
+ const { children, url } = this.props;
+
+ // Find the index of
+ const closeDefaultTagIndex = children.findIndex(child => {
+ if (React.isValidElement(child)) {
+ return (
+ child.props.props.className.includes('tag') &&
+ child.props.children.length === DEFAULT_CHILDREN_SIZE
+ );
+ }
+ });
+
+ // Summary is the part of the snippet that would be shown in the code snippet,
+ // to get it we need to cut the enclosing tags
+ const summary = children
+ .splice(2, closeDefaultTagIndex - 3)
+ .map(removeSpaces)
+ .map((child, i) => addLink(child, i, url));
+
+ children.splice(0, DEFAULT_CHILDREN_SIZE); // Remove information
+
+ this.setState({
+ summary,
+ content: children
+ });
+ }
+
+ clickOutsideHandler = () => {
+ this.setState({ open: false });
+ };
+
+ toggleVisibility = () => {
+ this.setState({ open: !this.state.open });
+ };
+
+ render() {
+ const { open, summary, content } = this.state;
+ return (
+ }
+ >
+
+ {summary}
+
+
+ );
+ }
+}
diff --git a/src/components/Markdown/Markdown.scss b/src/components/Markdown/Markdown.scss
index f5763880973e..2f7acc9f5fcb 100644
--- a/src/components/Markdown/Markdown.scss
+++ b/src/components/Markdown/Markdown.scss
@@ -1,27 +1,45 @@
-@import 'vars';
-@import 'functions';
-@import 'prism-theme';
+@import "vars";
+@import "functions";
+@import "prism-theme";
.markdown {
- line-height:1.5em;
+ line-height: 1.5em;
- h1 { font-size: getFontSize(4); }
- h2 { font-size: getFontSize(3); }
- h3 { font-size: getFontSize(2); }
- h4 { font-size: getFontSize(1); }
- h5 { font-size: getFontSize(0); }
- h6 { font-size: getFontSize(-1); }
+ h1 {
+ font-size: getFontSize(4);
+ }
+ h2 {
+ font-size: getFontSize(3);
+ }
+ h3 {
+ font-size: getFontSize(2);
+ }
+ h4 {
+ font-size: getFontSize(1);
+ }
+ h5 {
+ font-size: getFontSize(0);
+ }
+ h6 {
+ font-size: getFontSize(-1);
+ }
- h1, h2, h3, h4, h5, h6 {
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
display: flex;
align-items: center;
font-family: $font-stack-heading;
- font-weight:600;
- line-height:1.4;
- margin:1.5em 0 0.25em;
- color:getColor(fiord);
+ font-weight: 600;
+ line-height: 1.4;
+ margin: 1.5em 0 0.25em;
+ color: getColor(fiord);
- tt, code {
+ tt,
+ code {
font-size: 90%;
color: inherit;
}
@@ -46,30 +64,40 @@
line-height: 1;
}
- p, blockquote, table, pre {
- margin:1em 0;
+ p,
+ blockquote,
+ table,
+ pre {
+ margin: 1em 0;
}
- ul, ol, dl {
- margin:0.5em 0 1em;
+ ul,
+ ol,
+ dl {
+ margin: 0.5em 0 1em;
}
li {
- margin:0.5em 0;
+ margin: 0.5em 0;
}
hr {
- border:none;
- background-color:getColor(alto);
- height:3px;
- margin:2em 0;
+ border: none;
+ background-color: getColor(alto);
+ height: 3px;
+ margin: 2em 0;
}
- ul, ol {
+ ul,
+ ol {
padding-left: 30px;
- &:first-child { margin-top:0; }
- &:last-child { margin-bottom:0; }
+ &:first-child {
+ margin-top: 0;
+ }
+ &:last-child {
+ margin-bottom: 0;
+ }
}
dl {
@@ -79,7 +107,9 @@
font-style: italic;
margin: 15px 0 5px;
- &:first-child { padding: 0; }
+ &:first-child {
+ padding: 0;
+ }
}
dd {
@@ -87,25 +117,34 @@
padding: 0 15px;
}
- dt, dd {
- > :first-child { margin-top: 0; }
- > :last-child { margin-bottom: 0; }
+ dt,
+ dd {
+ > :first-child {
+ margin-top: 0;
+ }
+ > :last-child {
+ margin-bottom: 0;
+ }
}
}
blockquote {
border-left: 4px solid #dddddd;
- padding:0.75em 1em;
- color:getColor(dove-grey);
+ padding: 0.75em 1em;
+ color: getColor(dove-grey);
font-style: italic;
- > :first-child { margin-top: 0; }
- > :last-child { margin-bottom: 0; }
+ > :first-child {
+ margin-top: 0;
+ }
+ > :last-child {
+ margin-bottom: 0;
+ }
&.tip,
&.warning,
&.todo {
- border-left:none;
+ border-left: none;
border-radius: 3px;
.tip-content {
@@ -132,7 +171,7 @@
color: #907a6e;
.tip-content::before {
- content: '[TODO]: ';
+ content: "[TODO]: ";
font-style: normal;
}
}
@@ -159,7 +198,7 @@
font-weight: bold;
text-align: left;
padding: 6px 12px;
- background: darken(#F4F6F6, 1%);
+ background: darken(#f4f6f6, 1%);
&:first-child {
border-right: 1px solid #cccccc;
@@ -240,15 +279,18 @@
height: auto;
}
- b, strong {
- font-weight:600;
+ b,
+ strong {
+ font-weight: 600;
}
- i, em {
+ i,
+ em {
font-style: italic;
}
- code, tt {
+ code,
+ tt {
font-family: $font-stack-code;
font-size: 90%;
margin: 0 2px;
@@ -284,6 +326,17 @@
.code-details-summary-span {
margin-left: -15px;
cursor: pointer;
+
+ &::after {
+ content: "\F103";
+ float: left;
+ position: relative;
+ left: -2px;
+ top: 2px;
+ text-align: center;
+ font-family: icons;
+ color: lighten(getColor(denim), 10%);
+ }
}
a {
@@ -299,14 +352,16 @@
}
}
- code, tt {
+ code,
+ tt {
background-color: transparent;
border: none;
}
}
p {
- code, tt {
+ code,
+ tt {
max-width: 100%;
line-height: initial;
overflow: auto;
@@ -317,7 +372,8 @@
}
span {
- code, tt {
+ code,
+ tt {
white-space: pre-line;
}
}
diff --git a/src/components/Page/Page.jsx b/src/components/Page/Page.jsx
index bfbf5c7f46ba..9bac4f7decf8 100644
--- a/src/components/Page/Page.jsx
+++ b/src/components/Page/Page.jsx
@@ -6,6 +6,7 @@ import PageLinks from '../PageLinks/PageLinks';
import Markdown from '../Markdown/Markdown';
import Contributors from '../Contributors/Contributors';
import Placeholder from '../Placeholder/Placeholder';
+import Configuration from '../Configuration/Configuration';
// Load Styling
import './Page.scss';
@@ -28,62 +29,72 @@ class Page extends React.Component {
if (content instanceof Promise) {
content
- .then(module => this.setState({
- content: module.default || module,
- contentLoaded: true
- }))
- .catch(error => this.setState({
- content: 'Error loading content.'
- }));
+ .then(module =>
+ this.setState({
+ content: module.default || module,
+ contentLoaded: true
+ })
+ )
+ .catch(error =>
+ this.setState({
+ content: 'Error loading content.'
+ })
+ );
}
}
render() {
- const {
- title,
- contributors = [],
- related = [],
- ...rest
- } = this.props;
+ const { title, contributors = [], related = [], ...rest } = this.props;
const { contentLoaded } = this.state;
const loadRelated = contentLoaded && related && related.length !== 0;
- const loadContributors = contentLoaded && contributors && contributors.length !== 0;
+ const loadContributors =
+ contentLoaded && contributors && contributors.length !== 0;
+
+ const { content } = this.state;
+
+ let contentRender;
+
+ if (typeof content === 'function') {
+ contentRender = content(Configuration).props.children.slice(4); // Cut frontmatter information
+ } else {
+ contentRender = (
+
+ );
+ }
return (
-
+
- { title }
+ {title}
-
+ {contentRender}
- { loadRelated && (
+ {loadRelated && (
)}
- { loadContributors && (
+ {loadContributors && (
Contributors
-
+
)}
diff --git a/src/content/api/node.md b/src/content/api/node.mdx
similarity index 100%
rename from src/content/api/node.md
rename to src/content/api/node.mdx
diff --git a/src/content/api/stats.md b/src/content/api/stats.mdx
similarity index 99%
rename from src/content/api/stats.md
rename to src/content/api/stats.mdx
index a06d6e9d6edf..b2c21c045359 100644
--- a/src/content/api/stats.md
+++ b/src/content/api/stats.mdx
@@ -20,7 +20,7 @@ The `--json > compilation-stats.json` flag indicates to webpack that it should e
The top-level structure of the output JSON file is fairly straightforward but there are a few nested data structures as well. Each nested structure has a dedicated section below to make this document more consumable. Note that you can click links within the top-level structure below to jump to relevant sections and documentation:
-```js-with-links
+``` js-with-links
{
"version": "1.4.13", // Version of webpack used for the compilation
"hash": "11593e3b3ac85436984a", // Compilation specific hash
diff --git a/src/content/concepts/index.md b/src/content/concepts/index.md
index fe853ab3af1c..7b207d70a558 100644
--- a/src/content/concepts/index.md
+++ b/src/content/concepts/index.md
@@ -14,7 +14,6 @@ contributors:
- arjunsajeev
- byzyk
- yairhaimo
- - EugeneHlushko
- farskid
- LukeMwila
---
diff --git a/src/content/configuration/index.md b/src/content/configuration/index.md
deleted file mode 100644
index 9f8f72822df1..000000000000
--- a/src/content/configuration/index.md
+++ /dev/null
@@ -1,405 +0,0 @@
----
-title: Configuration
-sort: 1
-contributors:
- - sokra
- - skipjack
- - grgur
- - bondz
- - sricc
- - terinjokes
- - mattce
- - kbariotis
- - sterlingvix
- - jeremenichelli
- - dasarianudeep
- - byzyk
- - kennetvu
----
-
-Out of the box, webpack won't require you to use a configuration file. However, it will assume the entry point of your project is `src/index` and will output the result in `dist/main.js` minified and optimized for production.
-
-Usually your projects will need to extend this functionality, for this you can create a `webpack.config.js` file in the root folder and webpack will automatically use it.
-
-All the available configuration options are specified below.
-
-T> New to webpack? Check out our guide to some of webpack's [core concepts](/concepts/) to get started!
-
-## Options
-
-Click on the name of each option in the configuration code below to jump to the detailed documentation. Also note that the items with arrows can be expanded to show more examples and, in some cases, more advanced configuration.
-
-W> Notice that throughout the configuration we use Node's built-in [path module](https://nodejs.org/api/path.html) and prefix it with the [__dirname](https://nodejs.org/docs/latest/api/globals.html#globals_dirname) global. This prevents file path issues between operating systems and allows relative paths to work as expected. See [this section](https://nodejs.org/api/path.html#path_windows_vs_posix) for more info on POSIX vs. Windows paths.
-
-__webpack.config.js__
-
-```js-with-links-with-details
-const path = require('path');
-
-module.exports = {
- [mode](/concepts/mode): "production", // "production" | "development" | "none"
- [mode](/concepts/mode): "production", // enable many optimizations for production builds
- [mode](/concepts/mode): "development", // enabled useful tools for development
- [mode](/concepts/mode): "none", // no defaults
-
- // Chosen mode tells webpack to use its built-in optimizations accordingly.
- [entry](/configuration/entry-context#entry): "./app/entry", // string | object | array
- [entry](/configuration/entry-context#entry): ["./app/entry1", "./app/entry2"],
- [entry](/configuration/entry-context#entry): {
- a: "./app/entry-a",
- b: ["./app/entry-b1", "./app/entry-b2"]
- },
-
- // defaults to './src'
- // Here the application starts executing
- // and webpack starts bundling
- [output](/configuration/output): {
- // options related to how webpack emits results
- [path](/configuration/output#output-path): path.resolve(__dirname, "dist"), // string
- // the target directory for all output files
- // must be an absolute path (use the Node.js path module)
- [filename](/configuration/output#output-filename): "bundle.js", // string
- [filename](/configuration/output#output-filename): "[name].js", // for multiple entry points
- [filename](/configuration/output#output-filename): "[chunkhash].js", // for [long term caching](/guides/caching)
-
- // the filename template for entry chunks
- [publicPath](/configuration/output#output-publicpath): "/assets/", // string
- [publicPath](/configuration/output#output-publicpath): "",
- [publicPath](/configuration/output#output-publicpath): "https://cdn.example.com/",
-
- // the url to the output directory resolved relative to the HTML page
- [library](/configuration/output#output-library): "MyLibrary", // string,
- // the name of the exported library
- [libraryTarget](/configuration/output#output-librarytarget): "umd", // universal module definition
- [libraryTarget](/configuration/output#output-librarytarget): "umd2", // universal module definition
- [libraryTarget](/configuration/output#output-librarytarget): "commonjs2", // exported with module.exports
- [libraryTarget](/configuration/output#output-librarytarget): "commonjs", // exported as properties to exports
- [libraryTarget](/configuration/output#output-librarytarget): "amd", // defined with AMD defined method
- [libraryTarget](/configuration/output#output-librarytarget): "this", // property set on this
- [libraryTarget](/configuration/output#output-librarytarget): "var", // variable defined in root scope
- [libraryTarget](/configuration/output#output-librarytarget): "assign", // blind assignment
- [libraryTarget](/configuration/output#output-librarytarget): "window", // property set to window object
- [libraryTarget](/configuration/output#output-librarytarget): "global", // property set to global object
- [libraryTarget](/configuration/output#output-librarytarget): "jsonp", // jsonp wrapper
-
- // the type of the exported library
- /* Advanced output configuration (click to show) */
- [pathinfo](/configuration/output#output-pathinfo): true, // boolean
- // include useful path info about modules, exports, requests, etc. into the generated cod
- [chunkFilename](/configuration/output#output-chunkfilename): "[id].js",
- [chunkFilename](/configuration/output#output-chunkfilename): "[chunkhash].js", // for [long term caching](/guides/caching)
- // the filename template for additional chunks
- [jsonpFunction](/configuration/output#output-jsonpfunction): "myWebpackJsonp", // string
- // name of the JSONP function used to load chunks
- [sourceMapFilename](/configuration/output#output-sourcemapfilename): "[file].map", // string
- [sourceMapFilename](/configuration/output#output-sourcemapfilename): "sourcemaps/[file].map", // string
- // the filename template of the source map location
- [devtoolModuleFilenameTemplate](/configuration/output#output-devtoolmodulefilenametemplate): "webpack:///[resource-path]", // string
- // the name template for modules in a devtool
- [devtoolFallbackModuleFilenameTemplate](/configuration/output#output-devtoolfallbackmodulefilenametemplate): "webpack:///[resource-path]?[hash]", // string
- // the name template for modules in a devtool (used for conflicts)
- [umdNamedDefine](/configuration/output#output-umdnameddefine): true, // boolean
- // use a named AMD module in UMD library
- [crossOriginLoading](/configuration/output#output-crossoriginloading): "use-credentials", // enum
- [crossOriginLoading](/configuration/output#output-crossoriginloading): "anonymous",
- [crossOriginLoading](/configuration/output#output-crossoriginloading): false,
- // specifies how cross origin request are issued by the runtime
- /* Expert output configuration (on own risk) */
- [devtoolLineToLine](/configuration/output#output-devtoollinetoline): {
- test: /\.jsx$/
- },
- // use a simple 1:1 mapped SourceMaps for these modules (faster)
- [hotUpdateMainFilename](/configuration/output#output-hotupdatemainfilename): "[hash].hot-update.json", // string
- // filename template for HMR manifest
- [hotUpdateChunkFilename](/configuration/output#output-hotupdatechunkfilename): "[id].[hash].hot-update.js", // string
- // filename template for HMR chunks
- [sourcePrefix](/configuration/output#output-sourceprefix): "\t", // string
- // prefix module sources in bundle for better readablitity
-
-
- },
- [module](/configuration/module): {
- // configuration regarding modules
- [rules](/configuration/module#module-rules): [
- // rules for modules (configure loaders, parser options, etc.)
- {
- [test](/configuration/module#rule-test): /\.jsx?$/,
- [include](/configuration/module#rule-include): [
- path.resolve(__dirname, "app")
- ],
- [exclude](/configuration/module#rule-exclude): [
- path.resolve(__dirname, "app/demo-files")
- ],
- // these are matching conditions, each accepting a regular expression or string
- // test and include have the same behavior, both must be matched
- // exclude must not be matched (takes preference over test and include)
- // Best practices:
- // - Use RegExp only in test and for filename matching
- // - Use arrays of absolute paths in include and exclude
- // - Try to avoid exclude and prefer include
- [issuer](/configuration/module#rule-issuer): { test, include, exclude },
- // conditions for the issuer (the origin of the import)
- [enforce](/configuration/module#rule-enforce): "pre",
- [enforce](/configuration/module#rule-enforce): "post",
- // flags to apply these rules, even if they are overridden (advanced option)
- [loader](/configuration/module#rule-loader): "babel-loader",
- // the loader which should be applied, it'll be resolved relative to the context
- // -loader suffix is no longer optional in webpack2 for clarity reasons
- // see [webpack 1 upgrade guide](/migrate/3/#automatic-loader-module-name-extension-removed)
- [options](/configuration/module#rule-options-rule-query): {
- presets: ["es2015"]
- },
- // options for the loader
- },
- {
- [test](/configuration/module#rule-test): /\.html$/,
- [use](/configuration/module#rule-use): [
- // apply multiple loaders and options
- "htmllint-loader",
- {
- loader: "html-loader",
- options: {
- /* ... */
- }
- }
- ]
- },
- { [oneOf](/configuration/module#rule-oneof): [ /* rules */ ] },
- // only use one of these nested rules
- { [rules](/configuration/module#rule-rules): [ /* rules */ ] },
- // use all of these nested rules (combine with conditions to be useful)
- { [resource](/configuration/module#rule-resource): { [and](/configuration/module#condition): [ /* conditions */ ] } },
- // matches only if all conditions are matched
- { [resource](/configuration/module#rule-resource): { [or](/configuration/module#condition): [ /* conditions */ ] } },
- { [resource](/configuration/module#rule-resource): [ /* conditions */ ] },
- // matches if any condition is matched (default for arrays)
- { [resource](/configuration/module#rule-resource): { [not](/configuration/module#condition): /* condition */ } }
- // matches if the condition is not matched
- ],
- /* Advanced module configuration (click to show) */
- [noParse](/configuration/module#module-noparse): [
- /special-library\.js$/
- ],
- // do not parse this module
- unknownContextRequest: ".",
- unknownContextRecursive: true,
- unknownContextRegExp: /^\.\/.*$/,
- unknownContextCritical: true,
- exprContextRequest: ".",
- exprContextRegExp: /^\.\/.*$/,
- exprContextRecursive: true,
- exprContextCritical: true,
- wrappedContextRegExp: /.*/,
- wrappedContextRecursive: true,
- wrappedContextCritical: false,
- // specifies default behavior for dynamic requests
-
- },
- [resolve](/configuration/resolve): {
- // options for resolving module requests
- // (does not apply to resolving to loaders)
- [modules](/configuration/resolve#resolve-modules): [
- "node_modules",
- path.resolve(__dirname, "app")
- ],
- // directories where to look for modules
- [extensions](/configuration/resolve#resolve-extensions): [".js", ".json", ".jsx", ".css"],
- // extensions that are used
- [alias](/configuration/resolve#resolve-alias): {
- // a list of module name aliases
- "module": "new-module",
- // alias "module" -> "new-module" and "module/path/file" -> "new-module/path/file"
- "only-module$": "new-module",
- // alias "only-module" -> "new-module", but not "only-module/path/file" -> "new-module/path/file"
- "module": path.resolve(__dirname, "app/third/module.js"),
- // alias "module" -> "./app/third/module.js" and "module/file" results in error
- // modules aliases are imported relative to the current context
- },
- /* alternative alias syntax (click to show) */
- [alias](/configuration/resolve#resolve-alias): [
- {
- name: "module",
- // the old request
- alias: "new-module",
- // the new request
- onlyModule: true
- // if true only "module" is aliased
- // if false "module/inner/path" is also aliased
- }
- ],
-
- /* Advanced resolve configuration (click to show) */
- [symlinks](/configuration/resolve#resolve-symlinks): true,
- // follow symlinks to new location
- [descriptionFiles](/configuration/resolve#resolve-descriptionfiles): ["package.json"],
- // files that are read for package description
- [mainFields](/configuration/resolve#resolve-mainfields): ["main"],
- // properties that are read from description file
- // when a folder is requested
- [aliasFields](/configuration/resolve#resolve-aliasfields): ["browser"],
- // properties that are read from description file
- // to alias requests in this package
- [enforceExtension](/configuration/resolve#resolve-enforceextension): false,
- // if true request must not include an extensions
- // if false request may already include an extension
- [moduleExtensions](/configuration/resolve#resolveloader-moduleextensions): ["-module"],
- [enforceModuleExtension](/configuration/resolve#resolve-enforcemoduleextension): false,
- // like extensions/enforceExtension but for module names instead of files
- [unsafeCache](/configuration/resolve#resolve-unsafecache): true,
- [unsafeCache](/configuration/resolve#resolve-unsafecache): {},
- // enables caching for resolved requests
- // this is unsafe as folder structure may change
- // but performance improvement is really big
- [cachePredicate](/configuration/resolve#resolve-cachepredicate): (path, request) => true,
- // predicate function which selects requests for caching
- [plugins](/configuration/resolve#resolve-plugins): [
- // ...
- ]
- // additional plugins applied to the resolver
-
- },
- [performance](/configuration/performance): {
- [hints](/configuration/performance#performance-hints): "warning", // enum
- [hints](/configuration/performance#performance-hints): "error", // emit errors for perf hints
- [hints](/configuration/performance#performance-hints): false, // turn off perf hints
-
- [maxAssetSize](/configuration/performance#performance-maxassetsize): 200000, // int (in bytes),
- [maxEntrypointSize](/configuration/performance#performance-maxentrypointsize): 400000, // int (in bytes)
- [assetFilter](/configuration/performance#performance-assetfilter): function(assetFilename) {
- // Function predicate that provides asset filenames
- return assetFilename.endsWith('.css') || assetFilename.endsWith('.js');
- }
- },
- [devtool](/configuration/devtool): "source-map", // enum
- [devtool](/configuration/devtool): "inline-source-map", // inlines SourceMap into original file
- [devtool](/configuration/devtool): "eval-source-map", // inlines SourceMap per module
- [devtool](/configuration/devtool): "hidden-source-map", // SourceMap without reference in original file
- [devtool](/configuration/devtool): "cheap-source-map", // cheap-variant of SourceMap without module mappings
- [devtool](/configuration/devtool): "cheap-module-source-map", // cheap-variant of SourceMap with module mappings
- [devtool](/configuration/devtool): "eval", // no SourceMap, but named modules. Fastest at the expense of detail.
-
- // enhance debugging by adding meta info for the browser devtools
- // source-map most detailed at the expense of build speed.
- [context](/configuration/entry-context#context): __dirname, // string (absolute path!)
- // the home directory for webpack
- // the [entry](/configuration/entry-context) and [module.rules.loader](/configuration/module#rule-loader) option
- // is resolved relative to this directory
- [target](/configuration/target): "web", // enum
- [target](/configuration/target): "webworker", // WebWorker
- [target](/configuration/target): "node", // Node.js via require
- [target](/configuration/target): "async-node", // Node.js via fs and vm
- [target](/configuration/target): "node-webkit", // nw.js
- [target](/configuration/target): "electron-main", // electron, main process
- [target](/configuration/target): "electron-renderer", // electron, renderer process
- [target](/configuration/target): (compiler) => { /* ... */ }, // custom
-
- // the environment in which the bundle should run
- // changes chunk loading behavior and available modules
- [externals](/configuration/externals): ["react", /^@angular\//],
- [externals](/configuration/externals): "react", // string (exact match)
- [externals](/configuration/externals): /^[a-z\-]+($|\/)/, // Regex
- [externals](/configuration/externals): { // object
- angular: "this angular", // this["angular"]
- react: { // UMD
- commonjs: "react",
- commonjs2: "react",
- amd: "react",
- root: "React"
- }
- },
- [externals](/configuration/externals): (request) => { /* ... */ return "commonjs " + request }
-
- // Don't follow/bundle these modules, but request them at runtime from the environment
- [serve](https://github.com/webpack-contrib/webpack-serve#options): { //object
- port: 1337,
- content: './dist',
- // ...
- },
- // lets you provide options for webpack-serve
- [stats](/configuration/stats): "errors-only",
- [stats](/configuration/stats): { //object
- assets: true,
- colors: true,
- errors: true,
- errorDetails: true,
- hash: true,
- // ...
- },
-
- // lets you precisely control what bundle information gets displayed
- [devServer](/configuration/dev-server): {
- proxy: { // proxy URLs to backend development server
- '/api': 'http://localhost:3000'
- },
- contentBase: path.join(__dirname, 'public'), // boolean | string | array, static file location
- compress: true, // enable gzip compression
- historyApiFallback: true, // true for index.html upon 404, object for multiple paths
- hot: true, // hot module replacement. Depends on HotModuleReplacementPlugin
- https: false, // true for self-signed, object for cert authority
- noInfo: true, // only errors & warns on hot reload
- // ...
- },
- [plugins](plugins): [
- // ...
- ],
- // list of additional plugins
- /* Advanced configuration (click to show) */
- [resolveLoader](/configuration/resolve#resolveloader): { /* same as resolve */ }
- // separate resolve options for loaders
- [parallelism](other-options#parallelism): 1, // number
- // limit the number of parallel processed modules
- [profile](other-options#profile): true, // boolean
- // capture timing information
- [bail](other-options#bail): true, //boolean
- // fail out on the first error instead of tolerating it.
- [cache](other-options#cache): false, // boolean
- // disable/enable caching
- [watch](watch#watch): true, // boolean
- // enables watching
- [watchOptions](watch#watchoptions): {
- [aggregateTimeout](watch#watchoptions-aggregatetimeout): 1000, // in ms
- // aggregates multiple changes to a single rebuild
- [poll](watch#watchoptions-poll): true,
- [poll](watch#watchoptions-poll): 500, // interval in ms
- // enables polling mode for watching
- // must be used on filesystems that doesn't notify on change
- // i. e. nfs shares
- },
- [node](node): {
- // Polyfills and mocks to run Node.js-
- // environment code in non-Node environments.
- [console](node#node-console): false, // boolean | "mock"
- [global](node#node-global): true, // boolean | "mock"
- [process](node#node-process): true, // boolean
- [__filename](node#node-__filename): "mock", // boolean | "mock"
- [__dirname](node#node-__dirname): "mock", // boolean | "mock"
- [Buffer](node#node-buffer): true, // boolean | "mock"
- [setImmediate](node#node-setimmediate): true // boolean | "mock" | "empty"
- },
- [recordsPath](other-options#recordspath): path.resolve(__dirname, "build/records.json"),
- [recordsInputPath](other-options#recordsinputpath): path.resolve(__dirname, "build/records.json"),
- [recordsOutputPath](other-options#recordsoutputpath): path.resolve(__dirname, "build/records.json"),
- // TODO
-
-}
-```
-
-## Use custom configuration file
-
-If for some reason you want to use custom configuration file depending on certain situations you can change this via command line by using the `--config` flag.
-
-__package.json__
-
-```json
-"scripts": {
- "build": "webpack --config prod.config.js"
-}
-```
-
-## Configuration file generators
-
-Want to rapidly generate webpack configuration file for your project requirements with few clicks away?
-
-[Generate Custom Webpack Configuration](https://generatewebpackconfig.netlify.com/) is an interactive portal you can play around by selecting custom webpack configuration options tailored for your frontend project. It automatically generates a minimal webpack configuration based on your selection of loaders/plugins, etc.
-
-[Visual tool for creating webpack configs](https://webpack.jakoblind.no/) is an online configuration tool for creating webpack configuration file where you can select any combination of features you need. It also generates a full example project based on your webpack configs.
diff --git a/src/content/configuration/index.mdx b/src/content/configuration/index.mdx
new file mode 100644
index 000000000000..a0f817b65278
--- /dev/null
+++ b/src/content/configuration/index.mdx
@@ -0,0 +1,455 @@
+---
+title: Configuration
+sort: 1
+contributors:
+ - sokra
+ - skipjack
+ - grgur
+ - bondz
+ - sricc
+ - terinjokes
+ - mattce
+ - kbariotis
+ - sterlingvix
+ - jeremenichelli
+ - dasarianudeep
+---
+
+Out of the box, webpack won't require you to use a configuration file. However, it will assume the entry point of your project is `src/index` and will output the result in `dist/main.js` minified and optimized for production.
+
+Usually your projects will need to extend this functionality, for this you can create a `webpack.config.js` file in the root folder and webpack will automatically use it.
+
+All the available configuration options are specified below.
+
+T> New to webpack? Check out our guide to some of webpack's [core concepts](/concepts) to get started!
+
+
+## Use different config file
+
+If for some reason you want to use different config file depending on certain situations you can change this via command line by using the `--config` flag.
+
+**package.json**
+
+```json
+"scripts": {
+ "build": "webpack --config prod.config.js"
+}
+```
+
+
+## Options
+
+Click on the name of each option in the configuration code below to jump to the detailed documentation. Also note that the items with arrows can be expanded to show more examples and, in some cases, more advanced configuration.
+
+W> Notice that throughout the configuration we use Node's built-in [path module](https://nodejs.org/api/path.html) and prefix it with the [__dirname](https://nodejs.org/docs/latest/api/globals.html#globals_dirname) global. This prevents file path issues between operating systems and allows relative paths to work as expected. See [this section](https://nodejs.org/api/path.html#path_windows_vs_posix) for more info on POSIX vs. Windows paths.
+
+__webpack.config.js__
+
+```js-with-links-details
+const path = require('path');
+
+module.exports = {
+
+
+ mode: "production", // "production" | "development" | "none"
+
+ mode: "production", // enable many optimizations for production builds
+ mode: "development", // enabled useful tools for development
+ mode: "none", // no defaults
+
+ // Chosen mode tells webpack to use its built-in optimizations accordingly.
+
+
+ entry: "./app/entry", // string | object | array
+
+ entry: ["./app/entry1", "./app/entry2"],
+ entry: {
+ a: "./app/entry-a",
+ b: ["./app/entry-b1", "./app/entry-b2"]
+ },
+
+ // defaults to ./src
+ // Here the application starts executing
+ // and webpack starts bundling
+
+
+ output: {
+
+
+ // options related to how webpack emits results
+ path: path.resolve(__dirname, "dist"), // string
+ // the target directory for all output files
+ // must be an absolute path (use the Node.js path module)
+
+
+ filename: "bundle.js", // string
+
+ filename: "[name].js", // for multiple entry points
+ filename: "[chunkhash].js", // for long term caching
+
+ // the filename template for entry chunks
+
+
+ publicPath: "/assets/", // string
+
+ publicPath: "",
+ publicPath: "https://cdn.example.com/",
+
+ // the url to the output directory resolved relative to the HTML page
+ library: "MyLibrary", // string,
+ // the name of the exported library
+
+
+ libraryTarget: "umd", // universal module definition
+
+ libraryTarget: "umd2", // universal module definition
+ libraryTarget: "commonjs2", // exported with module.exports
+ libraryTarget: "commonjs", // exported as properties to exports
+ libraryTarget: "amd", // defined with AMD defined method
+ libraryTarget: "this", // property set on this
+ libraryTarget: "var", // variable defined in root scope
+ libraryTarget: "assign", // blind assignment
+ libraryTarget: "window", // property set to window object
+ libraryTarget: "global", // property set to global object
+ libraryTarget: "jsonp", // jsonp wrapper
+
+ // the type of the exported library
+
+
+ /* Advanced output configuration (click to show) */
+
+ pathinfo: true, // boolean
+ // include useful path info about modules, exports, requests, etc. into the generated cod
+ chunkFilename: "[id].js",
+ chunkFilename: "[chunkhash].js", // for long term caching
+ // the filename template for additional chunks
+ jsonpFunction: "myWebpackJsonp", // string
+ // name of the JSONP function used to load chunks
+ sourceMapFilename: "[file].map", // string
+ sourceMapFilename: "sourcemaps/[file].map", // string
+ // the filename template of the source map location
+ devtoolModuleFilenameTemplate: "webpack:///[resource-path]", // string
+ // the name template for modules in a devtool
+ devtoolFallbackModuleFilenameTemplate: "webpack:///[resource-path]?[hash]", // string
+ // the name template for modules in a devtool (used for conflicts)
+ umdNamedDefine: true, // boolean
+ // use a named AMD module in UMD library
+ crossOriginLoading: "use-credentials", // enum
+ crossOriginLoading: "anonymous",
+ crossOriginLoading: false,
+ // specifies how cross origin request are issued by the runtime
+
+
+
+ /* Expert output configuration (on own risk) */
+
+ devtoolLineToLine: {
+ test: /\.jsx$/
+ },
+ // use a simple 1:1 mapped SourceMaps for these modules (faster)
+ hotUpdateMainFilename: "[hash].hot-update.json", // string
+ // filename template for HMR manifest
+ hotUpdateChunkFilename: "[id].[hash].hot-update.js", // string
+ // filename template for HMR chunks
+ sourcePrefix: "\t", // string
+ // prefix module sources in bundle for better readablitity
+
+ },
+ module: {
+ // configuration regarding modules
+ rules: [
+ // rules for modules (configure loaders, parser options, etc.)
+ {
+ test: /\.jsx?$/,
+ include: [
+ path.resolve(__dirname, "app")
+ ],
+ exclude: [
+ path.resolve(__dirname, "app/demo-files")
+ ],
+ // these are matching conditions, each accepting a regular expression or string
+ // test and include have the same behavior, both must be matched
+ // exclude must not be matched (takes preferrence over test and include)
+ // Best practices:
+ // - Use RegExp only in test and for filename matching
+ // - Use arrays of absolute paths in include and exclude
+ // - Try to avoid exclude and prefer include
+ issuer: { test, include, exclude },
+ // conditions for the issuer (the origin of the import)
+ enforce: "pre",
+ enforce: "post",
+ // flags to apply these rules, even if they are overridden (advanced option)
+ loader: "babel-loader",
+ // the loader which should be applied, it'll be resolved relative to the context
+ // -loader suffix is no longer optional in webpack2 for clarity reasons
+ // see webpack 1 upgrade guide
+ options: {
+ presets: ["es2015"]
+ },
+ // options for the loader
+ },
+ {
+ test: /\.html$/,
+ use: [
+ // apply multiple loaders and options
+ "htmllint-loader",
+ {
+ loader: "html-loader",
+ options: {
+ /* ... */
+ }
+ }
+ ]
+ },
+ { oneOf: [ /* rules */ ] },
+ // only use one of these nested rules
+ { rules: [ /* rules */ ] },
+ // use all of these nested rules (combine with conditions to be useful)
+ { resource: { and: [ /* conditions */ ] } },
+ // matches only if all conditions are matched
+ { resource: { or: [ /* conditions */ ] } },
+ { resource: [ /* conditions */ ] },
+ // matches if any condition is matched (default for arrays)
+ { resource: { not: /* condition */ } }
+ // matches if the condition is not matched
+ ],
+
+
+ /* Advanced module configuration (click to show) */
+
+ noParse: [
+ /special-library\.js$/
+ ],
+ // do not parse this module
+ unknownContextRequest: ".",
+ unknownContextRecursive: true,
+ unknownContextRegExp: /^\.\/.*$/,
+ unknownContextCritical: true,
+ exprContextRequest: ".",
+ exprContextRegExp: /^\.\/.*$/,
+ exprContextRecursive: true,
+ exprContextCritical: true,
+ wrappedContextRegExp: /.*/,
+ wrappedContextRecursive: true,
+ wrappedContextCritical: false,
+ // specifies default behavior for dynamic requests
+
+ },
+ resolve: {
+ // options for resolving module requests
+ // (does not apply to resolving to loaders)
+ modules: [
+ "node_modules",
+ path.resolve(__dirname, "app")
+ ],
+ // directories where to look for modules
+ extensions: [".js", ".json", ".jsx", ".css"],
+ // extensions that are used
+ alias: {
+ // a list of module name aliases
+ "module": "new-module",
+ // alias "module" -> "new-module" and "module/path/file" -> "new-module/path/file"
+ "only-module$": "new-module",
+ // alias "only-module" -> "new-module", but not "only-module/path/file" -> "new-module/path/file"
+ "module": path.resolve(__dirname, "app/third/module.js"),
+ // alias "module" -> "./app/third/module.js" and "module/file" results in error
+ // modules aliases are imported relative to the current context
+ },
+
+
+ /* Alternative alias syntax (click to show) */
+
+ alias: [
+ {
+ name: "module",
+ // the old request
+ alias: "new-module",
+ // the new request
+ onlyModule: true
+ // if true only "module" is aliased
+ // if false "module/inner/path" is also aliased
+ }
+ ],
+
+
+
+ /* Advanced resolve configuration (click to show) */
+
+ symlinks: true,
+ // follow symlinks to new location
+ descriptionFiles: ["package.json"],
+ // files that are read for package description
+ mainFields: ["main"],
+ // properties that are read from description file
+ // when a folder is requested
+ aliasFields: ["browser"],
+ // properites that are read from description file
+ // to alias requests in this package
+ enforceExtension: false,
+ // if true request must not include an extensions
+ // if false request may already include an extension
+ moduleExtensions: ["-module"],
+ enforceModuleExtension: false,
+ // like extensions/enforceExtension but for module names instead of files
+ unsafeCache: true,
+ unsafeCache: {},
+ // enables caching for resolved requests
+ // this is unsafe as folder structure may change
+ // but performance improvement is really big
+ cachePredicate: (path, request) => true,
+ // predicate function which selects requests for caching
+ plugins: [
+ // ...
+ ]
+ // additional plugins applied to the resolver
+
+ },
+ performance: {
+
+
+ hints: "warning", // enum
+
+ hints: "error", // emit errors for perf hints
+ hints: false, // turn off perf hints
+
+ maxAssetSize: 200000, // int (in bytes),
+ maxEntrypointSize: 400000, // int (in bytes)
+ assetFilter: function(assetFilename) {
+ // Function predicate that provides asset filenames
+ return assetFilename.endsWith('.css') || assetFilename.endsWith('.js');
+ }
+ },
+
+
+ devtool: "source-map", // enum
+
+ devtool: "inline-source-map", // inlines SourceMap into original file
+ devtool: "eval-source-map", // inlines SourceMap per module
+ devtool: "hidden-source-map", // SourceMap without reference in original file
+ devtool: "cheap-source-map", // cheap-variant of SourceMap without module mappings
+ devtool: "cheap-module-source-map", // cheap-variant of SourceMap with module mappings
+ devtool: "eval", // no SourceMap, but named modules. Fastest at the expense of detail.
+
+ // enhance debugging by adding meta info for the browser devtools
+ // source-map most detailed at the expense of build speed.
+ context: __dirname, // string (absolute path!)
+ // the home directory for webpack
+ // the entry and module.rules.loader option
+ // is resolved relative to this directory
+
+
+ target: "web", // enum
+
+ target: "webworker", // WebWorker
+ target: "node", // Node.js via require
+ target: "async-node", // Node.js via fs and vm
+ target: "node-webkit", // nw.js
+ target: "electron-main", // electron, main process
+ target: "electron-renderer", // electron, renderer process
+ target: (compiler) => { /* ... */ }, // custom
+
+ // the environment in which the bundle should run
+ // changes chunk loading behavior and available modules
+
+
+ externals: ["react", /^@angular/],
+
+ externals: "react", // string (exact match)
+ externals: /^[a-z\-]+($|\/)/, // Regex
+ externals: { // object
+ angular: "this angular", // this["angular"]
+ react: { // UMD
+ commonjs: "react",
+ commonjs2: "react",
+ amd: "react",
+ root: "React"
+ }
+ },
+ externals: (request) => { /* ... */ return "commonjs " + request }
+
+ // Don't follow/bundle these modules, but request them at runtime from the environment
+ serve: { //object
+ port: 1337,
+ content: './dist',
+ // ...
+ },
+ // lets you provide options for webpack-serve
+
+
+ stats: "errors-only",
+
+ stats: { //object
+ assets: true,
+ colors: true,
+ errors: true,
+ errorDetails: true,
+ hash: true,
+ // ...
+ },
+
+ // lets you precisely control what bundle information gets displayed
+ devServer: {
+ proxy: { // proxy URLs to backend development server
+ '/api': 'http://localhost:3000'
+ },
+ contentBase: path.join(__dirname, 'public'), // boolean | string | array, static file location
+ compress: true, // enable gzip compression
+ historyApiFallback: true, // true for index.html upon 404, object for multiple paths
+ hot: true, // hot module replacement. Depends on HotModuleReplacementPlugin
+ https: false, // true for self-signed, object for cert authority
+ noInfo: true, // only errors & warns on hot reload
+ // ...
+ },
+ plugins: [
+ // ...
+ ],
+ // list of additional plugins
+
+
+ /* Advanced configuration (click to show) */
+
+ resolveLoader: { /* same as resolve */ }
+ // separate resolve options for loaders
+ parallelism: 1, // number
+ // limit the number of parallel processed modules
+ profile: true, // boolean
+ // capture timing information
+ bail: true, //boolean
+ // fail out on the first error instead of tolerating it.
+ cache: false, // boolean
+ // disable/enable caching
+ watch: true, // boolean
+ // enables watching
+ watchOptions: {
+ aggregateTimeout: 1000, // in ms
+ // aggregates multiple changes to a single rebuild
+ poll: true,
+ poll: 500, // intervall in ms
+ // enables polling mode for watching
+ // must be used on filesystems that doesn't notify on change
+ // i. e. nfs shares
+ },
+ node: {
+ // Polyfills and mocks to run Node.js-
+ // environment code in non-Node environments.
+ console: false, // boolean | "mock"
+ global: true, // boolean | "mock"
+ process: true, // boolean
+ __filename: "mock", // boolean | "mock"
+ __dirname: "mock", // boolean | "mock"
+ Buffer: true, // boolean | "mock"
+ setImmediate: true // boolean | "mock" | "empty"
+ },
+ recordsPath: path.resolve(__dirname, "build/records.json"),
+ recordsInputPath: path.resolve(__dirname, "build/records.json"),
+ recordsOutputPath: path.resolve(__dirname, "build/records.json"),
+ // TODO
+
+```
+
+T> Want to rapidly generate webpack configuration file for your project requirements with few clicks away.
+
+[Generate Custom Webpack Configuration](https://generatewebpackconfig.netlify.com/) is an interactive portal you can play around by selecting custom webpack configuration options tailored for your frontend project. It automatically generates
+a minimal webpack configuration based on your selection of loaders/plugins, etc.
+
+[Visual tool for creating webpack configs](https://webpack.jakoblind.no/) is an online configuration tool for creating webpack config where you can select any combination of features you need. It also generates a full example project based on your webpack configs.
diff --git a/src/utilities/content-utils.js b/src/utilities/content-utils.js
index 85925d0121e1..35451f58a41d 100644
--- a/src/utilities/content-utils.js
+++ b/src/utilities/content-utils.js
@@ -61,7 +61,7 @@ export const extractSections = tree => {
* @return {array} - All markdown descendants of the given `tree`
*/
export const extractPages = tree => {
- return flattenContent(tree).filter(item => item.extension === '.md');
+ return flattenContent(tree).filter(item => item.extension === '.md' || item.extension === '.mdx');
};
/**
diff --git a/webpack.common.js b/webpack.common.js
index 0d6adfb7eb6c..4713d7dc0255 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -4,6 +4,40 @@ const webpack = require('webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
+const mdPlugins = [
+ require('remark-slug'),
+ require('remark-mermaid'),
+ [
+ require('remark-custom-blockquotes'),
+ {
+ mapping: {
+ 'T>': 'tip',
+ 'W>': 'warning',
+ '?>': 'todo'
+ }
+ }
+ ],
+ [
+ require('@rigor789/remark-autolink-headings'),
+ {
+ behaviour: 'append'
+ }
+ ],
+ [
+ require('remark-responsive-tables'),
+ {
+ classnames: {
+ title: 'title',
+ description: 'description',
+ content: 'content',
+ mobile: 'mobile',
+ desktop: 'desktop'
+ }
+ }
+ ],
+ require('remark-refractor')
+];
+
module.exports = (env = {}) => ({
context: path.resolve(__dirname, './src'),
entry: {
@@ -20,44 +54,24 @@ module.exports = (env = {}) => ({
},
module: {
rules: [
+ {
+ test: /\.mdx$/,
+ use: [
+ 'babel-loader',
+ {
+ loader: '@mdx-js/loader',
+ options: {
+ mdPlugins
+ }
+ }
+ ]
+ },
{
test: /\.md$/,
use: {
loader: 'remark-loader',
options: {
- plugins: [
- require('remark-slug'),
- require('remark-mermaid'),
- require('remark-refractor'),
- [
- require('remark-custom-blockquotes'),
- {
- mapping: {
- 'T>': 'tip',
- 'W>': 'warning',
- '?>': 'todo'
- }
- }
- ],
- [
- require('@rigor789/remark-autolink-headings'),
- {
- behaviour: 'append'
- }
- ],
- [
- require('remark-responsive-tables'),
- {
- classnames: {
- title: 'title',
- description: 'description',
- content: 'content',
- mobile: 'mobile',
- desktop: 'desktop'
- }
- }
- ]
- ]
+ plugins: mdPlugins
}
}
},
diff --git a/webpack.dev.js b/webpack.dev.js
index 58c4af257798..0e006e7023c8 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -32,7 +32,7 @@ module.exports = env => merge(common(env), {
new DirectoryTreePlugin({
dir: 'src/content',
path: 'src/_content.json',
- extensions: /\.md/,
+ extensions: /\.mdx?/,
enhance,
filter,
sort
diff --git a/yarn.lock b/yarn.lock
index e29d2e0c29ec..9814cb423e71 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,20 @@
# yarn lockfile v1
+"@iamstarkov/listr-update-renderer@0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz#d7c48092a2dcf90fd672b6c8b458649cb350c77e"
+ integrity sha512-IJyxQWsYDEkf8C8QthBn5N8tIUR9V9je6j3sMIpAkonaadjbvxmRC6RAhpa3RKxndhNnU2M6iNbtJwd7usQYIA==
+ dependencies:
+ chalk "^1.1.3"
+ cli-truncate "^0.2.1"
+ elegant-spinner "^1.0.1"
+ figures "^1.7.0"
+ indent-string "^3.0.0"
+ log-symbols "^1.0.2"
+ log-update "^2.3.0"
+ strip-ansi "^3.0.1"
+
"@mapbox/hast-util-table-cell-style@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.1.3.tgz#5b7166ae01297d72216932b245e4b2f0b642dca6"
@@ -9,6 +23,38 @@
dependencies:
unist-util-visit "^1.3.0"
+"@mdx-js/loader@0.15.7":
+ version "0.15.7"
+ resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-0.15.7.tgz#dd184301607579b3aa5021dc50e2ae2a04e478dc"
+ integrity sha512-0I+mXEfKYDFOEG9gYeBe/QRF1Sdffb+UqOUIPcY5SjS9BkqtkSUHPjC4WgfDVAY+PI4cMWs3B2Fzn4p4ScyBew==
+ dependencies:
+ "@mdx-js/mdx" "^0.15.7"
+ "@mdx-js/tag" "^0.15.6"
+ loader-utils "^1.1.0"
+
+"@mdx-js/mdx@0.15.7", "@mdx-js/mdx@^0.15.7":
+ version "0.15.7"
+ resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-0.15.7.tgz#5fde5841d7b6f4c78f80c19fff559532af5ce5ad"
+ integrity sha512-bWUQidQhjTRFh5nK01kW3qQLCH/aCq6VTapOZ/+WI5hL4exoRw6TgnxxmgSf/p7mmrGxIpCHmnaWXdbHSObxlg==
+ dependencies:
+ change-case "^3.0.2"
+ detab "^2.0.0"
+ mdast-util-to-hast "^3.0.0"
+ remark-parse "^5.0.0"
+ remark-squeeze-paragraphs "^3.0.1"
+ to-style "^1.3.3"
+ unified "^6.1.6"
+ unist-util-visit "^1.3.0"
+
+"@mdx-js/tag@^0.15.6":
+ version "0.15.6"
+ resolved "https://registry.yarnpkg.com/@mdx-js/tag/-/tag-0.15.6.tgz#1a0aa575d5c9ac2b082631ca3e733034272114c1"
+ integrity sha512-u1H93/n7t2XE69fWiKIQIcnSHIHV9LgOew09rrzu+ceF+TK8jMacE2FxW09lQDUyL/Rat3fJDS4dQdTY8g/ZdQ==
+ dependencies:
+ create-react-context "^0.2.2"
+ hoist-non-react-statics "^2.5.5"
+ prop-types "^15.6.1"
+
"@octokit/rest@^15.9.4":
version "15.18.1"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.18.1.tgz#ec7fb0f8775ef64dc095fae6635411d3fbff9b62"
@@ -38,16 +84,38 @@
dependencies:
any-observable "^0.3.0"
+"@types/node@*":
+ version "10.12.15"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.15.tgz#20e85651b62fd86656e57c9c9bc771ab1570bc59"
+ integrity sha512-9kROxduaN98QghwwHmxXO2Xz3MaWf+I1sLVAA6KJDF5xix+IyXVhds0MAfdNwtcpSrzhaTsNB0/jnL86fgUhqA==
+
"@types/q@^1.5.1":
version "1.5.1"
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18"
integrity sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==
-"@types/unist@^2.0.2":
+"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.2.tgz#5dc0a7f76809b7518c0df58689cd16a19bd751c6"
integrity sha512-iHI60IbyfQilNubmxsq4zqSjdynlmc2Q/QvH9kjzg9+CCYVVzq1O6tc7VBzSygIwnmOt07w80IG6HDQvjv3Liw==
+"@types/vfile-message@*":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz#e1e9895cc6b36c462d4244e64e6d0b6eaf65355a"
+ integrity sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA==
+ dependencies:
+ "@types/node" "*"
+ "@types/unist" "*"
+
+"@types/vfile@^3.0.0":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9"
+ integrity sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==
+ dependencies:
+ "@types/node" "*"
+ "@types/unist" "*"
+ "@types/vfile-message" "*"
+
abab@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f"
@@ -1595,7 +1663,7 @@ callsites@^2.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
-camel-case@3.0.x:
+camel-case@3.0.x, camel-case@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
@@ -1709,6 +1777,30 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+change-case@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037"
+ integrity sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==
+ dependencies:
+ camel-case "^3.0.0"
+ constant-case "^2.0.0"
+ dot-case "^2.1.0"
+ header-case "^1.0.0"
+ is-lower-case "^1.1.0"
+ is-upper-case "^1.1.0"
+ lower-case "^1.1.1"
+ lower-case-first "^1.0.0"
+ no-case "^2.3.2"
+ param-case "^2.1.0"
+ pascal-case "^2.0.0"
+ path-case "^2.1.0"
+ sentence-case "^2.1.0"
+ snake-case "^2.1.0"
+ swap-case "^1.1.0"
+ title-case "^2.1.0"
+ upper-case "^1.1.1"
+ upper-case-first "^1.1.0"
+
character-entities-html4@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610"
@@ -2142,6 +2234,14 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+constant-case@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46"
+ integrity sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=
+ dependencies:
+ snake-case "^2.1.0"
+ upper-case "^1.1.1"
+
constants-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
@@ -2225,6 +2325,15 @@ corser@~2.0.0:
resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87"
integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=
+cosmiconfig@5.0.6:
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
+ integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==
+ dependencies:
+ is-directory "^0.3.1"
+ js-yaml "^3.9.0"
+ parse-json "^4.0.0"
+
cosmiconfig@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
@@ -2235,7 +2344,7 @@ cosmiconfig@^4.0.0:
parse-json "^4.0.0"
require-from-string "^2.0.1"
-cosmiconfig@^5.0.0, cosmiconfig@^5.0.2, cosmiconfig@^5.0.7:
+cosmiconfig@^5.0.0, cosmiconfig@^5.0.7:
version "5.0.7"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04"
integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==
@@ -2292,6 +2401,14 @@ create-react-class@^15.5.1, create-react-class@^15.6.0:
loose-envify "^1.3.1"
object-assign "^4.1.1"
+create-react-context@^0.2.2:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3"
+ integrity sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==
+ dependencies:
+ fbjs "^0.8.0"
+ gud "^1.0.0"
+
createerror@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/createerror/-/createerror-1.1.0.tgz#2a711f589cc7ca38586414398856b8a30ea4a06b"
@@ -2697,7 +2814,7 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
-debug@^4.1.0:
+debug@^4.0.1, debug@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
@@ -2872,19 +2989,14 @@ dir-glob@^2.0.0:
arrify "^1.0.1"
path-type "^3.0.0"
-directory-tree-webpack-plugin@^0.3.1:
+directory-tree-webpack-plugin@0.3:
version "0.3.1"
resolved "https://registry.yarnpkg.com/directory-tree-webpack-plugin/-/directory-tree-webpack-plugin-0.3.1.tgz#4f84ad17504125472912534bafb250eba3ada9f2"
integrity sha512-lXzTMN4URJjgcb+3MxZxgrfuJuIdQ7PU4LgL09zwGgF13pRUZWdEu5tHKhcYD2LafR8uNQ4sZqGCIXHYMeFbSQ==
dependencies:
directory-tree "^2.0.0"
-directory-tree@2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/directory-tree/-/directory-tree-2.1.0.tgz#e0c1a66f625481aaf7d603741f0d3d93cdd4867a"
- integrity sha1-4MGmb2JUgar31gN0Hw09k83Uhno=
-
-directory-tree@^2.0.0:
+directory-tree@2.2.0, directory-tree@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/directory-tree/-/directory-tree-2.2.0.tgz#bfa239d47c26cf3edde52ddebd037911f51c6ee0"
integrity sha512-ZHQDIK7NHy0xokdR9sE0h+YfN2unwjLK6CwofJ6NpMuQVEcTZqjTeiTgmx60ieJkngZYkVFAVGiihE4hwpkJeQ==
@@ -2995,7 +3107,7 @@ domhandler@2.1:
dependencies:
domelementtype "1"
-domhandler@^2.3.0:
+domhandler@^2.3.0, domhandler@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
@@ -3025,6 +3137,13 @@ domutils@^1.5.1, domutils@^1.7.0:
dom-serializer "0"
domelementtype "1"
+dot-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee"
+ integrity sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=
+ dependencies:
+ no-case "^2.2.0"
+
dot-prop@^4.1.0, dot-prop@^4.1.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
@@ -3289,7 +3408,7 @@ escape-html@~1.0.3:
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
@@ -3546,19 +3665,6 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-execa@^0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01"
- integrity sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
execa@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
@@ -3777,7 +3883,7 @@ fbjs@^0.6.1:
ua-parser-js "^0.7.9"
whatwg-fetch "^0.9.0"
-fbjs@^0.8.9:
+fbjs@^0.8.0, fbjs@^0.8.9:
version "0.8.17"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
@@ -4144,6 +4250,15 @@ functional-red-black-tree@^1.0.1:
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+g-status@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97"
+ integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==
+ dependencies:
+ arrify "^1.0.1"
+ matcher "^1.0.0"
+ simple-git "^1.85.0"
+
gather-stream@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b"
@@ -4448,6 +4563,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
+gud@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
+ integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
+
handle-thing@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
@@ -4629,6 +4749,14 @@ he@1.2.x, he@^1.1.1:
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+header-case@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d"
+ integrity sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=
+ dependencies:
+ no-case "^2.2.0"
+ upper-case "^1.1.3"
+
hex-color-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
@@ -4662,7 +4790,7 @@ hogan.js@^3.0.2:
mkdirp "0.3.0"
nopt "1.0.10"
-hoist-non-react-statics@^2.5.0:
+hoist-non-react-statics@^2.5.0, hoist-non-react-statics@^2.5.5:
version "2.5.5"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
@@ -4741,6 +4869,17 @@ html-minifier@^3.2.3, html-minifier@^3.5.8:
relateurl "0.2.x"
uglify-js "3.4.x"
+html-to-react@^1.3.3:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.3.4.tgz#647b3a54fdec73a6461864b129fb0d1eec7d4589"
+ integrity sha512-/tWDdb/8Koi/QEP5YUY1653PcDpBnnMblXRhotnTuhFDjI1Fc6Wzox5d4sw73Xk5rM2OdM5np4AYjT/US/Wj7Q==
+ dependencies:
+ domhandler "^2.4.2"
+ escape-string-regexp "^1.0.5"
+ htmlparser2 "^3.10.0"
+ lodash.camelcase "^4.3.0"
+ ramda "^0.26"
+
html-void-elements@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.3.tgz#956707dbecd10cf658c92c5d27fee763aa6aa982"
@@ -4763,7 +4902,7 @@ html-webpack-template@^6.1.0:
resolved "https://registry.yarnpkg.com/html-webpack-template/-/html-webpack-template-6.2.0.tgz#3c9f15f616f4500927909d34adfbccb20d37943c"
integrity sha512-wyzIjbe9yXGyQ6yAeFjWmku7YOlW85w1dxqLnAQ564uRNNoBhpZVTQl7ouROoyQrfZUSoPUJiw7oWn31NDiuQQ==
-htmlparser2@^3.9.1:
+htmlparser2@^3.10.0, htmlparser2@^3.9.1:
version "3.10.0"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464"
integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==
@@ -5187,6 +5326,11 @@ is-buffer@^1.1.4, is-buffer@^1.1.5:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+is-buffer@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
+ integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==
+
is-builtin-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
@@ -5362,6 +5506,13 @@ is-installed-globally@^0.1.0:
global-dirs "^0.1.0"
is-path-inside "^1.0.0"
+is-lower-case@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393"
+ integrity sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=
+ dependencies:
+ lower-case "^1.1.0"
+
is-nan@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz#9faf65b6fb6db24b7f5c0628475ea71f988401e2"
@@ -5514,6 +5665,13 @@ is-typedarray@~1.0.0:
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+is-upper-case@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f"
+ integrity sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=
+ dependencies:
+ upper-case "^1.1.0"
+
is-utf8@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
@@ -5861,22 +6019,25 @@ linkify-it@^2.0.0:
dependencies:
uc.micro "^1.0.1"
-lint-staged@^7.2.0:
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.3.0.tgz#90ff33e5ca61ed3dbac35b6f6502dbefdc0db58d"
- integrity sha512-AXk40M9DAiPi7f4tdJggwuKIViUplYtVj1os1MVEteW7qOkU50EOehayCfO9TsoGK24o/EsWb41yrEgfJDDjCw==
+lint-staged@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.0.tgz#dbc3ae2565366d8f20efb9f9799d076da64863f2"
+ integrity sha512-yfSkyJy7EuVsaoxtUSEhrD81spdJOe/gMTGea3XaV7HyoRhTb9Gdlp6/JppRZERvKSEYXP9bjcmq6CA5oL2lYQ==
dependencies:
+ "@iamstarkov/listr-update-renderer" "0.4.1"
chalk "^2.3.1"
commander "^2.14.1"
- cosmiconfig "^5.0.2"
+ cosmiconfig "5.0.6"
debug "^3.1.0"
dedent "^0.7.0"
- execa "^0.9.0"
+ del "^3.0.0"
+ execa "^1.0.0"
find-parent-dir "^0.3.0"
+ g-status "^2.0.2"
is-glob "^4.0.0"
is-windows "^1.0.2"
jest-validate "^23.5.0"
- listr "^0.14.1"
+ listr "^0.14.2"
lodash "^4.17.5"
log-symbols "^2.2.0"
micromatch "^3.1.8"
@@ -5885,7 +6046,7 @@ lint-staged@^7.2.0:
path-is-inside "^1.0.2"
pify "^3.0.0"
please-upgrade-node "^3.0.2"
- staged-git-files "1.1.1"
+ staged-git-files "1.1.2"
string-argv "^0.0.2"
stringify-object "^3.2.2"
@@ -5918,7 +6079,7 @@ listr-verbose-renderer@^0.5.0:
date-fns "^1.27.2"
figures "^2.0.0"
-listr@^0.14.1:
+listr@^0.14.2:
version "0.14.3"
resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
@@ -6248,7 +6409,14 @@ loud-rejection@^1.0.0:
currently-unhandled "^0.4.1"
signal-exit "^3.0.0"
-lower-case@^1.1.1:
+lower-case-first@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1"
+ integrity sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=
+ dependencies:
+ lower-case "^1.1.2"
+
+lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
@@ -6321,13 +6489,13 @@ markdown-it@8.4.2:
mdurl "^1.0.1"
uc.micro "^1.0.5"
-markdown-loader@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/markdown-loader/-/markdown-loader-2.0.2.tgz#1cdcf11307658cd611046d7db34c2fe80542af7c"
- integrity sha512-v/ej7DflZbb6t//3Yu9vg0T+sun+Q9EoqggifeyABKfvFROqPwwwpv+hd1NKT2QxTRg6VCFk10IIJcMI13yCoQ==
+markdown-loader@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/markdown-loader/-/markdown-loader-4.0.0.tgz#502eb94f5db1673beb1721bed82dac9e1d333b9a"
+ integrity sha512-9BCm8iyLF4AVYtjtybOTg8cTcpWYKsDGWWhsc7XaJlXQiddo3ztbZxLPJ28pmCxFI1BlMkT1wDVav1chPjTpdA==
dependencies:
loader-utils "^1.1.0"
- marked "^0.3.9"
+ marked "^0.5.0"
markdown-table@^1.1.0:
version "1.1.2"
@@ -6362,11 +6530,23 @@ markdownlint@^0.11.0, markdownlint@~0.11.0:
dependencies:
markdown-it "8.4.2"
-marked@^0.3.5, marked@^0.3.7, marked@^0.3.9:
+marked@^0.3.5:
version "0.3.19"
resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790"
integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==
+marked@^0.5.0, marked@^0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/marked/-/marked-0.5.2.tgz#3efdb27b1fd0ecec4f5aba362bddcd18120e5ba9"
+ integrity sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA==
+
+matcher@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2"
+ integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==
+ dependencies:
+ escape-string-regexp "^1.0.4"
+
math-expression-evaluator@^1.2.14:
version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
@@ -6386,11 +6566,25 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+mdast-add-list-metadata@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf"
+ integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==
+ dependencies:
+ unist-util-visit-parents "1.1.2"
+
mdast-comment-marker@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.0.3.tgz#1ead204b73e8759d29785ef3024a1e43510d38e5"
integrity sha512-FZXxBBYeJ/R6k9zgyVGygHWka6FDJdzSbP6kcvB+L4Yqz62po57rZlnA2I14LIKsb3XPEky4vgP0Y83tZXTw7Q==
+mdast-squeeze-paragraphs@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-3.0.4.tgz#e27affcc8cc854842ff504ebb8f380e3c8e131f8"
+ integrity sha512-sUu55X5JWisBqfiq2pwQv4SnLb11EBua0NWjvcl6WORfV18MdWoyODE2tS4pyqjwXbFTaq3y3Ca/4OMNvx8B0Q==
+ dependencies:
+ unist-util-remove "^1.0.0"
+
mdast-util-compact@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz#c12ebe16fffc84573d3e19767726de226e95f649"
@@ -6853,7 +7047,7 @@ nlcst-to-string@^2.0.0:
resolved "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-2.0.2.tgz#7125af4d4d369850c697192a658f01f36af9937b"
integrity sha512-DV7wVvMcAsmZ5qEwvX1JUNF4lKkAAKbChwNlIH7NLsPR7LWWoeIt53YlZ5CQH5KDXEXQ9Xa3mw0PbPewymrtew==
-no-case@^2.2.0:
+no-case@^2.2.0, no-case@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
@@ -7416,7 +7610,7 @@ parallel-transform@^1.1.0:
inherits "^2.0.3"
readable-stream "^2.1.5"
-param-case@2.1.x:
+param-case@2.1.x, param-case@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
@@ -7500,6 +7694,14 @@ parseurl@^1.3.2, parseurl@~1.3.2:
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=
+pascal-case@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e"
+ integrity sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=
+ dependencies:
+ camel-case "^3.0.0"
+ upper-case-first "^1.1.0"
+
pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
@@ -7515,6 +7717,13 @@ path-browserify@0.0.0:
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=
+path-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5"
+ integrity sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=
+ dependencies:
+ no-case "^2.2.0"
+
path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
@@ -8546,6 +8755,11 @@ quotation@^1.0.0, quotation@^1.0.1:
resolved "https://registry.yarnpkg.com/quotation/-/quotation-1.1.1.tgz#b599a2b7361a566086458014fda9d6b00326f169"
integrity sha512-bjz7kEsfg6D3uMeed+VbeypnooGlX7enMnDbx0KLYEEM8J1k24jk2pc+1nyQ1sExnERz8xKXRSZ0EYNIwLM83g==
+ramda@^0.26:
+ version "0.26.1"
+ resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
+ integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
+
randomatic@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
@@ -8651,6 +8865,19 @@ react-lifecycles-compat@^3.0.4:
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
+react-markdown@4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-4.0.4.tgz#bdc882bc3eb4dfac45d57bfe58d8f482c5a85a64"
+ integrity sha512-G2dpkraP12A/1xZ1oJgm0hop213kscc7jMY0hqlx9VgxJ+5Jda1C+E+HVFL8PL0WGMVxgh95ksQzFXYGBcnQ9g==
+ dependencies:
+ html-to-react "^1.3.3"
+ mdast-add-list-metadata "1.0.1"
+ prop-types "^15.6.1"
+ remark-parse "^5.0.0"
+ unified "^6.1.5"
+ unist-util-visit "^1.3.0"
+ xtend "^4.0.1"
+
react-redux@^4.4.0:
version "4.4.9"
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-4.4.9.tgz#8ca6d4670925a454ce67086c2305e9630670909a"
@@ -8703,6 +8930,11 @@ react-textarea-autosize@^5.2.1:
dependencies:
prop-types "^15.6.0"
+react-tiny-popover@3.4.2:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/react-tiny-popover/-/react-tiny-popover-3.4.2.tgz#ceee5662a3af64d4a9c3d46a28d71bb6f21738ee"
+ integrity sha512-3lH+GHvyJbjHNg14B7Md8bpUapQ5W3s8IdBFguODjrgEV1+LWrKOmVrpe8xhIQDOkgkiDfLwMVgsI7BQM9Udpg==
+
react@^0.14.7:
version "0.14.9"
resolved "https://registry.yarnpkg.com/react/-/react-0.14.9.tgz#9110a6497c49d44ba1c0edd317aec29c2e0d91d1"
@@ -9131,6 +9363,27 @@ remark-parse@^5.0.0:
vfile-location "^2.0.0"
xtend "^4.0.1"
+remark-parse@^6.0.0:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz#c99131052809da482108413f87b0ee7f52180a3a"
+ integrity sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==
+ dependencies:
+ collapse-white-space "^1.0.2"
+ is-alphabetical "^1.0.0"
+ is-decimal "^1.0.0"
+ is-whitespace-character "^1.0.0"
+ is-word-character "^1.0.0"
+ markdown-escapes "^1.0.0"
+ parse-entities "^1.1.0"
+ repeat-string "^1.5.4"
+ state-toggle "^1.0.0"
+ trim "0.0.1"
+ trim-trailing-lines "^1.0.0"
+ unherit "^1.0.4"
+ unist-util-remove-position "^1.0.0"
+ vfile-location "^2.0.0"
+ xtend "^4.0.1"
+
remark-react@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/remark-react/-/remark-react-4.0.3.tgz#980938f3bcc93bef220215b26b0b0a80f3158c7d"
@@ -9141,10 +9394,10 @@ remark-react@^4.0.0:
hast-util-sanitize "^1.0.0"
mdast-util-to-hast "^3.0.0"
-remark-refractor@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/remark-refractor/-/remark-refractor-1.0.0.tgz#d9102af70a92abc56d8de07e54f69b1770fb045a"
- integrity sha512-4R3nP+OAB/elBoNQmY9HOXuO2N+EmADGkhGdW24AsMMAKFj0P+FfL1x/vsaKG+UdKZHUA7VTwhSeWWisqjieTw==
+remark-refractor@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remark-refractor/-/remark-refractor-1.1.0.tgz#efc5dd599494387e6b8952916014ec79deea6559"
+ integrity sha512-EKlPS92ymM852QQKOzyVEs/UcdMKe0f7A1FfHle2NCHsvrCFPdb4uQly0BReF3mb61zrVRNyILtngezQwWr0Yw==
dependencies:
prism-languages "0.4.0"
refractor "2.4.1"
@@ -9173,6 +9426,13 @@ remark-slug@^5.0.0:
mdast-util-to-string "^1.0.0"
unist-util-visit "^1.0.0"
+remark-squeeze-paragraphs@^3.0.1:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-3.0.3.tgz#299d8db7d44008c9ae240dbf6d1f55b8b0f924ce"
+ integrity sha512-eDvjtwFa9eClqb7XgdF/1H9Pfs2LPnf/P3eRs9ucYAWUuv4WO8ZOVAUeT/1h66rQvghnfctz9au+HEmoKcdoqA==
+ dependencies:
+ mdast-squeeze-paragraphs "^3.0.0"
+
remark-stringify@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-4.0.0.tgz#4431884c0418f112da44991b4e356cfe37facd87"
@@ -9193,10 +9453,10 @@ remark-stringify@^4.0.0:
unherit "^1.0.4"
xtend "^4.0.1"
-remark-stringify@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz#336d3a4d4a6a3390d933eeba62e8de4bd280afba"
- integrity sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==
+remark-stringify@^6.0.0:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz#16ac229d4d1593249018663c7bddf28aafc4e088"
+ integrity sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==
dependencies:
ccount "^1.0.0"
is-alphanumeric "^1.0.0"
@@ -9213,6 +9473,15 @@ remark-stringify@^5.0.0:
unherit "^1.0.4"
xtend "^4.0.1"
+remark@^10.0.1:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz#3058076dc41781bf505d8978c291485fe47667df"
+ integrity sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==
+ dependencies:
+ remark-parse "^6.0.0"
+ remark-stringify "^6.0.0"
+ unified "^7.0.0"
+
remark@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/remark/-/remark-8.0.0.tgz#287b6df2fe1190e263c1d15e486d3fa835594d6d"
@@ -9222,15 +9491,6 @@ remark@^8.0.0:
remark-stringify "^4.0.0"
unified "^6.0.0"
-remark@^9.0.0:
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60"
- integrity sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==
- dependencies:
- remark-parse "^5.0.0"
- remark-stringify "^5.0.0"
- unified "^6.0.0"
-
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -9652,6 +9912,14 @@ send@0.16.2:
range-parser "~1.2.0"
statuses "~1.4.0"
+sentence-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4"
+ integrity sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=
+ dependencies:
+ no-case "^2.2.0"
+ upper-case-first "^1.1.2"
+
serialize-javascript@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe"
@@ -9779,6 +10047,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+simple-git@^1.85.0:
+ version "1.107.0"
+ resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz#12cffaf261c14d6f450f7fdb86c21ccee968b383"
+ integrity sha512-t4OK1JRlp4ayKRfcW6owrWcRVLyHRUlhGd0uN6ZZTqfDq8a5XpcUdOKiGRNobHEuMtNqzp0vcJNvhYWwh5PsQA==
+ dependencies:
+ debug "^4.0.1"
+
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
@@ -9843,6 +10118,13 @@ sliced@^1.0.1:
resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=
+snake-case@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f"
+ integrity sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=
+ dependencies:
+ no-case "^2.2.0"
+
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -10101,10 +10383,10 @@ stack-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
-staged-git-files@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.1.tgz#37c2218ef0d6d26178b1310719309a16a59f8f7b"
- integrity sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==
+staged-git-files@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b"
+ integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA==
state-toggle@^1.0.0:
version "1.0.1"
@@ -10472,6 +10754,14 @@ sw-toolbox@^3.4.0:
path-to-regexp "^1.0.1"
serviceworker-cache-polyfill "^4.0.0"
+swap-case@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3"
+ integrity sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=
+ dependencies:
+ lower-case "^1.1.1"
+ upper-case "^1.1.1"
+
symbol-observable@^1.0.3, symbol-observable@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
@@ -10503,7 +10793,7 @@ tap-parser@^7.0.0:
js-yaml "^3.2.7"
minipass "^2.2.0"
-"tap-render@github:Munter/tap-render#0.1.7-patch4":
+tap-render@Munter/tap-render#0.1.7-patch4:
version "0.1.7"
resolved "https://codeload.github.com/Munter/tap-render/tar.gz/c3a72d6260ee19cfd340d1e41d73a0edfdb29d94"
dependencies:
@@ -10644,6 +10934,14 @@ tinydate@^1.0.0:
resolved "https://registry.yarnpkg.com/tinydate/-/tinydate-1.0.0.tgz#20f31756a13959ef8c57ec133ba29b5ade042cac"
integrity sha1-IPMXVqE5We+MV+wTO6KbWt4ELKw=
+title-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa"
+ integrity sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=
+ dependencies:
+ no-case "^2.2.0"
+ upper-case "^1.0.3"
+
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -10691,6 +10989,11 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2"
safe-regex "^1.1.0"
+to-style@^1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/to-style/-/to-style-1.3.3.tgz#63a2b70a6f4a7d4fdc2ed57a0be4e7235cb6699c"
+ integrity sha1-Y6K3Cm9KfU/cLtV6C+TnI1y2aZw=
+
to-vfile@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-2.2.0.tgz#342d1705e6df526d569b1fc8bfa29f1f36d6c416"
@@ -10959,7 +11262,7 @@ unified-message-control@^1.0.0:
unist-util-visit "^1.0.0"
vfile-location "^2.0.0"
-unified@^6.0.0, unified@^6.1.0, unified@^6.1.2:
+unified@^6.0.0, unified@^6.1.0, unified@^6.1.2, unified@^6.1.5, unified@^6.1.6:
version "6.2.0"
resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba"
integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==
@@ -10971,6 +11274,20 @@ unified@^6.0.0, unified@^6.1.0, unified@^6.1.2:
vfile "^2.0.0"
x-is-string "^0.1.0"
+unified@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13"
+ integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==
+ dependencies:
+ "@types/unist" "^2.0.0"
+ "@types/vfile" "^3.0.0"
+ bail "^1.0.0"
+ extend "^3.0.0"
+ is-plain-obj "^1.1.0"
+ trough "^1.0.0"
+ vfile "^3.0.0"
+ x-is-string "^0.1.0"
+
union-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
@@ -11055,6 +11372,13 @@ unist-util-remove-position@^1.0.0:
dependencies:
unist-util-visit "^1.1.0"
+unist-util-remove@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-1.0.1.tgz#3e967d2aeb3ee9e7f0ee8354172986fba7ff33a5"
+ integrity sha512-nL+3O0nBB2Oi8ixVzIfJQLtNOMPIFzwoAIKvhDzEL8B15Nq7EY0KBQPYULjNrEmrwYMCkWp5XGTQiAlYZAL/rw==
+ dependencies:
+ unist-util-is "^2.0.0"
+
unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6"
@@ -11065,6 +11389,11 @@ unist-util-visit-children@^1.0.0:
resolved "https://registry.yarnpkg.com/unist-util-visit-children/-/unist-util-visit-children-1.1.2.tgz#bd78b53db9644b9c339ac502854f15471f964f5b"
integrity sha512-q4t6aprUcSQ2/+xlswuh2wUKwUUuMmDjSkfwkMjeVwCXc8NqX8g0FSmNf68CznCmbkrsOPDUR0wj14bCFXXqbA==
+unist-util-visit-parents@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06"
+ integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==
+
unist-util-visit-parents@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz#63fffc8929027bee04bfef7d2cce474f71cb6217"
@@ -11149,7 +11478,14 @@ update-notifier@^2.1.0, update-notifier@^2.3.0:
semver-diff "^2.0.0"
xdg-basedir "^3.0.0"
-upper-case@^1.1.1:
+upper-case-first@^1.1.0, upper-case-first@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115"
+ integrity sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=
+ dependencies:
+ upper-case "^1.1.1"
+
+upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
@@ -11364,6 +11700,16 @@ vfile@^2.0.0:
unist-util-stringify-position "^1.0.0"
vfile-message "^1.0.0"
+vfile@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803"
+ integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==
+ dependencies:
+ is-buffer "^2.0.0"
+ replace-ext "1.0.0"
+ unist-util-stringify-position "^1.0.0"
+ vfile-message "^1.0.0"
+
vm-browserify@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"