From 1850be7f343e54575c64d82c4f0cedc25a9aa91c Mon Sep 17 00:00:00 2001 From: Jeff Wen Date: Thu, 28 Feb 2019 17:24:36 +0800 Subject: [PATCH 001/260] docs: fix a 404 link (#1373) --- .../docs/zh/plugin/official/plugin-active-header-links.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/docs/docs/zh/plugin/official/plugin-active-header-links.md b/packages/docs/docs/zh/plugin/official/plugin-active-header-links.md index 349b3298..76dba9c9 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-active-header-links.md +++ b/packages/docs/docs/zh/plugin/official/plugin-active-header-links.md @@ -3,7 +3,7 @@ title: active-header-links metaTitle: 页面滚动时自动激活侧边栏链接的插件 | VuePress --- -# [@vuepress/plugin-active-header-links](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-active-header-linksd) +# [@vuepress/plugin-active-header-links](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-active-header-links) > 页面滚动时自动激活侧边栏链接的插件 @@ -18,7 +18,7 @@ yarn add -D @vuepress/plugin-active-header-links ```javascript module.exports = { - plugins: ['@vuepress/active-header-links'] + plugins: ['@vuepress/active-header-links'] } ``` From 285b36887df7c17ee8573a70281cf68bc14a14b1 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sat, 2 Mar 2019 23:14:00 +0800 Subject: [PATCH 002/260] fix($theme-default): encodeURI for sidebar items which contain CJK characters (close: #717) Co-Authored-By: MeetInInc --- packages/@vuepress/theme-default/util/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/theme-default/util/index.js b/packages/@vuepress/theme-default/util/index.js index db331efa..9913ff7e 100644 --- a/packages/@vuepress/theme-default/util/index.js +++ b/packages/@vuepress/theme-default/util/index.js @@ -192,7 +192,7 @@ export function resolveMatchingConfig (regularPath, config) { } } for (const base in config) { - if (ensureEndingSlash(regularPath).indexOf(base) === 0) { + if (ensureEndingSlash(regularPath).indexOf(encodeURI(base)) === 0) { return { base, config: config[base] From 7d2c065e81b9ca73506c933c663be68b30d2d92e Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sat, 2 Mar 2019 23:16:08 +0800 Subject: [PATCH 003/260] fix($core): skip plugin on error (Related to #1371) #1383 --- packages/@vuepress/core/lib/plugin-api/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/@vuepress/core/lib/plugin-api/index.js b/packages/@vuepress/core/lib/plugin-api/index.js index a887fe7d..b43a06c6 100644 --- a/packages/@vuepress/core/lib/plugin-api/index.js +++ b/packages/@vuepress/core/lib/plugin-api/index.js @@ -88,6 +88,7 @@ module.exports = class PluginAPI { plugin = this.normalizePlugin(pluginRaw, pluginOptions) } catch (e) { logger.warn(e.message) + return this } } From ad0ff7228cc9b09743b135157edb2a83fdce976f Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sat, 2 Mar 2019 23:50:30 +0800 Subject: [PATCH 004/260] feat: plugin container (#1381) --- packages/@vuepress/markdown/index.js | 5 -- packages/@vuepress/markdown/lib/containers.js | 33 -------- packages/@vuepress/markdown/package.json | 1 - .../@vuepress/plugin-container/.npmignore | 3 + packages/@vuepress/plugin-container/README.md | 5 ++ packages/@vuepress/plugin-container/index.js | 48 +++++++++++ .../@vuepress/plugin-container/package.json | 29 +++++++ packages/@vuepress/theme-default/index.js | 10 ++- packages/docs/docs/.vuepress/config.js | 38 ++++----- .../docs/plugin/official/plugin-container.md | 80 +++++++++++++++++++ .../zh/plugin/official/plugin-container.md | 80 +++++++++++++++++++ 11 files changed, 270 insertions(+), 62 deletions(-) delete mode 100644 packages/@vuepress/markdown/lib/containers.js create mode 100644 packages/@vuepress/plugin-container/.npmignore create mode 100644 packages/@vuepress/plugin-container/README.md create mode 100644 packages/@vuepress/plugin-container/index.js create mode 100644 packages/@vuepress/plugin-container/package.json create mode 100644 packages/docs/docs/plugin/official/plugin-container.md create mode 100644 packages/docs/docs/zh/plugin/official/plugin-container.md diff --git a/packages/@vuepress/markdown/index.js b/packages/@vuepress/markdown/index.js index cc8d09fb..60af7ca8 100644 --- a/packages/@vuepress/markdown/index.js +++ b/packages/@vuepress/markdown/index.js @@ -14,7 +14,6 @@ const lineNumbersPlugin = require('./lib/lineNumbers') const componentPlugin = require('./lib/component') const hoistScriptStylePlugin = require('./lib/hoist') const convertRouterLinkPlugin = require('./lib/link') -const containersPlugin = require('./lib/containers') const markdownSlotsContainersPlugin = require('./lib/markdownSlotsContainers') const snippetPlugin = require('./lib/snippet') const emojiPlugin = require('markdown-it-emoji') @@ -75,10 +74,6 @@ module.exports = (markdown = {}) => { .use(hoistScriptStylePlugin) .end() - .plugin(PLUGINS.CONTAINERS) - .use(containersPlugin) - .end() - .plugin(PLUGINS.MARKDOWN_SLOTS_CONTAINERS) .use(markdownSlotsContainersPlugin) .end() diff --git a/packages/@vuepress/markdown/lib/containers.js b/packages/@vuepress/markdown/lib/containers.js deleted file mode 100644 index 0ee6be80..00000000 --- a/packages/@vuepress/markdown/lib/containers.js +++ /dev/null @@ -1,33 +0,0 @@ -const container = require('markdown-it-container') - -module.exports = md => { - md - .use(...createContainer('tip', 'TIP')) - .use(...createContainer('warning', 'WARNING')) - .use(...createContainer('danger', 'WARNING')) - // explicitly escape Vue syntax - .use(container, 'v-pre', { - render: (tokens, idx) => tokens[idx].nesting === 1 - ? `
\n` - : `
\n` - }) - .use(container, 'vue', { - render: (tokens, idx) => tokens[idx].nesting === 1 - ? `
`
-        : `
` - }) -} - -function createContainer (klass, defaultTitle) { - return [container, klass, { - render (tokens, idx) { - const token = tokens[idx] - const info = token.info.trim().slice(klass.length).trim() - if (token.nesting === 1) { - return `

${info || defaultTitle}

\n` - } else { - return `
\n` - } - } - }] -} diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index 196639d6..14607eba 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -24,7 +24,6 @@ "markdown-it": "^8.4.1", "markdown-it-anchor": "^5.0.2", "markdown-it-chain": "^1.3.0", - "markdown-it-container": "^2.0.0", "markdown-it-emoji": "^1.4.0", "markdown-it-table-of-contents": "^0.4.0", "prismjs": "^1.13.0" diff --git a/packages/@vuepress/plugin-container/.npmignore b/packages/@vuepress/plugin-container/.npmignore new file mode 100644 index 00000000..13c38ea3 --- /dev/null +++ b/packages/@vuepress/plugin-container/.npmignore @@ -0,0 +1,3 @@ +__tests__ +__mocks__ +.temp diff --git a/packages/@vuepress/plugin-container/README.md b/packages/@vuepress/plugin-container/README.md new file mode 100644 index 00000000..fc0b2211 --- /dev/null +++ b/packages/@vuepress/plugin-container/README.md @@ -0,0 +1,5 @@ +# @vuepress/plugin-container + +> markdown container plugin for vuepress + +See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-container.html). diff --git a/packages/@vuepress/plugin-container/index.js b/packages/@vuepress/plugin-container/index.js new file mode 100644 index 00000000..4715ae04 --- /dev/null +++ b/packages/@vuepress/plugin-container/index.js @@ -0,0 +1,48 @@ +const container = require('markdown-it-container') + +function call (target, ...args) { + if (typeof target === 'function') { + return target(...args) + } else { + return target + } +} + +module.exports = (options, context) => ({ + multiple: true, + + extendMarkdown (md) { + const { + validate, + marker, + before, + after, + type = '', + defaultTitle = type.toUpperCase() + } = options + if (!type) return + + let { render } = options + if (!render) { + if (before !== undefined && after !== undefined) { + render = (tokens, index) => { + const token = tokens[index] + return token.nesting === 1 ? call(before, token) : call(after, token) + } + } else { + render = (tokens, index) => { + const token = tokens[index] + let title = token.info.trim().slice(type.length).trim() || defaultTitle + if (title) title = `

${title}

` + if (token.nesting === 1) { + return `
${title}\n` + } else { + return `
\n` + } + } + } + } + + md.use(container, type, { render, validate, marker }) + } +}) diff --git a/packages/@vuepress/plugin-container/package.json b/packages/@vuepress/plugin-container/package.json new file mode 100644 index 00000000..4dfb8d3b --- /dev/null +++ b/packages/@vuepress/plugin-container/package.json @@ -0,0 +1,29 @@ +{ + "name": "@vuepress/plugin-container", + "version": "1.0.0-alpha.40", + "description": "markdown container plugin for vuepress", + "main": "index.js", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/vuepress.git", + "directory": "packages/@vuepress/plugin-container" + }, + "keywords": [ + "documentation", + "vue", + "vuepress", + "generator" + ], + "dependencies": { + "markdown-it-container": "^2.0.0" + }, + "author": "Shigma <1700011071@pku.edu.cn>", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/vuepress/issues" + }, + "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-container#readme" +} diff --git a/packages/@vuepress/theme-default/index.js b/packages/@vuepress/theme-default/index.js index 3cafe568..0f214621 100644 --- a/packages/@vuepress/theme-default/index.js +++ b/packages/@vuepress/theme-default/index.js @@ -20,6 +20,14 @@ module.exports = (options, ctx) => ({ plugins: [ '@vuepress/active-header-links', '@vuepress/search', - '@vuepress/plugin-nprogress' + '@vuepress/plugin-nprogress', + ['@vuepress/container', { type: 'tip' }], + ['@vuepress/container', { type: 'warning' }], + ['@vuepress/container', { type: 'danger' }], + ['@vuepress/container', { + type: 'v-pre', + before: '
\n', + after: '
\n' + }] ] }) diff --git a/packages/docs/docs/.vuepress/config.js b/packages/docs/docs/.vuepress/config.js index b56d1334..e1a7e046 100755 --- a/packages/docs/docs/.vuepress/config.js +++ b/packages/docs/docs/.vuepress/config.js @@ -1,4 +1,4 @@ -const container = require('markdown-it-container') +const { fs, path } = require('@vuepress/shared-utils') module.exports = ctx => ({ dest: '../../vuepress', @@ -74,14 +74,17 @@ module.exports = ctx => ({ ['@vuepress/google-analytics', { ga: 'UA-128189152-1' }], + ['@vuepress/container', { + type: 'vue', + before: '
',
+      after: '
', + }], + ['@vuepress/container', { + type: 'upgrade', + before: ({ info }) => ``, + after: '', + }], ], - extendMarkdown (md) { - md.use(container, 'upgrade', { - render: (tokens, idx) => tokens[idx].nesting === 1 - ? `` - : '' - }) - }, }) function getGuideSidebar (groupA, groupB) { @@ -114,6 +117,10 @@ function getGuideSidebar (groupA, groupB) { ] } +const officalPlugins = fs + .readdirSync(path.resolve(__dirname, '../plugin/official')) + .map(filename => 'official/' + filename.slice(0, -3)) + function getPluginSidebar (pluginTitle, pluginIntro, officialPluginTitle) { return [ { @@ -131,20 +138,7 @@ function getPluginSidebar (pluginTitle, pluginIntro, officialPluginTitle) { { title: officialPluginTitle, collapsable: false, - children: [ - 'official/plugin-search', - 'official/plugin-active-header-links', - 'official/plugin-pwa', - 'official/plugin-blog', - 'official/plugin-pagination', - 'official/plugin-google-analytics', - 'official/plugin-i18n-ui', - 'official/plugin-last-updated', - 'official/plugin-medium-zoom', - 'official/plugin-back-to-top', - 'official/plugin-register-components', - 'official/plugin-clean-urls' - ] + children: officalPlugins, } ] } diff --git a/packages/docs/docs/plugin/official/plugin-container.md b/packages/docs/docs/plugin/official/plugin-container.md new file mode 100644 index 00000000..359f3a98 --- /dev/null +++ b/packages/docs/docs/plugin/official/plugin-container.md @@ -0,0 +1,80 @@ +--- +title: container +metaTitle: A plugin of registering markdown containers | VuePress +--- + +# [@vuepress/plugin-container](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-container) + +> A plugin of registering markdown containers + +## Install + +```bash +yarn add -D @vuepress/plugin-container +# OR npm install -D @vuepress/plugin-container +``` + +## Usage + +```javascript +module.exports = { + plugins: ['@vuepress/container'] +} +``` + +## Options + +### type + +- Type: `string` +- This is a required option. + +The type for the container. For example, if `type` was set to `foo`, only the following syntax will be parsed as a container: + +```md +::: foo bar +write something here ~ +::: +``` + +### defaultTitle + +- Type: `string` +- Default: the upper case of `type` + +The default title for the container. If no title was provided, `defaultTitle` will be showed as the title of the container. + +### before + +- Type: `string | Function` +- Default: `undefined` + +String to be placed before the block. If specified as a function, a argument `token` will be passed to it. If specified, it will override `defaultTitle`. + +### after + +- Type: `string | Function` +- Default: `undefined` + +String to be placed after the block. If specified as a function, a argument `token` will be passed to it. If specified, it will override `defaultTitle`. + +### validate + +- Type: `Function` +- Default: `undefined` + +A function to validate tail after opening marker, should return `true` on success. + +### render + +- Type: `Function` +- Default: `undefined` + +The renderer function for opening/closing tokens. If specified, it will override `before`, `after` and `defaultTitle`. + +### marker + +- Type: `string` +- Default: `':'` + +The character to use in delimiter. diff --git a/packages/docs/docs/zh/plugin/official/plugin-container.md b/packages/docs/docs/zh/plugin/official/plugin-container.md new file mode 100644 index 00000000..ed29cccc --- /dev/null +++ b/packages/docs/docs/zh/plugin/official/plugin-container.md @@ -0,0 +1,80 @@ +--- +title: container +metaTitle: Markdown 容器插件 | VuePress +--- + +# [@vuepress/plugin-container](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-container) + +> Markdown 容器插件 + +## 安装 + +```bash +yarn add -D @vuepress/plugin-container +# OR npm install -D @vuepress/plugin-container +``` + +## 使用 + +```javascript +module.exports = { + plugins: ['@vuepress/container'] +} +``` + +## 选项 + +### type + +- 类型: `string` +- 这是一个必需的选项 + +容器的类型。举个例子,如果 `type` 被设置为 `foo`,则仅有下面的语法会被视为对应的容器: + +```md +::: foo bar +随便写点啥 ~ +::: +``` + +### defaultTitle + +- 类型: `string` +- 默认值: `type` 的大写形式 + +容器的默认标题。如果没有提供标题,则会使用 `defaultTitle` 作为容器的标题。 + +### before + +- 类型: `string | Function` +- 默认值: `undefined` + +要插入在容器前的 HTML。如果设置为一个函数,将传入当前的 `token` 作为第一个参数。如果设置了这个值,它将覆盖 `defaultTitle` 的效果。 + +### after + +- 类型: `string | Function` +- 默认值: `undefined` + +要插入在容器后的 HTML。如果设置为一个函数,将传入当前的 `token` 作为第一个参数。如果设置了这个值,它将覆盖 `defaultTitle` 的效果。 + +### validate + +- 类型: `Function` +- 默认值: `undefined` + +一个用于判定容器是否结束的函数。当认定容器范围结束时应返回一个 `true`。 + +### render + +- 类型: `Function` +- 默认值: `undefined` + +容器开头和结束 token 的渲染函数。如果设置了这个值,它将覆盖 `before`, `after` 和 `defaultTitle` 的效果。 + +### marker + +- 类型: `string` +- 默认值: `':'` + +用于分隔符的字符。 From b53324d2e08b93d7c6a2a8f92a320807203756ec Mon Sep 17 00:00:00 2001 From: JYX <1449843302@qq.com> Date: Sun, 3 Mar 2019 00:31:14 +0800 Subject: [PATCH 005/260] fix($core): Generated js have SyntaxError when source-map is enabled (close: #1367) (#1378) --- packages/@vuepress/core/lib/build.js | 8 +++++++- yarn.lock | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/@vuepress/core/lib/build.js b/packages/@vuepress/core/lib/build.js index 57aaefc7..23e49bbc 100644 --- a/packages/@vuepress/core/lib/build.js +++ b/packages/@vuepress/core/lib/build.js @@ -47,7 +47,13 @@ module.exports = async function build (sourceDir, cliOptions = {}) { // find and remove empty style chunk caused by // https://github.com/webpack-contrib/mini-css-extract-plugin/issues/85 // TODO remove when it's fixed - await workaroundEmptyStyleChunk() + if (!clientConfig.devtool && (!clientConfig.plugins || + !clientConfig.plugins.some(p => + p instanceof webpack.SourceMapDevToolPlugin || + p instanceof webpack.EvalSourceMapDevToolPlugin + ))) { + await workaroundEmptyStyleChunk() + } // create server renderer using built manifests const renderer = createBundleRenderer(serverBundle, { diff --git a/yarn.lock b/yarn.lock index 64877e1b..c33c127a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6568,7 +6568,7 @@ markdown-it-anchor@^5.0.2: markdown-it-chain@^1.3.0: version "1.3.0" - resolved "http://registry.npm.taobao.org/markdown-it-chain/download/markdown-it-chain-1.3.0.tgz#ccf6fe86c10266bafb4e547380dfd7f277cc17bc" + resolved "https://registry.yarnpkg.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz#ccf6fe86c10266bafb4e547380dfd7f277cc17bc" dependencies: webpack-chain "^4.9.0" From 204cbe4c4ebde95590c5e4e265e7985a39aca067 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sun, 3 Mar 2019 00:32:39 +0800 Subject: [PATCH 006/260] fix($core): support theme index file which is not at root (close: #1362) (#1376) --- .../@vuepress/core/lib/prepare/loadTheme.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/@vuepress/core/lib/prepare/loadTheme.js b/packages/@vuepress/core/lib/prepare/loadTheme.js index 9a4bbca3..4092238a 100755 --- a/packages/@vuepress/core/lib/prepare/loadTheme.js +++ b/packages/@vuepress/core/lib/prepare/loadTheme.js @@ -54,14 +54,17 @@ module.exports = function loadTheme (ctx) { function normalizeThemePath (resolved) { const { entry, name, fromDep } = resolved if (fromDep) { - const pkgPath = require.resolve(name) - let packageRootDir = parse(pkgPath).dir - // For those cases that "main" field was set to non-index file - // e.g. `layouts/Layout.vue` - while (!fs.existsSync(`${packageRootDir}/package.json`)) { - packageRootDir = resolve(packageRootDir, '..') + const packageRoot = require.resolve(`${name}/package.json`) + const { main } = require(packageRoot) + if (main.endsWith('.vue')) { + // For those cases that "main" field is set to an non-index file + // e.g. `layouts/Layout.vue` + return packageRoot + } else { + // For those cases that "index.js" is not at package root + // e.g. `lib/index.js` (#1362) + return parse(require.resolve(name)).dir } - return packageRootDir } else if (entry.endsWith('.js') || entry.endsWith('.vue')) { return parse(entry).dir } else { From 760f90b914907001e48732e1823aa4a464ba2869 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sun, 3 Mar 2019 00:40:31 +0800 Subject: [PATCH 007/260] feat($markdown): TOC component (close: #1275) (#1375) --- packages/@vuepress/core/lib/app/app.js | 3 + .../core/lib/app/components/HeaderList.vue | 20 +++++ .../@vuepress/core/lib/app/components/TOC.vue | 57 +++++++++++++ packages/@vuepress/markdown/index.js | 10 +-- .../@vuepress/markdown/lib/tableOfContents.js | 83 +++++++++++++++++++ packages/@vuepress/markdown/package.json | 1 - packages/docs/docs/config/README.md | 12 ++- packages/docs/docs/guide/markdown.md | 10 ++- packages/docs/docs/guide/using-vue.md | 21 +++++ packages/docs/docs/zh/config/README.md | 12 ++- packages/docs/docs/zh/guide/markdown.md | 10 ++- packages/docs/docs/zh/guide/using-vue.md | 21 +++++ 12 files changed, 244 insertions(+), 16 deletions(-) create mode 100644 packages/@vuepress/core/lib/app/components/HeaderList.vue create mode 100644 packages/@vuepress/core/lib/app/components/TOC.vue create mode 100644 packages/@vuepress/markdown/lib/tableOfContents.js diff --git a/packages/@vuepress/core/lib/app/app.js b/packages/@vuepress/core/lib/app/app.js index 70bc0968..bcccec17 100644 --- a/packages/@vuepress/core/lib/app/app.js +++ b/packages/@vuepress/core/lib/app/app.js @@ -16,6 +16,7 @@ import Content from './components/Content.js' import ContentSlotsDistributor from './components/ContentSlotsDistributor' import OutboundLink from './components/OutboundLink.vue' import ClientOnly from './components/ClientOnly' +import TOC from './components/TOC.vue' // suggest dev server restart on base change if (module.hot) { @@ -46,6 +47,8 @@ Vue.component('ClientOnly', ClientOnly) // core components Vue.component('Layout', getLayoutAsyncComponent('Layout')) Vue.component('NotFound', getLayoutAsyncComponent('NotFound')) +// markdown components +Vue.component('TOC', TOC) // global helper for adding base path to absolute urls Vue.prototype.$withBase = function (path) { diff --git a/packages/@vuepress/core/lib/app/components/HeaderList.vue b/packages/@vuepress/core/lib/app/components/HeaderList.vue new file mode 100644 index 00000000..a1945e08 --- /dev/null +++ b/packages/@vuepress/core/lib/app/components/HeaderList.vue @@ -0,0 +1,20 @@ + + + diff --git a/packages/@vuepress/core/lib/app/components/TOC.vue b/packages/@vuepress/core/lib/app/components/TOC.vue new file mode 100644 index 00000000..697e68c1 --- /dev/null +++ b/packages/@vuepress/core/lib/app/components/TOC.vue @@ -0,0 +1,57 @@ + + + diff --git a/packages/@vuepress/markdown/index.js b/packages/@vuepress/markdown/index.js index 60af7ca8..58c6a2a1 100644 --- a/packages/@vuepress/markdown/index.js +++ b/packages/@vuepress/markdown/index.js @@ -16,10 +16,10 @@ const hoistScriptStylePlugin = require('./lib/hoist') const convertRouterLinkPlugin = require('./lib/link') const markdownSlotsContainersPlugin = require('./lib/markdownSlotsContainers') const snippetPlugin = require('./lib/snippet') +const tocPlugin = require('./lib/tableOfContents') const emojiPlugin = require('markdown-it-emoji') const anchorPlugin = require('markdown-it-anchor') -const tocPlugin = require('markdown-it-table-of-contents') -const { parseHeaders, slugify: _slugify, logger, chalk, hash } = require('@vuepress/shared-utils') +const { slugify: _slugify, logger, chalk, hash } = require('@vuepress/shared-utils') /** * Create markdown by config. @@ -92,11 +92,7 @@ module.exports = (markdown = {}) => { .end() .plugin(PLUGINS.TOC) - .use(tocPlugin, [Object.assign({ - slugify, - includeLevel: [2, 3], - format: parseHeaders - }, toc)]) + .use(tocPlugin, [toc]) .end() if (lineNumbers) { diff --git a/packages/@vuepress/markdown/lib/tableOfContents.js b/packages/@vuepress/markdown/lib/tableOfContents.js new file mode 100644 index 00000000..5e32161e --- /dev/null +++ b/packages/@vuepress/markdown/lib/tableOfContents.js @@ -0,0 +1,83 @@ +// reference: https://github.com/Oktavilla/markdown-it-table-of-contents + +const defaults = { + includeLevel: [2, 3], + containerClass: 'table-of-contents', + markerPattern: /^\[\[toc\]\]/im, + listType: 'ul', + containerHeaderHtml: '', + containerFooterHtml: '' +} + +module.exports = (md, options) => { + options = Object.assign({}, defaults, options) + const tocRegexp = options.markerPattern + + function toc (state, silent) { + var token + var match + + // Reject if the token does not start with [ + if (state.src.charCodeAt(state.pos) !== 0x5B /* [ */) { + return false + } + // Don't run any pairs in validation mode + if (silent) { + return false + } + + // Detect TOC markdown + match = tocRegexp.exec(state.src) + match = !match ? [] : match.filter(function (m) { return m }) + if (match.length < 1) { + return false + } + + // Build content + token = state.push('toc_open', 'toc', 1) + token.markup = '[[toc]]' + token = state.push('toc_body', '', 0) + token = state.push('toc_close', 'toc', -1) + + // Update pos so the parser can continue + var newline = state.src.indexOf('\n') + if (newline !== -1) { + state.pos = state.pos + newline + } else { + state.pos = state.pos + state.posMax + 1 + } + + return true + } + + md.renderer.rules.toc_open = function () { + return vBindEscape`` + } + + md.renderer.rules.toc_body = function () { + return `` + + `` + } + + md.renderer.rules.toc_close = function () { + return `` + } + + // Insert TOC + md.inline.ruler.after('emphasis', 'toc', toc) +} + +/** escape double quotes in v-bind derivatives */ +function vBindEscape (strs, ...args) { + return strs.reduce((prev, curr, index) => { + return prev + curr + (index >= args.length + ? '' + : `"${JSON.stringify(args[index]) + .replace(/"/g, "'") + .replace(/([^\\])(\\\\)*\\'/g, (_, char) => char + '\\u0022')}"`) + }, '') +} diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index 14607eba..1f4309f6 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -25,7 +25,6 @@ "markdown-it-anchor": "^5.0.2", "markdown-it-chain": "^1.3.0", "markdown-it-emoji": "^1.4.0", - "markdown-it-table-of-contents": "^0.4.0", "prismjs": "^1.13.0" }, "author": "Evan You", diff --git a/packages/docs/docs/config/README.md b/packages/docs/docs/config/README.md index 19f394de..91453194 100644 --- a/packages/docs/docs/config/README.md +++ b/packages/docs/docs/config/README.md @@ -220,9 +220,17 @@ The key and value pair will be added to `` tags that point to an external lin ### markdown.toc - Type: `Object` -- Default: `{ includeLevel: [2, 3] }` -Options for [markdown-it-table-of-contents](https://github.com/Oktavilla/markdown-it-table-of-contents). (Note: prefer `markdown.slugify` if you want to customize header ids.) +This attribute will control the behaviour of `[[TOC]]`. It contains the following options: + +- includeLevel: [number, number], level of headers to be included, defaults to `[2, 3]`. +- containerClass: string, the class name for the container, defaults to `table-of-contents`. +- markerPattern: RegExp, the regular expression for the marker to be replaced with TOC, defaults to `/^\[\[toc\]\]/im`. +- listType: string or Array, labels for all levels of the list, defaults to `"ul"`. +- containerHeaderHtml: string, an HTML string for container header, defaults to `""`. +- containerFooterHtml: string, an HTML string for container footer, defaults to `""`. + +We also provide a [global component TOC](../guide/using-vue.md#toc) which allows for more free control by passing props directly to ``. ### markdown.extendMarkdown diff --git a/packages/docs/docs/guide/markdown.md b/packages/docs/docs/guide/markdown.md index 8631f915..868046ae 100644 --- a/packages/docs/docs/guide/markdown.md +++ b/packages/docs/docs/guide/markdown.md @@ -108,15 +108,21 @@ A list of all emojis available can be found [here](https://github.com/markdown-i **Input** -``` +```md [[toc]] ``` +or + +```md + +``` + **Output** [[toc]] -Rendering of TOC can be configured using the [`markdown.toc`](../config/README.md#markdown-toc) option. +Rendering of TOC can be configured using the [`markdown.toc`](../config/README.md#markdown-toc) option, or as props of [TOC component](./using-vue.md#toc), like ``. ## Custom Containers diff --git a/packages/docs/docs/guide/using-vue.md b/packages/docs/docs/guide/using-vue.md index f5628b6a..52d46eb8 100644 --- a/packages/docs/docs/guide/using-vue.md +++ b/packages/docs/docs/guide/using-vue.md @@ -224,6 +224,27 @@ Specify a specific slot for a specific page (.md) for rendering. This will be ve - [Markdown Slot](./markdown-slot.md) - [Writing a theme > Content Outlet](../theme/writing-a-theme.md#content-outlet) +### TOC + +- **Props**: + - `listType` - string or Array, defaults to `"ul"` + - `includeLevel` - [number, number], defaults to `[2, 3]` + +- **Slots**: `header`, `footer` + +- **Usage**: + +You can add a custom table of contents by specify some props to this component. `includeLevel` decides which level of headers should be included. `listType` decides the tags of lists. If specified as an array, the component will take the first element as the first-level list type and so on. If there are not enough values provided, the last value will be used for all the remaining list types. + +``` md + +

Custom Table of Contents

+
+``` + + +

Custom Table of Contents

+
### Badge diff --git a/packages/docs/docs/zh/config/README.md b/packages/docs/docs/zh/config/README.md index c5042d35..21e1bc17 100644 --- a/packages/docs/docs/zh/config/README.md +++ b/packages/docs/docs/zh/config/README.md @@ -212,9 +212,17 @@ VuePress 提供了一种添加额外样式的简便方法。你可以创建一 ### markdown.toc - 类型: `Object` -- 默认值: `{ includeLevel: [2, 3] }` -[markdown-it-table-of-contents](https://github.com/Oktavilla/markdown-it-table-of-contents) 的选项。 +这个值将会控制 `[[TOC]]` 默认行为。它包含下面的选项: + +- includeLevel: [number, number],决定哪些级别的标题会被显示在目录中,默认值为 `[2, 3]`。 +- containerClass: string,决定了目录容器的类名,默认值为 `table-of-contents`。 +- markerPattern: RegExp,决定了标题匹配的正则表达式,默认值为 `/^\[\[toc\]\]/im`。 +- listType: string 或 Array,决定了各级列表的标签,默认值为 `"ul"`。 +- containerHeaderHtml: string,在目录开头插入的 HTML 字符串,默认值为 `""`。 +- containerFooterHtml: string,在目录结尾插入的 HTML 字符串,默认值为 `""`。 + +此外,我们还提供了[全局组件 TOC](../guide/using-vue.md#toc),可以通过直接向 `` 传递属性实现更加自由的控制。 ### markdown.extendMarkdown diff --git a/packages/docs/docs/zh/guide/markdown.md b/packages/docs/docs/zh/guide/markdown.md index e4461133..db05999f 100644 --- a/packages/docs/docs/zh/guide/markdown.md +++ b/packages/docs/docs/zh/guide/markdown.md @@ -106,15 +106,21 @@ lang: en-US **Input** -``` +```md [[toc]] ``` +或者 + +```md + +``` + **Output** [[toc]] -目录(Table of Contents)的渲染可以通过 [`markdown.toc`](../config/README.md#markdown-toc) 选项来配置。 +目录(Table of Contents)的渲染可以通过 [`markdown.toc`](../config/README.md#markdown-toc) 选项来配置,也可以在 [TOC 组件](./using-vue.md#toc)中直接传入,如 ``。 ## 自定义容器 diff --git a/packages/docs/docs/zh/guide/using-vue.md b/packages/docs/docs/zh/guide/using-vue.md index cf6d8b2f..57b758c3 100644 --- a/packages/docs/docs/zh/guide/using-vue.md +++ b/packages/docs/docs/zh/guide/using-vue.md @@ -225,6 +225,27 @@ export default { - [Markdown 插槽](./markdown-slot.md) - [开发主题 > 获取渲染内容](../theme/writing-a-theme.md#获取渲染内容) +### TOC + +- **Props**: + - `listType` - string 或 Array, 默认值为 `"ul"` + - `includeLevel` - [number, number], 默认值为 `[2, 3]` + +- **Slots**: `header`, `footer` + +- **Usage**: + +你可以通过一些属性来实现一个自定义的目录。`includeLevel` 决定了哪些级别的标题会被显示在目录中。`listType` 决定了所有列表的标签。如果设置为了数组,组件将会使用第一个元素作为第一级列表的标签,以此类推。如果提供的标签不够多,将使用提供的最后一个值作为全部剩下的列表标签。 + +``` md + +

自定义目录

+
+``` + + +

自定义目录

+
### Badge From 5a111a2f24f09fd43200917860c1504bdb4e48db Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sun, 3 Mar 2019 01:34:15 +0800 Subject: [PATCH 008/260] fix($markdown): fix line highlighting (close: #1364) (#1369) --- .../@vuepress/markdown/lib/highlightLines.js | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/@vuepress/markdown/lib/highlightLines.js b/packages/@vuepress/markdown/lib/highlightLines.js index c98dcc8e..99b7d598 100644 --- a/packages/@vuepress/markdown/lib/highlightLines.js +++ b/packages/@vuepress/markdown/lib/highlightLines.js @@ -9,27 +9,29 @@ module.exports = md => { const [tokens, idx, options] = args const token = tokens[idx] - const rawInfo = token.info - if (!rawInfo || !RE.test(rawInfo)) { - return fence(...args) + if (!token.lineNumbers) { + const rawInfo = token.info + if (!rawInfo || !RE.test(rawInfo)) { + return fence(...args) + } + + const langName = rawInfo.replace(RE, '').trim() + // ensure the next plugin get the correct lang. + token.info = langName + + token.lineNumbers = RE.exec(rawInfo)[1] + .split(',') + .map(v => v.split('-').map(v => parseInt(v, 10))) } - const langName = rawInfo.replace(RE, '').trim() - // ensure the next plugin get the correct lang. - token.info = langName - - const lineNumbers = RE.exec(rawInfo)[1] - .split(',') - .map(v => v.split('-').map(v => parseInt(v, 10))) - const code = options.highlight - ? options.highlight(token.content, langName) + ? options.highlight(token.content, token.info) : token.content const rawCode = code.replace(wrapperRE, '') const highlightLinesCode = rawCode.split('\n').map((split, index) => { const lineNumber = index + 1 - const inRange = lineNumbers.some(([start, end]) => { + const inRange = token.lineNumbers.some(([start, end]) => { if (start && end) { return lineNumber >= start && lineNumber <= end } From 1a928c7e7fa0fb5b6c12eb58a0596fcc3dad394a Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Sun, 3 Mar 2019 01:46:32 +0800 Subject: [PATCH 009/260] feat($plugin-nprogress): allow nprogress use different color and add docs (#1366) --- .../@vuepress/plugin-nprogress/nprogress.styl | 10 +++-- packages/docs/docs/.vuepress/config.js | 1 + .../docs/plugin/official/plugin-nprogress.md | 39 +++++++++++++++++++ .../zh/plugin/official/plugin-nprogress.md | 39 +++++++++++++++++++ 4 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 packages/docs/docs/plugin/official/plugin-nprogress.md create mode 100644 packages/docs/docs/zh/plugin/official/plugin-nprogress.md diff --git a/packages/@vuepress/plugin-nprogress/nprogress.styl b/packages/@vuepress/plugin-nprogress/nprogress.styl index f186a67e..0e30b8de 100644 --- a/packages/@vuepress/plugin-nprogress/nprogress.styl +++ b/packages/@vuepress/plugin-nprogress/nprogress.styl @@ -1,7 +1,9 @@ +$nprogressColor ?= $accentColor + #nprogress pointer-events none .bar - background $accentColor + background $nprogressColor position fixed z-index 1031 top 0 @@ -14,7 +16,7 @@ right 0px width 100px height 100% - box-shadow 0 0 10px $accentColor, 0 0 5px $accentColor + box-shadow 0 0 10px $nprogressColor, 0 0 5px $nprogressColor opacity 1.0 transform rotate(3deg) translate(0px, -4px) .spinner @@ -28,8 +30,8 @@ height 18px box-sizing border-box border solid 2px transparent - border-top-color $accentColor - border-left-color $accentColor + border-top-color $nprogressColor + border-left-color $nprogressColor border-radius 50% animation nprogress-spinner 400ms linear infinite diff --git a/packages/docs/docs/.vuepress/config.js b/packages/docs/docs/.vuepress/config.js index e1a7e046..999cc253 100755 --- a/packages/docs/docs/.vuepress/config.js +++ b/packages/docs/docs/.vuepress/config.js @@ -120,6 +120,7 @@ function getGuideSidebar (groupA, groupB) { const officalPlugins = fs .readdirSync(path.resolve(__dirname, '../plugin/official')) .map(filename => 'official/' + filename.slice(0, -3)) + .sort() function getPluginSidebar (pluginTitle, pluginIntro, officialPluginTitle) { return [ diff --git a/packages/docs/docs/plugin/official/plugin-nprogress.md b/packages/docs/docs/plugin/official/plugin-nprogress.md new file mode 100644 index 00000000..02bd7f2f --- /dev/null +++ b/packages/docs/docs/plugin/official/plugin-nprogress.md @@ -0,0 +1,39 @@ +--- +title: nprogress +metaTitle: Nprogress Plugin | VuePress +--- + +# [@vuepress/plugin-nprogress](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/plugin-nprogress) + +> Nprogress plugin + +## Install + +```bash +yarn add -D @vuepress/plugin-nprogress +# OR npm install -D @vuepress/plugin-nprogress +``` + +## Usage + +```javascript +module.exports = { + plugins: ['@vuepress/nprogress'] +} +``` + +## Custom color + +Set `$nprogressColor` in your __site__ or __theme__ `palette.styl` file to change the color of the progress bar (default is `$accentColor`). + +```stylus +// .vuepress/styles/palette.styl +// or +// .vuepress/theme/styles/palette.styl + +$nprogressColor = red +``` + +**Also see:** + +- [Config Reference > Styling](../../config/#styling) diff --git a/packages/docs/docs/zh/plugin/official/plugin-nprogress.md b/packages/docs/docs/zh/plugin/official/plugin-nprogress.md new file mode 100644 index 00000000..a955bed7 --- /dev/null +++ b/packages/docs/docs/zh/plugin/official/plugin-nprogress.md @@ -0,0 +1,39 @@ +--- +title: nprogress +metaTitle: Nprogress 插件 | VuePress +--- + +# [@vuepress/plugin-nprogress](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/plugin-nprogress) + +> Nprogress plugin + +## 安装 + +```bash +yarn add -D @vuepress/plugin-nprogress +# 或者 npm install -D @vuepress/plugin-nprogress +``` + +## 使用 + +```javascript +module.exports = { + plugins: ['@vuepress/nprogress'] +} +``` + +## 自定义颜色 + +在你的 __site__ 或 __theme__ 的 `palette.styl` 文件中设置 `$nprogressColor` 来改变进度条的颜色(默认使用 `$accentColor`)。 + +```stylus +// .vuepress/styles/palette.styl +// 或者 +// .vuepress/theme/styles/palette.styl + +$nprogressColor = red +``` + +**参考:** + +- [配置 > Styling](../../config/#styling) From de37e95a6d5c0902c904c88c42932f752e7bf73d Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 02:06:44 +0800 Subject: [PATCH 010/260] docs: clarify installation instructions (close: #1380) --- packages/docs/docs/guide/getting-started.md | 4 ++-- packages/docs/docs/miscellaneous/migration-guide.md | 3 ++- .../docs/docs/plugin/official/plugin-active-header-links.md | 4 ++-- packages/docs/docs/plugin/official/plugin-back-to-top.md | 4 ++-- packages/docs/docs/plugin/official/plugin-blog.md | 4 ++-- packages/docs/docs/plugin/official/plugin-clean-urls.md | 4 ++-- packages/docs/docs/plugin/official/plugin-container.md | 4 ++-- packages/docs/docs/plugin/official/plugin-google-analytics.md | 4 ++-- packages/docs/docs/plugin/official/plugin-i18n-ui.md | 4 ++-- packages/docs/docs/plugin/official/plugin-medium-zoom.md | 4 ++-- packages/docs/docs/plugin/official/plugin-nprogress.md | 4 ++-- packages/docs/docs/plugin/official/plugin-pagination.md | 4 ++-- packages/docs/docs/plugin/official/plugin-pwa.md | 4 ++-- .../docs/docs/plugin/official/plugin-register-components.md | 4 ++-- packages/docs/docs/plugin/official/plugin-search.md | 4 ++-- packages/docs/docs/zh/guide/getting-started.md | 4 ++-- packages/docs/docs/zh/miscellaneous/migration-guide.md | 3 ++- .../docs/zh/plugin/official/plugin-active-header-links.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-back-to-top.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-blog.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-clean-urls.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-container.md | 4 ++-- .../docs/docs/zh/plugin/official/plugin-google-analytics.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-i18n-ui.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-nprogress.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-pagination.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-pwa.md | 4 ++-- .../docs/zh/plugin/official/plugin-register-components.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-search.md | 4 ++-- 30 files changed, 60 insertions(+), 58 deletions(-) diff --git a/packages/docs/docs/guide/getting-started.md b/packages/docs/docs/guide/getting-started.md index 321cdf87..bfaf9b1c 100644 --- a/packages/docs/docs/guide/getting-started.md +++ b/packages/docs/docs/guide/getting-started.md @@ -10,7 +10,7 @@ If you just want to play around with VuePress, you can install it globally: ``` bash # install globally -yarn global add vuepress # OR npm install -g vuepress +yarn global add vuepress@next # OR npm install -g vuepress@next # create a markdown file echo '# Hello VuePress' > README.md @@ -28,7 +28,7 @@ If you have an existing project and would like to keep documentation inside the ``` bash # install as a local dependency -yarn add -D vuepress # OR npm install -D vuepress +yarn add -D vuepress@next # OR npm install -D vuepress@next # create a docs directory mkdir docs diff --git a/packages/docs/docs/miscellaneous/migration-guide.md b/packages/docs/docs/miscellaneous/migration-guide.md index c28c2701..05f7af47 100644 --- a/packages/docs/docs/miscellaneous/migration-guide.md +++ b/packages/docs/docs/miscellaneous/migration-guide.md @@ -15,7 +15,8 @@ GA has been separated into a standalone plugin [@vuepress/plugin-google-analytic 1. Install `@vuepress/plugin-google-analytics`: ```bash -yarn add -D @vuepress/plugin-google-analytics +yarn add -D @vuepress/plugin-google-analytics@next +# OR npm install -D @vuepress/plugin-google-analytics@next ``` 2. Update `vuepress/config.js`: diff --git a/packages/docs/docs/plugin/official/plugin-active-header-links.md b/packages/docs/docs/plugin/official/plugin-active-header-links.md index 20ed892c..33dfbdcb 100644 --- a/packages/docs/docs/plugin/official/plugin-active-header-links.md +++ b/packages/docs/docs/plugin/official/plugin-active-header-links.md @@ -10,8 +10,8 @@ metaTitle: A plugin of automatically activating sidebar links when page scrolls ## Install ```bash -yarn add -D @vuepress/plugin-active-header-links -# OR npm install -D @vuepress/plugin-active-header-links +yarn add -D @vuepress/plugin-active-header-links@next +# OR npm install -D @vuepress/plugin-active-header-links@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-back-to-top.md b/packages/docs/docs/plugin/official/plugin-back-to-top.md index f00d9dc9..39889818 100644 --- a/packages/docs/docs/plugin/official/plugin-back-to-top.md +++ b/packages/docs/docs/plugin/official/plugin-back-to-top.md @@ -10,8 +10,8 @@ metaTitle: Back-To-Top Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-back-to-top -# OR npm install -D @vuepress/plugin-back-to-top +yarn add -D @vuepress/plugin-back-to-top@next +# OR npm install -D @vuepress/plugin-back-to-top@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-blog.md b/packages/docs/docs/plugin/official/plugin-blog.md index 0a2d25b6..50faa205 100644 --- a/packages/docs/docs/plugin/official/plugin-blog.md +++ b/packages/docs/docs/plugin/official/plugin-blog.md @@ -10,8 +10,8 @@ metaTitle: Blog Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-blog -# OR npm install -D @vuepress/plugin-blog +yarn add -D @vuepress/plugin-blog@next +# OR npm install -D @vuepress/plugin-blog@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-clean-urls.md b/packages/docs/docs/plugin/official/plugin-clean-urls.md index 6f801be0..10e94941 100644 --- a/packages/docs/docs/plugin/official/plugin-clean-urls.md +++ b/packages/docs/docs/plugin/official/plugin-clean-urls.md @@ -10,8 +10,8 @@ metaTitle: A plugin of automatically generating clean urls | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-clean-urls -# OR npm install -D @vuepress/plugin-clean-urls +yarn add -D @vuepress/plugin-clean-urls@next +# OR npm install -D @vuepress/plugin-clean-urls@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-container.md b/packages/docs/docs/plugin/official/plugin-container.md index 359f3a98..994cf2e8 100644 --- a/packages/docs/docs/plugin/official/plugin-container.md +++ b/packages/docs/docs/plugin/official/plugin-container.md @@ -10,8 +10,8 @@ metaTitle: A plugin of registering markdown containers | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-container -# OR npm install -D @vuepress/plugin-container +yarn add -D @vuepress/plugin-container@next +# OR npm install -D @vuepress/plugin-container@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-google-analytics.md b/packages/docs/docs/plugin/official/plugin-google-analytics.md index 08990970..7dc951e1 100644 --- a/packages/docs/docs/plugin/official/plugin-google-analytics.md +++ b/packages/docs/docs/plugin/official/plugin-google-analytics.md @@ -11,8 +11,8 @@ metaTitle: Google Analytics Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-google-analytics -# OR npm install -D @vuepress/plugin-google-analytics +yarn add -D @vuepress/plugin-google-analytics@next +# OR npm install -D @vuepress/plugin-google-analytics@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-i18n-ui.md b/packages/docs/docs/plugin/official/plugin-i18n-ui.md index 3c8baee3..b24b2140 100644 --- a/packages/docs/docs/plugin/official/plugin-i18n-ui.md +++ b/packages/docs/docs/plugin/official/plugin-i18n-ui.md @@ -10,8 +10,8 @@ metaTitle: I18n-UI Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-i18n-ui -# OR npm install -D @vuepress/plugin-i18n-ui +yarn add -D @vuepress/plugin-i18n-ui@next +# OR npm install -D @vuepress/plugin-i18n-ui@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-medium-zoom.md b/packages/docs/docs/plugin/official/plugin-medium-zoom.md index a1723851..92369d56 100644 --- a/packages/docs/docs/plugin/official/plugin-medium-zoom.md +++ b/packages/docs/docs/plugin/official/plugin-medium-zoom.md @@ -10,8 +10,8 @@ metaTitle: Medium-Zoom Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-medium-zoom -# OR npm install -D @vuepress/plugin-medium-zoom +yarn add -D @vuepress/plugin-medium-zoom@next +# OR npm install -D @vuepress/plugin-medium-zoom@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-nprogress.md b/packages/docs/docs/plugin/official/plugin-nprogress.md index 02bd7f2f..3ec33a61 100644 --- a/packages/docs/docs/plugin/official/plugin-nprogress.md +++ b/packages/docs/docs/plugin/official/plugin-nprogress.md @@ -10,8 +10,8 @@ metaTitle: Nprogress Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-nprogress -# OR npm install -D @vuepress/plugin-nprogress +yarn add -D @vuepress/plugin-nprogress@next +# OR npm install -D @vuepress/plugin-nprogress@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-pagination.md b/packages/docs/docs/plugin/official/plugin-pagination.md index 6963ab5d..22a4c35d 100644 --- a/packages/docs/docs/plugin/official/plugin-pagination.md +++ b/packages/docs/docs/plugin/official/plugin-pagination.md @@ -10,8 +10,8 @@ metaTitle: Pagination Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-pagination -# OR npm install -D @vuepress/plugin-pagination +yarn add -D @vuepress/plugin-pagination@next +# OR npm install -D @vuepress/plugin-pagination@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-pwa.md b/packages/docs/docs/plugin/official/plugin-pwa.md index 7db310a8..ecee4ca1 100644 --- a/packages/docs/docs/plugin/official/plugin-pwa.md +++ b/packages/docs/docs/plugin/official/plugin-pwa.md @@ -10,8 +10,8 @@ metaTitle: PWA Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-pwa -# OR npm install -D @vuepress/plugin-pwa +yarn add -D @vuepress/plugin-pwa@next +# OR npm install -D @vuepress/plugin-pwa@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-register-components.md b/packages/docs/docs/plugin/official/plugin-register-components.md index 26e29541..3971cedb 100644 --- a/packages/docs/docs/plugin/official/plugin-register-components.md +++ b/packages/docs/docs/plugin/official/plugin-register-components.md @@ -10,8 +10,8 @@ metaTitle: Register Components Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-register-components -# OR npm install -D @vuepress/plugin-register-components +yarn add -D @vuepress/plugin-register-components@next +# OR npm install -D @vuepress/plugin-register-components@next ``` ## Usage diff --git a/packages/docs/docs/plugin/official/plugin-search.md b/packages/docs/docs/plugin/official/plugin-search.md index 488cc29f..c8cbd9cc 100644 --- a/packages/docs/docs/plugin/official/plugin-search.md +++ b/packages/docs/docs/plugin/official/plugin-search.md @@ -10,8 +10,8 @@ metaTitle: Search Plugin | VuePress ## Install ```bash -yarn add -D @vuepress/plugin-search -# OR npm install -D @vuepress/plugin-search +yarn add -D @vuepress/plugin-search@next +# OR npm install -D @vuepress/plugin-search@next ``` ::: tip diff --git a/packages/docs/docs/zh/guide/getting-started.md b/packages/docs/docs/zh/guide/getting-started.md index 6040e71d..6ec4269b 100644 --- a/packages/docs/docs/zh/guide/getting-started.md +++ b/packages/docs/docs/zh/guide/getting-started.md @@ -10,7 +10,7 @@ ``` bash # 安装 -yarn global add vuepress # 或者:npm install -g vuepress +yarn global add vuepress@next # 或者:npm install -g vuepress@next # 新建一个 markdown 文件 echo '# Hello VuePress!' > README.md @@ -28,7 +28,7 @@ vuepress build . ``` bash # 将 VuePress 作为一个本地依赖安装 -yarn add -D vuepress # 或者:npm install -D vuepress +yarn add -D vuepress@next # 或者:npm install -D vuepress@next # 新建一个 docs 文件夹 mkdir docs diff --git a/packages/docs/docs/zh/miscellaneous/migration-guide.md b/packages/docs/docs/zh/miscellaneous/migration-guide.md index aa87eed2..66031ee0 100644 --- a/packages/docs/docs/zh/miscellaneous/migration-guide.md +++ b/packages/docs/docs/zh/miscellaneous/migration-guide.md @@ -15,7 +15,8 @@ GA 已经被分离为一个单独的插件 [@vuepress/plugin-google-analytics](. 1. 安装 `@vuepress/plugin-google-analytics`: ```bash -yarn add -D @vuepress/plugin-google-analytics +yarn add -D @vuepress/plugin-google-analytics@next +# OR npm install -D @vuepress/plugin-google-analytics@next ``` 2. 更新 `vuepress/config.js`: diff --git a/packages/docs/docs/zh/plugin/official/plugin-active-header-links.md b/packages/docs/docs/zh/plugin/official/plugin-active-header-links.md index 76dba9c9..a9a3f767 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-active-header-links.md +++ b/packages/docs/docs/zh/plugin/official/plugin-active-header-links.md @@ -10,8 +10,8 @@ metaTitle: 页面滚动时自动激活侧边栏链接的插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-active-header-links -# OR npm install -D @vuepress/plugin-active-header-links +yarn add -D @vuepress/plugin-active-header-links@next +# OR npm install -D @vuepress/plugin-active-header-links@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-back-to-top.md b/packages/docs/docs/zh/plugin/official/plugin-back-to-top.md index 5d06146a..fa9b73bf 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-back-to-top.md +++ b/packages/docs/docs/zh/plugin/official/plugin-back-to-top.md @@ -10,8 +10,8 @@ metaTitle: Back-To-Top 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-back-to-top -# OR npm install -D @vuepress/plugin-back-to-top +yarn add -D @vuepress/plugin-back-to-top@next +# OR npm install -D @vuepress/plugin-back-to-top@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-blog.md b/packages/docs/docs/zh/plugin/official/plugin-blog.md index e9aa14b9..54905ca8 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-blog.md +++ b/packages/docs/docs/zh/plugin/official/plugin-blog.md @@ -10,8 +10,8 @@ metaTitle: Blog 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-blog -# OR npm install -D @vuepress/plugin-blog +yarn add -D @vuepress/plugin-blog@next +# OR npm install -D @vuepress/plugin-blog@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-clean-urls.md b/packages/docs/docs/zh/plugin/official/plugin-clean-urls.md index e986d188..985273f8 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-clean-urls.md +++ b/packages/docs/docs/zh/plugin/official/plugin-clean-urls.md @@ -10,8 +10,8 @@ metaTitle: 自动生成简洁链接的插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-clean-urls -# OR npm install -D @vuepress/plugin-clean-urls +yarn add -D @vuepress/plugin-clean-urls@next +# OR npm install -D @vuepress/plugin-clean-urls@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-container.md b/packages/docs/docs/zh/plugin/official/plugin-container.md index ed29cccc..e3d3e5f2 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-container.md +++ b/packages/docs/docs/zh/plugin/official/plugin-container.md @@ -10,8 +10,8 @@ metaTitle: Markdown 容器插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-container -# OR npm install -D @vuepress/plugin-container +yarn add -D @vuepress/plugin-container@next +# OR npm install -D @vuepress/plugin-container@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-google-analytics.md b/packages/docs/docs/zh/plugin/official/plugin-google-analytics.md index 03a3cb1a..5fd6f582 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-google-analytics.md +++ b/packages/docs/docs/zh/plugin/official/plugin-google-analytics.md @@ -10,8 +10,8 @@ metaTitle: Google Analytics 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-google-analytics -# OR npm install -D @vuepress/plugin-google-analytics +yarn add -D @vuepress/plugin-google-analytics@next +# OR npm install -D @vuepress/plugin-google-analytics@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-i18n-ui.md b/packages/docs/docs/zh/plugin/official/plugin-i18n-ui.md index 9ca9e147..c0afa516 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-i18n-ui.md +++ b/packages/docs/docs/zh/plugin/official/plugin-i18n-ui.md @@ -10,8 +10,8 @@ metaTitle: I18n-UI 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-i18n-ui -# OR npm install -D @vuepress/plugin-i18n-ui +yarn add -D @vuepress/plugin-i18n-ui@next +# OR npm install -D @vuepress/plugin-i18n-ui@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md b/packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md index d9073e97..f9ae2939 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md +++ b/packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md @@ -10,8 +10,8 @@ metaTitle: Medium-Zoom 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-medium-zoom -# OR npm install -D @vuepress/plugin-medium-zoom +yarn add -D @vuepress/plugin-medium-zoom@next +# OR npm install -D @vuepress/plugin-medium-zoom@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-nprogress.md b/packages/docs/docs/zh/plugin/official/plugin-nprogress.md index a955bed7..81a0e849 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-nprogress.md +++ b/packages/docs/docs/zh/plugin/official/plugin-nprogress.md @@ -10,8 +10,8 @@ metaTitle: Nprogress 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-nprogress -# 或者 npm install -D @vuepress/plugin-nprogress +yarn add -D @vuepress/plugin-nprogress@next +# 或者 npm install -D @vuepress/plugin-nprogress@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-pagination.md b/packages/docs/docs/zh/plugin/official/plugin-pagination.md index 0c749e5a..1adb1550 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-pagination.md +++ b/packages/docs/docs/zh/plugin/official/plugin-pagination.md @@ -10,8 +10,8 @@ metaTitle: Pagination 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-pagination -# OR npm install -D @vuepress/plugin-pagination +yarn add -D @vuepress/plugin-pagination@next +# OR npm install -D @vuepress/plugin-pagination@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-pwa.md b/packages/docs/docs/zh/plugin/official/plugin-pwa.md index 4f5c738f..14b514d5 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-pwa.md +++ b/packages/docs/docs/zh/plugin/official/plugin-pwa.md @@ -10,8 +10,8 @@ metaTitle: PWA 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-pwa -# OR npm install -D @vuepress/plugin-pwa +yarn add -D @vuepress/plugin-pwa@next +# OR npm install -D @vuepress/plugin-pwa@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-register-components.md b/packages/docs/docs/zh/plugin/official/plugin-register-components.md index 70bd95c8..4bd28832 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-register-components.md +++ b/packages/docs/docs/zh/plugin/official/plugin-register-components.md @@ -10,8 +10,8 @@ metaTitle: 注册组件的插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-register-components -# OR npm install -D @vuepress/plugin-register-components +yarn add -D @vuepress/plugin-register-components@next +# OR npm install -D @vuepress/plugin-register-components@next ``` ## 使用 diff --git a/packages/docs/docs/zh/plugin/official/plugin-search.md b/packages/docs/docs/zh/plugin/official/plugin-search.md index b1a35147..d69870e4 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-search.md +++ b/packages/docs/docs/zh/plugin/official/plugin-search.md @@ -10,8 +10,8 @@ metaTitle: Search 插件 | VuePress ## 安装 ```bash -yarn add -D @vuepress/plugin-search -# OR npm install -D @vuepress/plugin-search +yarn add -D @vuepress/plugin-search@next +# OR npm install -D @vuepress/plugin-search@next ``` ::: tip From ff463eb1fc3415337127f3955b467de920e8903a Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 02:20:51 +0800 Subject: [PATCH 011/260] chore($core): fix the packages version in alpha stage (close: #1379) --- packages/@vuepress/core/package.json | 10 +++++----- packages/@vuepress/markdown-loader/package.json | 2 +- packages/@vuepress/markdown/package.json | 2 +- packages/@vuepress/plugin-pwa/package.json | 2 +- .../plugin-register-components/package.json | 2 +- packages/@vuepress/test-utils/package.json | 4 ++-- packages/@vuepress/theme-blog/package.json | 8 ++++---- packages/@vuepress/theme-default/package.json | 6 +++--- packages/@vuepress/theme-vue/package.json | 2 +- packages/blog/package.json | 4 ++-- packages/docs/package.json | 16 ++++++++-------- packages/vuepress/package.json | 4 ++-- 12 files changed, 31 insertions(+), 31 deletions(-) diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json index e27bfdbf..e0dc3925 100644 --- a/packages/@vuepress/core/package.json +++ b/packages/@vuepress/core/package.json @@ -31,11 +31,11 @@ "dependencies": { "@babel/core": "^7.0.0", "@vue/babel-preset-app": "^3.1.1", - "@vuepress/markdown": "^1.0.0-alpha.40", - "@vuepress/markdown-loader": "^1.0.0-alpha.40", - "@vuepress/plugin-last-updated": "^1.0.0-alpha.40", - "@vuepress/plugin-register-components": "^1.0.0-alpha.40", - "@vuepress/shared-utils": "^1.0.0-alpha.40", + "@vuepress/markdown": "1.0.0-alpha.40", + "@vuepress/markdown-loader": "1.0.0-alpha.40", + "@vuepress/plugin-last-updated": "1.0.0-alpha.40", + "@vuepress/plugin-register-components": "1.0.0-alpha.40", + "@vuepress/shared-utils": "1.0.0-alpha.40", "autoprefixer": "^7.1.2", "babel-loader": "^8.0.4", "cache-loader": "^1.2.2", diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json index f8e51610..8f47bdcb 100644 --- a/packages/@vuepress/markdown-loader/package.json +++ b/packages/@vuepress/markdown-loader/package.json @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/markdown": "^1.0.0-alpha.40", + "@vuepress/markdown": "1.0.0-alpha.40", "loader-utils": "^1.1.0", "lru-cache": "^5.1.1" }, diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index 1f4309f6..be61392c 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -19,7 +19,7 @@ "markdown" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.40", + "@vuepress/shared-utils": "1.0.0-alpha.40", "lru-cache": "^5.1.1", "markdown-it": "^8.4.1", "markdown-it-anchor": "^5.0.2", diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json index 8b1d99bc..b7218c04 100644 --- a/packages/@vuepress/plugin-pwa/package.json +++ b/packages/@vuepress/plugin-pwa/package.json @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.40", + "@vuepress/shared-utils": "1.0.0-alpha.40", "register-service-worker": "^1.5.2", "workbox-build": "^3.1.0" }, diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json index 2160dc3d..98ca9ed0 100644 --- a/packages/@vuepress/plugin-register-components/package.json +++ b/packages/@vuepress/plugin-register-components/package.json @@ -24,6 +24,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-register-components#readme", "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.40" + "@vuepress/shared-utils": "1.0.0-alpha.40" } } diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json index 6033fdd4..0d1fc45d 100644 --- a/packages/@vuepress/test-utils/package.json +++ b/packages/@vuepress/test-utils/package.json @@ -21,8 +21,8 @@ "@babel/preset-env": "^7.0.0", "@types/jest": "^23.3.10", "@vue/test-utils": "^1.0.0-beta.16", - "@vuepress/core": "^1.0.0-alpha.40", - "@vuepress/shared-utils": "^1.0.0-alpha.40", + "@vuepress/core": "1.0.0-alpha.40", + "@vuepress/shared-utils": "1.0.0-alpha.40", "babel-core": "^7.0.0-0", "babel-jest": "^23.4.0", "execa": "^0.10.0", diff --git a/packages/@vuepress/theme-blog/package.json b/packages/@vuepress/theme-blog/package.json index 666a724b..7782c399 100644 --- a/packages/@vuepress/theme-blog/package.json +++ b/packages/@vuepress/theme-blog/package.json @@ -19,10 +19,10 @@ "generator" ], "dependencies": { - "@vuepress/plugin-blog": "^1.0.0-alpha.40", - "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.40", - "@vuepress/plugin-pagination": "^1.0.0-alpha.40", - "@vuepress/plugin-search": "^1.0.0-alpha.40" + "@vuepress/plugin-blog": "1.0.0-alpha.40", + "@vuepress/plugin-medium-zoom": "1.0.0-alpha.40", + "@vuepress/plugin-pagination": "1.0.0-alpha.40", + "@vuepress/plugin-search": "1.0.0-alpha.40" }, "author": "ULIVZ ", "license": "MIT", diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json index 0ab422ae..d1ab6336 100644 --- a/packages/@vuepress/theme-default/package.json +++ b/packages/@vuepress/theme-default/package.json @@ -30,9 +30,9 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme", "dependencies": { - "@vuepress/plugin-active-header-links": "^1.0.0-alpha.40", - "@vuepress/plugin-nprogress": "^1.0.0-alpha.40", - "@vuepress/plugin-search": "^1.0.0-alpha.40", + "@vuepress/plugin-active-header-links": "1.0.0-alpha.40", + "@vuepress/plugin-nprogress": "1.0.0-alpha.40", + "@vuepress/plugin-search": "1.0.0-alpha.40", "docsearch.js": "^2.5.2", "stylus": "^0.54.5", "stylus-loader": "^3.0.2" diff --git a/packages/@vuepress/theme-vue/package.json b/packages/@vuepress/theme-vue/package.json index 079e81fa..3c812e27 100644 --- a/packages/@vuepress/theme-vue/package.json +++ b/packages/@vuepress/theme-vue/package.json @@ -31,6 +31,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-vue#readme", "dependencies": { - "@vuepress/theme-default": "^1.0.0-alpha.40" + "@vuepress/theme-default": "1.0.0-alpha.40" } } diff --git a/packages/blog/package.json b/packages/blog/package.json index 3dd63d47..44378490 100644 --- a/packages/blog/package.json +++ b/packages/blog/package.json @@ -8,7 +8,7 @@ "build": "vuepress build source --temp .temp" }, "dependencies": { - "@vuepress/theme-blog": "^1.0.0-alpha.40", - "vuepress": "^1.0.0-alpha.40" + "@vuepress/theme-blog": "1.0.0-alpha.40", + "vuepress": "1.0.0-alpha.40" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index ae06f7ed..5a0fa4a5 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -24,14 +24,14 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "devDependencies": { - "@vuepress/plugin-back-to-top": "^1.0.0-alpha.40", - "@vuepress/plugin-google-analytics": "^1.0.0-alpha.40", - "@vuepress/plugin-i18n-ui": "^1.0.0-alpha.40", - "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.40", - "@vuepress/plugin-notification": "^1.0.0-alpha.40", - "@vuepress/plugin-pwa": "^1.0.0-alpha.40", - "@vuepress/theme-vue": "^1.0.0-alpha.40", - "vuepress": "^1.0.0-alpha.40", + "@vuepress/plugin-back-to-top": "1.0.0-alpha.40", + "@vuepress/plugin-google-analytics": "1.0.0-alpha.40", + "@vuepress/plugin-i18n-ui": "1.0.0-alpha.40", + "@vuepress/plugin-medium-zoom": "1.0.0-alpha.40", + "@vuepress/plugin-notification": "1.0.0-alpha.40", + "@vuepress/plugin-pwa": "1.0.0-alpha.40", + "@vuepress/theme-vue": "1.0.0-alpha.40", + "vuepress": "1.0.0-alpha.40", "vuepress-plugin-flowchart": "^1.4.2" } } diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json index 6c186aa4..f81eeb6a 100644 --- a/packages/vuepress/package.json +++ b/packages/vuepress/package.json @@ -29,8 +29,8 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "dependencies": { - "@vuepress/core": "^1.0.0-alpha.40", - "@vuepress/theme-default": "^1.0.0-alpha.40", + "@vuepress/core": "1.0.0-alpha.40", + "@vuepress/theme-default": "1.0.0-alpha.40", "cac": "^6.3.9" }, "engines": { From a7829ec2057035da27f0f239209ff6167db0d054 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 02:28:23 +0800 Subject: [PATCH 012/260] v1.0.0-alpha.41 --- lerna.json | 2 +- packages/@vuepress/core/package.json | 12 ++++++------ .../@vuepress/markdown-loader/package.json | 4 ++-- packages/@vuepress/markdown/package.json | 4 ++-- .../plugin-active-header-links/package.json | 2 +- .../@vuepress/plugin-back-to-top/package.json | 2 +- packages/@vuepress/plugin-blog/package.json | 2 +- .../@vuepress/plugin-clean-urls/package.json | 2 +- .../@vuepress/plugin-container/package.json | 2 +- .../plugin-google-analytics/package.json | 2 +- packages/@vuepress/plugin-i18n-ui/package.json | 2 +- .../@vuepress/plugin-last-updated/package.json | 2 +- .../@vuepress/plugin-medium-zoom/package.json | 2 +- .../@vuepress/plugin-notification/package.json | 2 +- .../@vuepress/plugin-nprogress/package.json | 2 +- .../@vuepress/plugin-pagination/package.json | 2 +- packages/@vuepress/plugin-pwa/package.json | 4 ++-- .../plugin-register-components/package.json | 4 ++-- packages/@vuepress/plugin-search/package.json | 2 +- packages/@vuepress/shared-utils/package.json | 2 +- packages/@vuepress/test-utils/package.json | 6 +++--- packages/@vuepress/theme-blog/package.json | 10 +++++----- packages/@vuepress/theme-default/package.json | 8 ++++---- packages/@vuepress/theme-vue/package.json | 4 ++-- packages/blog/package.json | 6 +++--- packages/docs/package.json | 18 +++++++++--------- packages/vuepress/package.json | 6 +++--- 27 files changed, 58 insertions(+), 58 deletions(-) diff --git a/lerna.json b/lerna.json index 438e630e..3d8078c4 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "lerna": "2.5.1", "npmClient": "yarn", "useWorkspaces": true, - "version": "1.0.0-alpha.40" + "version": "1.0.0-alpha.41" } diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json index e0dc3925..a911d646 100644 --- a/packages/@vuepress/core/package.json +++ b/packages/@vuepress/core/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/core", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "Minimalistic doc generator with Vue component based layout system", "main": "lib/index.js", "repository": { @@ -31,11 +31,11 @@ "dependencies": { "@babel/core": "^7.0.0", "@vue/babel-preset-app": "^3.1.1", - "@vuepress/markdown": "1.0.0-alpha.40", - "@vuepress/markdown-loader": "1.0.0-alpha.40", - "@vuepress/plugin-last-updated": "1.0.0-alpha.40", - "@vuepress/plugin-register-components": "1.0.0-alpha.40", - "@vuepress/shared-utils": "1.0.0-alpha.40", + "@vuepress/markdown": "^1.0.0-alpha.41", + "@vuepress/markdown-loader": "^1.0.0-alpha.41", + "@vuepress/plugin-last-updated": "^1.0.0-alpha.41", + "@vuepress/plugin-register-components": "^1.0.0-alpha.41", + "@vuepress/shared-utils": "^1.0.0-alpha.41", "autoprefixer": "^7.1.2", "babel-loader": "^8.0.4", "cache-loader": "^1.2.2", diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json index 8f47bdcb..5bb5e501 100644 --- a/packages/@vuepress/markdown-loader/package.json +++ b/packages/@vuepress/markdown-loader/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown-loader", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "markdown-loader for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/markdown": "1.0.0-alpha.40", + "@vuepress/markdown": "^1.0.0-alpha.41", "loader-utils": "^1.1.0", "lru-cache": "^5.1.1" }, diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index be61392c..6b3ed11f 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "markdown for vuepress", "main": "index.js", "publishConfig": { @@ -19,7 +19,7 @@ "markdown" ], "dependencies": { - "@vuepress/shared-utils": "1.0.0-alpha.40", + "@vuepress/shared-utils": "^1.0.0-alpha.41", "lru-cache": "^5.1.1", "markdown-it": "^8.4.1", "markdown-it-anchor": "^5.0.2", diff --git a/packages/@vuepress/plugin-active-header-links/package.json b/packages/@vuepress/plugin-active-header-links/package.json index f2a1b281..540148d4 100644 --- a/packages/@vuepress/plugin-active-header-links/package.json +++ b/packages/@vuepress/plugin-active-header-links/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-active-header-links", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "active-header-links plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-back-to-top/package.json b/packages/@vuepress/plugin-back-to-top/package.json index 56e436f2..27304842 100644 --- a/packages/@vuepress/plugin-back-to-top/package.json +++ b/packages/@vuepress/plugin-back-to-top/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-back-to-top", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "back-to-top plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-blog/package.json b/packages/@vuepress/plugin-blog/package.json index ff9d32f6..1588257d 100644 --- a/packages/@vuepress/plugin-blog/package.json +++ b/packages/@vuepress/plugin-blog/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-blog", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "blog plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-clean-urls/package.json b/packages/@vuepress/plugin-clean-urls/package.json index b7d691f9..16f16835 100644 --- a/packages/@vuepress/plugin-clean-urls/package.json +++ b/packages/@vuepress/plugin-clean-urls/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-clean-urls", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "clean urls plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-container/package.json b/packages/@vuepress/plugin-container/package.json index 4dfb8d3b..221fda6b 100644 --- a/packages/@vuepress/plugin-container/package.json +++ b/packages/@vuepress/plugin-container/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-container", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "markdown container plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-google-analytics/package.json b/packages/@vuepress/plugin-google-analytics/package.json index d609f93e..ec1f11e4 100644 --- a/packages/@vuepress/plugin-google-analytics/package.json +++ b/packages/@vuepress/plugin-google-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-google-analytics", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "google-analytics plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-i18n-ui/package.json b/packages/@vuepress/plugin-i18n-ui/package.json index dd9e928b..37b766b8 100644 --- a/packages/@vuepress/plugin-i18n-ui/package.json +++ b/packages/@vuepress/plugin-i18n-ui/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-i18n-ui", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "i18n-ui plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-last-updated/package.json b/packages/@vuepress/plugin-last-updated/package.json index f181bc3a..ef900f03 100644 --- a/packages/@vuepress/plugin-last-updated/package.json +++ b/packages/@vuepress/plugin-last-updated/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-last-updated", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "last-updated plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-medium-zoom/package.json b/packages/@vuepress/plugin-medium-zoom/package.json index 92db4f16..1d5a9137 100644 --- a/packages/@vuepress/plugin-medium-zoom/package.json +++ b/packages/@vuepress/plugin-medium-zoom/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-medium-zoom", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "medium-zoom plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-notification/package.json b/packages/@vuepress/plugin-notification/package.json index d2db448c..79151752 100644 --- a/packages/@vuepress/plugin-notification/package.json +++ b/packages/@vuepress/plugin-notification/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-notification", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "notification plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-nprogress/package.json b/packages/@vuepress/plugin-nprogress/package.json index 682969e0..c5402755 100644 --- a/packages/@vuepress/plugin-nprogress/package.json +++ b/packages/@vuepress/plugin-nprogress/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-nprogress", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "nprogress plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pagination/package.json b/packages/@vuepress/plugin-pagination/package.json index 58fd69d8..47a2d3bc 100644 --- a/packages/@vuepress/plugin-pagination/package.json +++ b/packages/@vuepress/plugin-pagination/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pagination", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "pagination plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json index b7218c04..16efb6ed 100644 --- a/packages/@vuepress/plugin-pwa/package.json +++ b/packages/@vuepress/plugin-pwa/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pwa", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "pwa plugin for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/shared-utils": "1.0.0-alpha.40", + "@vuepress/shared-utils": "^1.0.0-alpha.41", "register-service-worker": "^1.5.2", "workbox-build": "^3.1.0" }, diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json index 98ca9ed0..a33af466 100644 --- a/packages/@vuepress/plugin-register-components/package.json +++ b/packages/@vuepress/plugin-register-components/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-register-components", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "register-global-components plugin for vuepress", "main": "index.js", "publishConfig": { @@ -24,6 +24,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-register-components#readme", "dependencies": { - "@vuepress/shared-utils": "1.0.0-alpha.40" + "@vuepress/shared-utils": "^1.0.0-alpha.41" } } diff --git a/packages/@vuepress/plugin-search/package.json b/packages/@vuepress/plugin-search/package.json index 781f7cc7..6c3e8868 100644 --- a/packages/@vuepress/plugin-search/package.json +++ b/packages/@vuepress/plugin-search/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-search", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "search plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/shared-utils/package.json b/packages/@vuepress/shared-utils/package.json index d0f0cc7e..ac61f88d 100644 --- a/packages/@vuepress/shared-utils/package.json +++ b/packages/@vuepress/shared-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/shared-utils", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "shared-utils for vuepress", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json index 0d1fc45d..059ebf2a 100644 --- a/packages/@vuepress/test-utils/package.json +++ b/packages/@vuepress/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/test-utils", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "test-utils for vuepress", "publishConfig": { "access": "public" @@ -21,8 +21,8 @@ "@babel/preset-env": "^7.0.0", "@types/jest": "^23.3.10", "@vue/test-utils": "^1.0.0-beta.16", - "@vuepress/core": "1.0.0-alpha.40", - "@vuepress/shared-utils": "1.0.0-alpha.40", + "@vuepress/core": "^1.0.0-alpha.41", + "@vuepress/shared-utils": "^1.0.0-alpha.41", "babel-core": "^7.0.0-0", "babel-jest": "^23.4.0", "execa": "^0.10.0", diff --git a/packages/@vuepress/theme-blog/package.json b/packages/@vuepress/theme-blog/package.json index 7782c399..afa1ce3e 100644 --- a/packages/@vuepress/theme-blog/package.json +++ b/packages/@vuepress/theme-blog/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@vuepress/theme-blog", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "theme-blog for vuepress", "main": "index.js", "publishConfig": { @@ -19,10 +19,10 @@ "generator" ], "dependencies": { - "@vuepress/plugin-blog": "1.0.0-alpha.40", - "@vuepress/plugin-medium-zoom": "1.0.0-alpha.40", - "@vuepress/plugin-pagination": "1.0.0-alpha.40", - "@vuepress/plugin-search": "1.0.0-alpha.40" + "@vuepress/plugin-blog": "^1.0.0-alpha.41", + "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.41", + "@vuepress/plugin-pagination": "^1.0.0-alpha.41", + "@vuepress/plugin-search": "^1.0.0-alpha.41" }, "author": "ULIVZ ", "license": "MIT", diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json index d1ab6336..0bc33208 100644 --- a/packages/@vuepress/theme-default/package.json +++ b/packages/@vuepress/theme-default/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/theme-default", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "Default theme for VuePress", "main": "index.js", "publishConfig": { @@ -30,9 +30,9 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme", "dependencies": { - "@vuepress/plugin-active-header-links": "1.0.0-alpha.40", - "@vuepress/plugin-nprogress": "1.0.0-alpha.40", - "@vuepress/plugin-search": "1.0.0-alpha.40", + "@vuepress/plugin-active-header-links": "^1.0.0-alpha.41", + "@vuepress/plugin-nprogress": "^1.0.0-alpha.41", + "@vuepress/plugin-search": "^1.0.0-alpha.41", "docsearch.js": "^2.5.2", "stylus": "^0.54.5", "stylus-loader": "^3.0.2" diff --git a/packages/@vuepress/theme-vue/package.json b/packages/@vuepress/theme-vue/package.json index 3c812e27..90526459 100644 --- a/packages/@vuepress/theme-vue/package.json +++ b/packages/@vuepress/theme-vue/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@vuepress/theme-vue", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "VuePress theme for official Vue projects", "main": "index.js", "publishConfig": { @@ -31,6 +31,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-vue#readme", "dependencies": { - "@vuepress/theme-default": "1.0.0-alpha.40" + "@vuepress/theme-default": "^1.0.0-alpha.41" } } diff --git a/packages/blog/package.json b/packages/blog/package.json index 44378490..09bf763f 100644 --- a/packages/blog/package.json +++ b/packages/blog/package.json @@ -2,13 +2,13 @@ "private": true, "name": "blog", "description": "blog of VuePress", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "scripts": { "dev": "vuepress dev source --temp .temp", "build": "vuepress build source --temp .temp" }, "dependencies": { - "@vuepress/theme-blog": "1.0.0-alpha.40", - "vuepress": "1.0.0-alpha.40" + "@vuepress/theme-blog": "^1.0.0-alpha.41", + "vuepress": "^1.0.0-alpha.41" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index 5a0fa4a5..c2c88d6d 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "name": "docs", "description": "docs of VuePress", "scripts": { @@ -24,14 +24,14 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "devDependencies": { - "@vuepress/plugin-back-to-top": "1.0.0-alpha.40", - "@vuepress/plugin-google-analytics": "1.0.0-alpha.40", - "@vuepress/plugin-i18n-ui": "1.0.0-alpha.40", - "@vuepress/plugin-medium-zoom": "1.0.0-alpha.40", - "@vuepress/plugin-notification": "1.0.0-alpha.40", - "@vuepress/plugin-pwa": "1.0.0-alpha.40", - "@vuepress/theme-vue": "1.0.0-alpha.40", - "vuepress": "1.0.0-alpha.40", + "@vuepress/plugin-back-to-top": "^1.0.0-alpha.41", + "@vuepress/plugin-google-analytics": "^1.0.0-alpha.41", + "@vuepress/plugin-i18n-ui": "^1.0.0-alpha.41", + "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.41", + "@vuepress/plugin-notification": "^1.0.0-alpha.41", + "@vuepress/plugin-pwa": "^1.0.0-alpha.41", + "@vuepress/theme-vue": "^1.0.0-alpha.41", + "vuepress": "^1.0.0-alpha.41", "vuepress-plugin-flowchart": "^1.4.2" } } diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json index f81eeb6a..e1195a3d 100644 --- a/packages/vuepress/package.json +++ b/packages/vuepress/package.json @@ -1,6 +1,6 @@ { "name": "vuepress", - "version": "1.0.0-alpha.40", + "version": "1.0.0-alpha.41", "description": "Minimalistic doc generator with Vue component based layout system", "main": "index.js", "repository": { @@ -29,8 +29,8 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "dependencies": { - "@vuepress/core": "1.0.0-alpha.40", - "@vuepress/theme-default": "1.0.0-alpha.40", + "@vuepress/core": "^1.0.0-alpha.41", + "@vuepress/theme-default": "^1.0.0-alpha.41", "cac": "^6.3.9" }, "engines": { From 75572620bbfde32836409dd7a7356e664b3280a7 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 03:19:15 +0800 Subject: [PATCH 013/260] workflow: remote-version script for version checking --- package.json | 1 + scripts/remote-version.js | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 scripts/remote-version.js diff --git a/package.json b/package.json index 7760dbbf..09157a75 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "scripts": { "bootstrap": "lerna bootstrap && yarn tsc", "boot": "node scripts/bootstrap.js", + "remote-version": "node scripts/remote-version.js", "dev": "yarn tsc && yarn workspace docs dev", "build": "yarn tsc && yarn workspace docs build", "show-help": "yarn workspace docs show-help", diff --git a/scripts/remote-version.js b/scripts/remote-version.js new file mode 100644 index 00000000..5ef2b1a8 --- /dev/null +++ b/scripts/remote-version.js @@ -0,0 +1,21 @@ +const { join } = require('path') +const { readdirSync } = require('fs') +const chalk = require('chalk') +const execa = require('execa') + +const PRIVATE_PACKAGES = ['theme-vue', 'theme-blog', '.DS_Store'] + +const scopePackages = readdirSync( + join(__dirname, '../packages/@vuepress') +) + .filter(n => !PRIVATE_PACKAGES.includes(n)) + .map(n => `@vuepress/${n}`) + +async function log () { + await Promise.all(['vuepress', ...scopePackages].map(async pkg => { + const version = (await execa('npm', ['view', `${pkg}@next`, 'version'])).stdout.toString() + console.log(`${pkg}: ${chalk.cyan(version)}`) + })) +} + +log() From c85f62d4a69b6bcefe07321fe973e617c70d92a0 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sun, 3 Mar 2019 14:51:39 +0800 Subject: [PATCH 014/260] fix($theme-default): support slot and v-pre container (close: #1387) (#1389) --- .../@vuepress/core/lib/prepare/AppContext.js | 10 ++++++++++ packages/@vuepress/core/package.json | 1 + packages/@vuepress/markdown/index.js | 5 ----- packages/@vuepress/markdown/lib/constant.js | 2 -- .../markdown/lib/markdownSlotsContainers.js | 12 ------------ packages/@vuepress/plugin-container/index.js | 4 ++-- packages/@vuepress/theme-default/index.js | 7 +------ packages/@vuepress/theme-default/package.json | 1 + .../theme-default/styles/custom-blocks.styl | 17 ----------------- packages/docs/docs/.vuepress/config.js | 2 +- packages/docs/docs/.vuepress/styles/index.styl | 18 +++++++++++++++++- .../docs/plugin/official/plugin-container.md | 4 ++-- .../zh/plugin/official/plugin-container.md | 4 ++-- yarn.lock | 4 ---- 14 files changed, 37 insertions(+), 54 deletions(-) delete mode 100644 packages/@vuepress/markdown/lib/markdownSlotsContainers.js diff --git a/packages/@vuepress/core/lib/prepare/AppContext.js b/packages/@vuepress/core/lib/prepare/AppContext.js index f769842f..e7d71bb5 100755 --- a/packages/@vuepress/core/lib/prepare/AppContext.js +++ b/packages/@vuepress/core/lib/prepare/AppContext.js @@ -149,6 +149,16 @@ module.exports = class AppContext { .use(require('../internal-plugins/transformModule')) .use(require('../internal-plugins/dataBlock')) .use(require('../internal-plugins/frontmatterBlock')) + .use('@vuepress/container', { + type: 'slot', + before: info => `' + }) + .use('@vuepress/container', { + type: 'v-pre', + before: '
', + after: '
' + }) .use('@vuepress/last-updated', !!shouldUseLastUpdated) .use('@vuepress/register-components', { componentsDir: [ diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json index a911d646..ebc88453 100644 --- a/packages/@vuepress/core/package.json +++ b/packages/@vuepress/core/package.json @@ -33,6 +33,7 @@ "@vue/babel-preset-app": "^3.1.1", "@vuepress/markdown": "^1.0.0-alpha.41", "@vuepress/markdown-loader": "^1.0.0-alpha.41", + "@vuepress/plugin-container": "^1.0.0-alpha.41", "@vuepress/plugin-last-updated": "^1.0.0-alpha.41", "@vuepress/plugin-register-components": "^1.0.0-alpha.41", "@vuepress/shared-utils": "^1.0.0-alpha.41", diff --git a/packages/@vuepress/markdown/index.js b/packages/@vuepress/markdown/index.js index 58c6a2a1..dd5271d9 100644 --- a/packages/@vuepress/markdown/index.js +++ b/packages/@vuepress/markdown/index.js @@ -14,7 +14,6 @@ const lineNumbersPlugin = require('./lib/lineNumbers') const componentPlugin = require('./lib/component') const hoistScriptStylePlugin = require('./lib/hoist') const convertRouterLinkPlugin = require('./lib/link') -const markdownSlotsContainersPlugin = require('./lib/markdownSlotsContainers') const snippetPlugin = require('./lib/snippet') const tocPlugin = require('./lib/tableOfContents') const emojiPlugin = require('markdown-it-emoji') @@ -74,10 +73,6 @@ module.exports = (markdown = {}) => { .use(hoistScriptStylePlugin) .end() - .plugin(PLUGINS.MARKDOWN_SLOTS_CONTAINERS) - .use(markdownSlotsContainersPlugin) - .end() - .plugin(PLUGINS.EMOJI) .use(emojiPlugin) .end() diff --git a/packages/@vuepress/markdown/lib/constant.js b/packages/@vuepress/markdown/lib/constant.js index 1334788e..ca9e0416 100644 --- a/packages/@vuepress/markdown/lib/constant.js +++ b/packages/@vuepress/markdown/lib/constant.js @@ -5,8 +5,6 @@ exports.PLUGINS = { SNIPPET: 'snippet', CONVERT_ROUTER_LINK: 'convert-router-link', HOIST_SCRIPT_STYLE: 'hoist-script-style', - CONTAINERS: 'containers', - MARKDOWN_SLOTS_CONTAINERS: 'markdown-slots-containers', ANCHOR: 'anchor', EMOJI: 'emoji', TOC: 'toc', diff --git a/packages/@vuepress/markdown/lib/markdownSlotsContainers.js b/packages/@vuepress/markdown/lib/markdownSlotsContainers.js deleted file mode 100644 index c70101f1..00000000 --- a/packages/@vuepress/markdown/lib/markdownSlotsContainers.js +++ /dev/null @@ -1,12 +0,0 @@ -const container = require('markdown-it-container') - -const SLOT_KEY = 'slot' - -module.exports = md => { - md - .use(container, SLOT_KEY, { - render: (tokens, idx) => tokens[idx].nesting === 1 - ? `' - }) -} diff --git a/packages/@vuepress/plugin-container/index.js b/packages/@vuepress/plugin-container/index.js index 4715ae04..8eefc9ee 100644 --- a/packages/@vuepress/plugin-container/index.js +++ b/packages/@vuepress/plugin-container/index.js @@ -26,8 +26,8 @@ module.exports = (options, context) => ({ if (!render) { if (before !== undefined && after !== undefined) { render = (tokens, index) => { - const token = tokens[index] - return token.nesting === 1 ? call(before, token) : call(after, token) + const info = tokens[index].info.trim().slice(type.length).trim + return tokens[index].nesting === 1 ? call(before, info) : call(after, info) } } else { render = (tokens, index) => { diff --git a/packages/@vuepress/theme-default/index.js b/packages/@vuepress/theme-default/index.js index 0f214621..0bf3d1e8 100644 --- a/packages/@vuepress/theme-default/index.js +++ b/packages/@vuepress/theme-default/index.js @@ -23,11 +23,6 @@ module.exports = (options, ctx) => ({ '@vuepress/plugin-nprogress', ['@vuepress/container', { type: 'tip' }], ['@vuepress/container', { type: 'warning' }], - ['@vuepress/container', { type: 'danger' }], - ['@vuepress/container', { - type: 'v-pre', - before: '
\n', - after: '
\n' - }] + ['@vuepress/container', { type: 'danger' }] ] }) diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json index 0bc33208..96318932 100644 --- a/packages/@vuepress/theme-default/package.json +++ b/packages/@vuepress/theme-default/package.json @@ -31,6 +31,7 @@ "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme", "dependencies": { "@vuepress/plugin-active-header-links": "^1.0.0-alpha.41", + "@vuepress/plugin-container": "^1.0.0-alpha.41", "@vuepress/plugin-nprogress": "^1.0.0-alpha.41", "@vuepress/plugin-search": "^1.0.0-alpha.41", "docsearch.js": "^2.5.2", diff --git a/packages/@vuepress/theme-default/styles/custom-blocks.styl b/packages/@vuepress/theme-default/styles/custom-blocks.styl index 33b3e206..2d07835b 100644 --- a/packages/@vuepress/theme-default/styles/custom-blocks.styl +++ b/packages/@vuepress/theme-default/styles/custom-blocks.styl @@ -27,21 +27,4 @@ a color $textColor -pre.vue-container - border-left-width: .5rem; - border-left-style: solid; - border-color: #42b983; - border-radius: 0px; - & > code - font-size: 14px !important; - & > p - margin: -5px 0 -20px 0; - code - background-color: #42b983 !important; - padding: 3px 5px; - border-radius: 3px; - color #000 - em - color #808080 - font-weight light diff --git a/packages/docs/docs/.vuepress/config.js b/packages/docs/docs/.vuepress/config.js index 999cc253..a76f0e22 100755 --- a/packages/docs/docs/.vuepress/config.js +++ b/packages/docs/docs/.vuepress/config.js @@ -81,7 +81,7 @@ module.exports = ctx => ({ }], ['@vuepress/container', { type: 'upgrade', - before: ({ info }) => ``, + before: info => ``, after: '', }], ], diff --git a/packages/docs/docs/.vuepress/styles/index.styl b/packages/docs/docs/.vuepress/styles/index.styl index 9014ba76..596a926f 100644 --- a/packages/docs/docs/.vuepress/styles/index.styl +++ b/packages/docs/docs/.vuepress/styles/index.styl @@ -4,5 +4,21 @@ // font-size 30px; //} - +pre.vue-container + border-left-width: .5rem; + border-left-style: solid; + border-color: #42b983; + border-radius: 0px; + & > code + font-size: 14px !important; + & > p + margin: -5px 0 -20px 0; + code + background-color: #42b983 !important; + padding: 3px 5px; + border-radius: 3px; + color #000 + em + color #808080 + font-weight light diff --git a/packages/docs/docs/plugin/official/plugin-container.md b/packages/docs/docs/plugin/official/plugin-container.md index 994cf2e8..b50794c8 100644 --- a/packages/docs/docs/plugin/official/plugin-container.md +++ b/packages/docs/docs/plugin/official/plugin-container.md @@ -49,14 +49,14 @@ The default title for the container. If no title was provided, `defaultTitle` wi - Type: `string | Function` - Default: `undefined` -String to be placed before the block. If specified as a function, a argument `token` will be passed to it. If specified, it will override `defaultTitle`. +String to be placed before the block. If specified as a function, a argument `info` will be passed to it. (In the example above, `info` will be `bar`.) If specified, it will override `defaultTitle`. ### after - Type: `string | Function` - Default: `undefined` -String to be placed after the block. If specified as a function, a argument `token` will be passed to it. If specified, it will override `defaultTitle`. +String to be placed after the block. If specified as a function, a argument `info` will be passed to it. (In the example above, `info` will be `bar`.) If specified, it will override `defaultTitle`. ### validate diff --git a/packages/docs/docs/zh/plugin/official/plugin-container.md b/packages/docs/docs/zh/plugin/official/plugin-container.md index e3d3e5f2..fcf47117 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-container.md +++ b/packages/docs/docs/zh/plugin/official/plugin-container.md @@ -49,14 +49,14 @@ module.exports = { - 类型: `string | Function` - 默认值: `undefined` -要插入在容器前的 HTML。如果设置为一个函数,将传入当前的 `token` 作为第一个参数。如果设置了这个值,它将覆盖 `defaultTitle` 的效果。 +要插入在容器前的 HTML。如果设置为一个函数,将传入当前的 `info` 作为第一个参数。(在上面的例子中,`info` 的值为 `bar`。)如果设置了这个值,它将覆盖 `defaultTitle` 的效果。 ### after - 类型: `string | Function` - 默认值: `undefined` -要插入在容器后的 HTML。如果设置为一个函数,将传入当前的 `token` 作为第一个参数。如果设置了这个值,它将覆盖 `defaultTitle` 的效果。 +要插入在容器后的 HTML。如果设置为一个函数,将传入当前的 `info` 作为第一个参数。(在上面的例子中,`info` 的值为 `bar`。)如果设置了这个值,它将覆盖 `defaultTitle` 的效果。 ### validate diff --git a/yarn.lock b/yarn.lock index c33c127a..2bcf92a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6580,10 +6580,6 @@ markdown-it-emoji@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc" -markdown-it-table-of-contents@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.0.tgz#950541bec9a365a75265f5265a09dc0cb5935909" - markdown-it@^8.4.1: version "8.4.2" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54" From f4ce75f73e4d5b64ff552501eada396b0cec5679 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 14:55:57 +0800 Subject: [PATCH 015/260] v1.0.0-alpha.42 --- lerna.json | 2 +- packages/@vuepress/core/package.json | 14 +++++++------- .../@vuepress/markdown-loader/package.json | 4 ++-- packages/@vuepress/markdown/package.json | 4 ++-- .../plugin-active-header-links/package.json | 2 +- .../@vuepress/plugin-back-to-top/package.json | 2 +- packages/@vuepress/plugin-blog/package.json | 2 +- .../@vuepress/plugin-clean-urls/package.json | 2 +- .../@vuepress/plugin-container/package.json | 2 +- .../plugin-google-analytics/package.json | 2 +- packages/@vuepress/plugin-i18n-ui/package.json | 2 +- .../@vuepress/plugin-last-updated/package.json | 2 +- .../@vuepress/plugin-medium-zoom/package.json | 2 +- .../@vuepress/plugin-notification/package.json | 2 +- .../@vuepress/plugin-nprogress/package.json | 2 +- .../@vuepress/plugin-pagination/package.json | 2 +- packages/@vuepress/plugin-pwa/package.json | 4 ++-- .../plugin-register-components/package.json | 4 ++-- packages/@vuepress/plugin-search/package.json | 2 +- packages/@vuepress/shared-utils/package.json | 2 +- packages/@vuepress/test-utils/package.json | 6 +++--- packages/@vuepress/theme-blog/package.json | 10 +++++----- packages/@vuepress/theme-default/package.json | 10 +++++----- packages/@vuepress/theme-vue/package.json | 4 ++-- packages/blog/package.json | 6 +++--- packages/docs/package.json | 18 +++++++++--------- packages/vuepress/package.json | 6 +++--- 27 files changed, 60 insertions(+), 60 deletions(-) diff --git a/lerna.json b/lerna.json index 3d8078c4..6aee3c28 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "lerna": "2.5.1", "npmClient": "yarn", "useWorkspaces": true, - "version": "1.0.0-alpha.41" + "version": "1.0.0-alpha.42" } diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json index ebc88453..38aada52 100644 --- a/packages/@vuepress/core/package.json +++ b/packages/@vuepress/core/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/core", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "Minimalistic doc generator with Vue component based layout system", "main": "lib/index.js", "repository": { @@ -31,12 +31,12 @@ "dependencies": { "@babel/core": "^7.0.0", "@vue/babel-preset-app": "^3.1.1", - "@vuepress/markdown": "^1.0.0-alpha.41", - "@vuepress/markdown-loader": "^1.0.0-alpha.41", - "@vuepress/plugin-container": "^1.0.0-alpha.41", - "@vuepress/plugin-last-updated": "^1.0.0-alpha.41", - "@vuepress/plugin-register-components": "^1.0.0-alpha.41", - "@vuepress/shared-utils": "^1.0.0-alpha.41", + "@vuepress/markdown": "^1.0.0-alpha.42", + "@vuepress/markdown-loader": "^1.0.0-alpha.42", + "@vuepress/plugin-container": "^1.0.0-alpha.42", + "@vuepress/plugin-last-updated": "^1.0.0-alpha.42", + "@vuepress/plugin-register-components": "^1.0.0-alpha.42", + "@vuepress/shared-utils": "^1.0.0-alpha.42", "autoprefixer": "^7.1.2", "babel-loader": "^8.0.4", "cache-loader": "^1.2.2", diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json index 5bb5e501..56920bcb 100644 --- a/packages/@vuepress/markdown-loader/package.json +++ b/packages/@vuepress/markdown-loader/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown-loader", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "markdown-loader for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/markdown": "^1.0.0-alpha.41", + "@vuepress/markdown": "^1.0.0-alpha.42", "loader-utils": "^1.1.0", "lru-cache": "^5.1.1" }, diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index 6b3ed11f..645a7a1f 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "markdown for vuepress", "main": "index.js", "publishConfig": { @@ -19,7 +19,7 @@ "markdown" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.41", + "@vuepress/shared-utils": "^1.0.0-alpha.42", "lru-cache": "^5.1.1", "markdown-it": "^8.4.1", "markdown-it-anchor": "^5.0.2", diff --git a/packages/@vuepress/plugin-active-header-links/package.json b/packages/@vuepress/plugin-active-header-links/package.json index 540148d4..cedc5abe 100644 --- a/packages/@vuepress/plugin-active-header-links/package.json +++ b/packages/@vuepress/plugin-active-header-links/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-active-header-links", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "active-header-links plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-back-to-top/package.json b/packages/@vuepress/plugin-back-to-top/package.json index 27304842..031e4808 100644 --- a/packages/@vuepress/plugin-back-to-top/package.json +++ b/packages/@vuepress/plugin-back-to-top/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-back-to-top", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "back-to-top plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-blog/package.json b/packages/@vuepress/plugin-blog/package.json index 1588257d..7aba87c6 100644 --- a/packages/@vuepress/plugin-blog/package.json +++ b/packages/@vuepress/plugin-blog/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-blog", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "blog plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-clean-urls/package.json b/packages/@vuepress/plugin-clean-urls/package.json index 16f16835..4a108248 100644 --- a/packages/@vuepress/plugin-clean-urls/package.json +++ b/packages/@vuepress/plugin-clean-urls/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-clean-urls", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "clean urls plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-container/package.json b/packages/@vuepress/plugin-container/package.json index 221fda6b..9da34acf 100644 --- a/packages/@vuepress/plugin-container/package.json +++ b/packages/@vuepress/plugin-container/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-container", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "markdown container plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-google-analytics/package.json b/packages/@vuepress/plugin-google-analytics/package.json index ec1f11e4..def922ac 100644 --- a/packages/@vuepress/plugin-google-analytics/package.json +++ b/packages/@vuepress/plugin-google-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-google-analytics", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "google-analytics plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-i18n-ui/package.json b/packages/@vuepress/plugin-i18n-ui/package.json index 37b766b8..3e737fa3 100644 --- a/packages/@vuepress/plugin-i18n-ui/package.json +++ b/packages/@vuepress/plugin-i18n-ui/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-i18n-ui", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "i18n-ui plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-last-updated/package.json b/packages/@vuepress/plugin-last-updated/package.json index ef900f03..a5d40571 100644 --- a/packages/@vuepress/plugin-last-updated/package.json +++ b/packages/@vuepress/plugin-last-updated/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-last-updated", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "last-updated plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-medium-zoom/package.json b/packages/@vuepress/plugin-medium-zoom/package.json index 1d5a9137..c7c8a08b 100644 --- a/packages/@vuepress/plugin-medium-zoom/package.json +++ b/packages/@vuepress/plugin-medium-zoom/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-medium-zoom", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "medium-zoom plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-notification/package.json b/packages/@vuepress/plugin-notification/package.json index 79151752..595ff013 100644 --- a/packages/@vuepress/plugin-notification/package.json +++ b/packages/@vuepress/plugin-notification/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-notification", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "notification plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-nprogress/package.json b/packages/@vuepress/plugin-nprogress/package.json index c5402755..dda392c3 100644 --- a/packages/@vuepress/plugin-nprogress/package.json +++ b/packages/@vuepress/plugin-nprogress/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-nprogress", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "nprogress plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pagination/package.json b/packages/@vuepress/plugin-pagination/package.json index 47a2d3bc..89fdbf6c 100644 --- a/packages/@vuepress/plugin-pagination/package.json +++ b/packages/@vuepress/plugin-pagination/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pagination", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "pagination plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json index 16efb6ed..a01db310 100644 --- a/packages/@vuepress/plugin-pwa/package.json +++ b/packages/@vuepress/plugin-pwa/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pwa", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "pwa plugin for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.41", + "@vuepress/shared-utils": "^1.0.0-alpha.42", "register-service-worker": "^1.5.2", "workbox-build": "^3.1.0" }, diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json index a33af466..5b199b48 100644 --- a/packages/@vuepress/plugin-register-components/package.json +++ b/packages/@vuepress/plugin-register-components/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-register-components", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "register-global-components plugin for vuepress", "main": "index.js", "publishConfig": { @@ -24,6 +24,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-register-components#readme", "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.41" + "@vuepress/shared-utils": "^1.0.0-alpha.42" } } diff --git a/packages/@vuepress/plugin-search/package.json b/packages/@vuepress/plugin-search/package.json index 6c3e8868..4f961337 100644 --- a/packages/@vuepress/plugin-search/package.json +++ b/packages/@vuepress/plugin-search/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-search", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "search plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/shared-utils/package.json b/packages/@vuepress/shared-utils/package.json index ac61f88d..b85d1c7e 100644 --- a/packages/@vuepress/shared-utils/package.json +++ b/packages/@vuepress/shared-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/shared-utils", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "shared-utils for vuepress", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json index 059ebf2a..5e522b51 100644 --- a/packages/@vuepress/test-utils/package.json +++ b/packages/@vuepress/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/test-utils", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "test-utils for vuepress", "publishConfig": { "access": "public" @@ -21,8 +21,8 @@ "@babel/preset-env": "^7.0.0", "@types/jest": "^23.3.10", "@vue/test-utils": "^1.0.0-beta.16", - "@vuepress/core": "^1.0.0-alpha.41", - "@vuepress/shared-utils": "^1.0.0-alpha.41", + "@vuepress/core": "^1.0.0-alpha.42", + "@vuepress/shared-utils": "^1.0.0-alpha.42", "babel-core": "^7.0.0-0", "babel-jest": "^23.4.0", "execa": "^0.10.0", diff --git a/packages/@vuepress/theme-blog/package.json b/packages/@vuepress/theme-blog/package.json index afa1ce3e..374ef48e 100644 --- a/packages/@vuepress/theme-blog/package.json +++ b/packages/@vuepress/theme-blog/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@vuepress/theme-blog", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "theme-blog for vuepress", "main": "index.js", "publishConfig": { @@ -19,10 +19,10 @@ "generator" ], "dependencies": { - "@vuepress/plugin-blog": "^1.0.0-alpha.41", - "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.41", - "@vuepress/plugin-pagination": "^1.0.0-alpha.41", - "@vuepress/plugin-search": "^1.0.0-alpha.41" + "@vuepress/plugin-blog": "^1.0.0-alpha.42", + "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.42", + "@vuepress/plugin-pagination": "^1.0.0-alpha.42", + "@vuepress/plugin-search": "^1.0.0-alpha.42" }, "author": "ULIVZ ", "license": "MIT", diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json index 96318932..f2355a9e 100644 --- a/packages/@vuepress/theme-default/package.json +++ b/packages/@vuepress/theme-default/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/theme-default", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "Default theme for VuePress", "main": "index.js", "publishConfig": { @@ -30,10 +30,10 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme", "dependencies": { - "@vuepress/plugin-active-header-links": "^1.0.0-alpha.41", - "@vuepress/plugin-container": "^1.0.0-alpha.41", - "@vuepress/plugin-nprogress": "^1.0.0-alpha.41", - "@vuepress/plugin-search": "^1.0.0-alpha.41", + "@vuepress/plugin-active-header-links": "^1.0.0-alpha.42", + "@vuepress/plugin-container": "^1.0.0-alpha.42", + "@vuepress/plugin-nprogress": "^1.0.0-alpha.42", + "@vuepress/plugin-search": "^1.0.0-alpha.42", "docsearch.js": "^2.5.2", "stylus": "^0.54.5", "stylus-loader": "^3.0.2" diff --git a/packages/@vuepress/theme-vue/package.json b/packages/@vuepress/theme-vue/package.json index 90526459..2c4e785b 100644 --- a/packages/@vuepress/theme-vue/package.json +++ b/packages/@vuepress/theme-vue/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@vuepress/theme-vue", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "VuePress theme for official Vue projects", "main": "index.js", "publishConfig": { @@ -31,6 +31,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-vue#readme", "dependencies": { - "@vuepress/theme-default": "^1.0.0-alpha.41" + "@vuepress/theme-default": "^1.0.0-alpha.42" } } diff --git a/packages/blog/package.json b/packages/blog/package.json index 09bf763f..5c65b3f2 100644 --- a/packages/blog/package.json +++ b/packages/blog/package.json @@ -2,13 +2,13 @@ "private": true, "name": "blog", "description": "blog of VuePress", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "scripts": { "dev": "vuepress dev source --temp .temp", "build": "vuepress build source --temp .temp" }, "dependencies": { - "@vuepress/theme-blog": "^1.0.0-alpha.41", - "vuepress": "^1.0.0-alpha.41" + "@vuepress/theme-blog": "^1.0.0-alpha.42", + "vuepress": "^1.0.0-alpha.42" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index c2c88d6d..f3f3b870 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "name": "docs", "description": "docs of VuePress", "scripts": { @@ -24,14 +24,14 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "devDependencies": { - "@vuepress/plugin-back-to-top": "^1.0.0-alpha.41", - "@vuepress/plugin-google-analytics": "^1.0.0-alpha.41", - "@vuepress/plugin-i18n-ui": "^1.0.0-alpha.41", - "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.41", - "@vuepress/plugin-notification": "^1.0.0-alpha.41", - "@vuepress/plugin-pwa": "^1.0.0-alpha.41", - "@vuepress/theme-vue": "^1.0.0-alpha.41", - "vuepress": "^1.0.0-alpha.41", + "@vuepress/plugin-back-to-top": "^1.0.0-alpha.42", + "@vuepress/plugin-google-analytics": "^1.0.0-alpha.42", + "@vuepress/plugin-i18n-ui": "^1.0.0-alpha.42", + "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.42", + "@vuepress/plugin-notification": "^1.0.0-alpha.42", + "@vuepress/plugin-pwa": "^1.0.0-alpha.42", + "@vuepress/theme-vue": "^1.0.0-alpha.42", + "vuepress": "^1.0.0-alpha.42", "vuepress-plugin-flowchart": "^1.4.2" } } diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json index e1195a3d..f9528ca5 100644 --- a/packages/vuepress/package.json +++ b/packages/vuepress/package.json @@ -1,6 +1,6 @@ { "name": "vuepress", - "version": "1.0.0-alpha.41", + "version": "1.0.0-alpha.42", "description": "Minimalistic doc generator with Vue component based layout system", "main": "index.js", "repository": { @@ -29,8 +29,8 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "dependencies": { - "@vuepress/core": "^1.0.0-alpha.41", - "@vuepress/theme-default": "^1.0.0-alpha.41", + "@vuepress/core": "^1.0.0-alpha.42", + "@vuepress/theme-default": "^1.0.0-alpha.42", "cac": "^6.3.9" }, "engines": { From 835db9b8424f41886b589272ea2bba3ce4766257 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 14:57:03 +0800 Subject: [PATCH 016/260] chore: 1.0.0-alpha.42 changelog --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2d3c6de..6949b16d 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +
+# [](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.42...v) (2019-03-03) + + + + +# [1.0.0-alpha.42](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.41...v1.0.0-alpha.42) (2019-03-03) + + +### Bug Fixes + +* **$theme-default:** support slot and v-pre container (close: [#1387](https://github.com/vuejs/vuepress/issues/1387)) ([#1389](https://github.com/vuejs/vuepress/issues/1389)) ([c85f62d](https://github.com/vuejs/vuepress/commit/c85f62d)) + + + # [](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.40...v) (2019-02-27) From dfd15216319c037c2f37f59b185a35515ee8a28a Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 15:06:17 +0800 Subject: [PATCH 017/260] workflow: setup circle ci --- .circleci/config.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..946e6f68 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,37 @@ +# Javascript Node CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-javascript/ for more details +# +version: 2 +jobs: + build: + docker: + # specify the version you desire here + - image: circleci/node:7.10 + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + # - image: circleci/mongo:3.4.4 + + working_directory: ~/repo + + steps: + - checkout + + # Download and cache dependencies + - restore_cache: + keys: + - v1-dependencies-{{ checksum "package.json" }} + # fallback to using the latest cache if no exact match is found + - v1-dependencies- + + - run: yarn install + + - save_cache: + paths: + - node_modules + key: v1-dependencies-{{ checksum "package.json" }} + + # run tests! + - run: yarn test From 01c261c6bf39c127fe9329daddfb082158c4c765 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 15:11:35 +0800 Subject: [PATCH 018/260] workflow: tweak ci setup --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 946e6f68..bf777bf9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,7 @@ jobs: build: docker: # specify the version you desire here - - image: circleci/node:7.10 + - image: circleci/node:8.6.0 # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images @@ -26,7 +26,7 @@ jobs: # fallback to using the latest cache if no exact match is found - v1-dependencies- - - run: yarn install + - run: yarn bootstrap - save_cache: paths: @@ -34,4 +34,4 @@ jobs: key: v1-dependencies-{{ checksum "package.json" }} # run tests! - - run: yarn test + - run: yarn lint && yarn test From b1618c48610c0f711978662cf2d9f98d7372865e Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 15:18:17 +0800 Subject: [PATCH 019/260] workflow: tweak bootstrap script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 09157a75..b7a5120c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ ], "description": "Minimalistic doc generator with Vue component based layout system", "scripts": { - "bootstrap": "lerna bootstrap && yarn tsc", + "bootstrap": "yarn && lerna bootstrap && yarn tsc", "boot": "node scripts/bootstrap.js", "remote-version": "node scripts/remote-version.js", "dev": "yarn tsc && yarn workspace docs dev", From 7478eb1dd734a2a2fad9fe0f18b640ab7a69d899 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 15:21:38 +0800 Subject: [PATCH 020/260] chore: changelog --- CHANGELOG.md | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6949b16d..5d59fe87 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,3 @@ - -# [](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.42...v) (2019-03-03) - - - # [1.0.0-alpha.42](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.41...v1.0.0-alpha.42) (2019-03-03) @@ -12,9 +7,24 @@ * **$theme-default:** support slot and v-pre container (close: [#1387](https://github.com/vuejs/vuepress/issues/1387)) ([#1389](https://github.com/vuejs/vuepress/issues/1389)) ([c85f62d](https://github.com/vuejs/vuepress/commit/c85f62d)) + +# [1.0.0-alpha.41](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.40...v1.0.0-alpha.41) (2019-03-02) - -# [](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.40...v) (2019-02-27) + +### Bug Fixes + +* **$core:** Generated js have SyntaxError when source-map is enabled (close: [#1367](https://github.com/vuejs/vuepress/issues/1367)) ([#1378](https://github.com/vuejs/vuepress/issues/1378)) ([b53324d](https://github.com/vuejs/vuepress/commit/b53324d)) +* **$core:** skip plugin on error (Related to [#1371](https://github.com/vuejs/vuepress/issues/1371)) [#1383](https://github.com/vuejs/vuepress/issues/1383) ([7d2c065](https://github.com/vuejs/vuepress/commit/7d2c065)) +* **$core:** support theme index file which is not at root (close: [#1362](https://github.com/vuejs/vuepress/issues/1362)) ([#1376](https://github.com/vuejs/vuepress/issues/1376)) ([204cbe4](https://github.com/vuejs/vuepress/commit/204cbe4)) +* **$markdown:** fix line highlighting (close: [#1364](https://github.com/vuejs/vuepress/issues/1364)) ([#1369](https://github.com/vuejs/vuepress/issues/1369)) ([5a111a2](https://github.com/vuejs/vuepress/commit/5a111a2)) +* **$theme-default:** encodeURI for sidebar items which contain CJK characters (close: [#717](https://github.com/vuejs/vuepress/issues/717)) ([285b368](https://github.com/vuejs/vuepress/commit/285b368)) + + +### Features + +* **$plugin-container:** init ([#1381](https://github.com/vuejs/vuepress/issues/1381)) ([ad0ff72](https://github.com/vuejs/vuepress/commit/ad0ff72)) +* **$markdown:** TOC component (close: [#1275](https://github.com/vuejs/vuepress/issues/1275)) ([#1375](https://github.com/vuejs/vuepress/issues/1375)) ([760f90b](https://github.com/vuejs/vuepress/commit/760f90b)) +* **$plugin-nprogress:** allow nprogress use different color and add docs ([#1366](https://github.com/vuejs/vuepress/issues/1366)) ([1a928c7](https://github.com/vuejs/vuepress/commit/1a928c7)) From 760a05e7faa628afb365082c34a786f9eb25b90b Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 3 Mar 2019 15:24:08 +0800 Subject: [PATCH 021/260] workflow: set version of node image to LTS version --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bf777bf9..88094174 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,7 @@ jobs: build: docker: # specify the version you desire here - - image: circleci/node:8.6.0 + - image: circleci/node:10.15.2 # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images From 5bf4d24238a178410a23ac3dfd707ffb68cec010 Mon Sep 17 00:00:00 2001 From: JK Date: Mon, 4 Mar 2019 23:20:53 +0800 Subject: [PATCH 022/260] fix($plugin-blog): read layoutComponents from themeAPI (#1396) --- packages/@vuepress/plugin-blog/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/plugin-blog/index.js b/packages/@vuepress/plugin-blog/index.js index 5de6bb0b..697c33fc 100644 --- a/packages/@vuepress/plugin-blog/index.js +++ b/packages/@vuepress/plugin-blog/index.js @@ -1,7 +1,7 @@ const { path, datatypes: { isString }} = require('@vuepress/shared-utils') module.exports = (options, ctx) => { - const { layoutComponentMap } = ctx + const { themeAPI: { layoutComponentMap }} = ctx const { pageEnhancers = [], postsDir = '_posts', From 7148df2e82602d457db7c62e98a417dfb669ce79 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Mon, 4 Mar 2019 23:21:19 +0800 Subject: [PATCH 023/260] chore: remove plugin notification (#1394) --- .../@vuepress/plugin-notification/.npmignore | 2 -- .../@vuepress/plugin-notification/README.md | 5 ---- .../plugin-notification/enhanceAppFile.js | 9 ------ .../@vuepress/plugin-notification/index.js | 5 ---- .../@vuepress/plugin-notification/index.styl | 0 .../plugin-notification/package.json | 29 ------------------- packages/docs/docs/.vuepress/config.js | 1 - packages/docs/docs/.vuepress/enhanceApp.js | 13 ++++----- packages/docs/package.json | 4 +-- 9 files changed, 8 insertions(+), 60 deletions(-) delete mode 100644 packages/@vuepress/plugin-notification/.npmignore delete mode 100644 packages/@vuepress/plugin-notification/README.md delete mode 100644 packages/@vuepress/plugin-notification/enhanceAppFile.js delete mode 100644 packages/@vuepress/plugin-notification/index.js delete mode 100644 packages/@vuepress/plugin-notification/index.styl delete mode 100644 packages/@vuepress/plugin-notification/package.json diff --git a/packages/@vuepress/plugin-notification/.npmignore b/packages/@vuepress/plugin-notification/.npmignore deleted file mode 100644 index 18f0a334..00000000 --- a/packages/@vuepress/plugin-notification/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -__tests__ -__mocks__ \ No newline at end of file diff --git a/packages/@vuepress/plugin-notification/README.md b/packages/@vuepress/plugin-notification/README.md deleted file mode 100644 index 52738f0b..00000000 --- a/packages/@vuepress/plugin-notification/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# @vuepress/plugin-notification - -> notification plugin for vuepress - -See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-notification.html). diff --git a/packages/@vuepress/plugin-notification/enhanceAppFile.js b/packages/@vuepress/plugin-notification/enhanceAppFile.js deleted file mode 100644 index 995c4d5c..00000000 --- a/packages/@vuepress/plugin-notification/enhanceAppFile.js +++ /dev/null @@ -1,9 +0,0 @@ -import './index.styl' - -export default ({ Vue, isServer }) => { - if (!isServer) { - import('vue-toasted' /* webpackChunkName: "notification" */).then((module) => { - Vue.use(module.default) - }) - } -} diff --git a/packages/@vuepress/plugin-notification/index.js b/packages/@vuepress/plugin-notification/index.js deleted file mode 100644 index 18d505ac..00000000 --- a/packages/@vuepress/plugin-notification/index.js +++ /dev/null @@ -1,5 +0,0 @@ -const path = require('path') - -module.exports = { - enhanceAppFiles: path.resolve(__dirname, './enhanceAppFile.js') -} diff --git a/packages/@vuepress/plugin-notification/index.styl b/packages/@vuepress/plugin-notification/index.styl deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/@vuepress/plugin-notification/package.json b/packages/@vuepress/plugin-notification/package.json deleted file mode 100644 index 595ff013..00000000 --- a/packages/@vuepress/plugin-notification/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@vuepress/plugin-notification", - "version": "1.0.0-alpha.42", - "description": "notification plugin for vuepress", - "main": "index.js", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vuepress.git", - "directory": "packages/@vuepress/plugin-notification" - }, - "keywords": [ - "documentation", - "vue", - "vuepress", - "generator" - ], - "dependencies": { - "vue-toasted": "^1.1.25" - }, - "author": "ULIVZ ", - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vuepress/issues" - }, - "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-notification#readme" -} diff --git a/packages/docs/docs/.vuepress/config.js b/packages/docs/docs/.vuepress/config.js index a76f0e22..ea960501 100755 --- a/packages/docs/docs/.vuepress/config.js +++ b/packages/docs/docs/.vuepress/config.js @@ -70,7 +70,6 @@ module.exports = ctx => ({ updatePopup: true }], ['@vuepress/medium-zoom', true], - ['@vuepress/notification', true], ['@vuepress/google-analytics', { ga: 'UA-128189152-1' }], diff --git a/packages/docs/docs/.vuepress/enhanceApp.js b/packages/docs/docs/.vuepress/enhanceApp.js index 18926a4d..66849fe6 100644 --- a/packages/docs/docs/.vuepress/enhanceApp.js +++ b/packages/docs/docs/.vuepress/enhanceApp.js @@ -1,8 +1,7 @@ -export default ({ - Vue, // the version of Vue being used in the VuePress app - options, // the options for the root Vue instance - router, // the router instance for the app - siteData // site metadata -}) => { - // ...apply enhancements to the app +export default ({ Vue, isServer }) => { + if (!isServer) { + import('vue-toasted' /* webpackChunkName: "notification" */).then((module) => { + Vue.use(module.default) + }) + } } diff --git a/packages/docs/package.json b/packages/docs/package.json index f3f3b870..a52538e1 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -28,10 +28,10 @@ "@vuepress/plugin-google-analytics": "^1.0.0-alpha.42", "@vuepress/plugin-i18n-ui": "^1.0.0-alpha.42", "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.42", - "@vuepress/plugin-notification": "^1.0.0-alpha.42", "@vuepress/plugin-pwa": "^1.0.0-alpha.42", "@vuepress/theme-vue": "^1.0.0-alpha.42", "vuepress": "^1.0.0-alpha.42", - "vuepress-plugin-flowchart": "^1.4.2" + "vuepress-plugin-flowchart": "^1.4.2", + "vue-toasted": "^1.1.25" } } From e5d8ed4655b42e975a1d72286bc859257b3d2eb9 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 4 Mar 2019 23:46:13 +0800 Subject: [PATCH 024/260] feat: refine node api (#1395) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fix($core): markdown slot doesn‘t work. (regression of c85f62d) - docs: fresh Node.JS API. - test: official plugins. --- babel.config.js | 3 + package.json | 1 + packages/@vuepress/core/lib/build.js | 197 - .../@vuepress/core/lib/{app => client}/app.js | 0 .../core/lib/{app => client}/clientEntry.js | 0 .../{app => client}/components/ClientOnly.js | 0 .../lib/{app => client}/components/Content.js | 0 .../components/ContentSlotsDistributor.js | 0 .../components/GlobalLayout.vue | 0 .../{app => client}/components/HeaderList.vue | 0 .../{app => client}/components/NotFound.vue | 0 .../components/OutboundLink.vue | 0 .../lib/{app => client}/components/TOC.vue | 0 .../core/lib/{app => client}/dataMixin.js | 4 +- .../core/lib/{app => client}/index.dev.html | 0 .../core/lib/{app => client}/index.ssr.html | 0 .../lib/{app => client}/plugins/Store.d.ts | 0 .../core/lib/{app => client}/plugins/Store.js | 0 .../lib/{app => client}/plugins/VuePress.d.ts | 0 .../lib/{app => client}/plugins/VuePress.js | 0 .../core/lib/{app => client}/redirect.js | 0 .../{app => client}/root-mixins/updateMeta.js | 0 .../core/lib/{app => client}/serverEntry.js | 0 .../lib/{app => client}/style/config.styl | 0 .../core/lib/{app => client}/util.js | 0 packages/@vuepress/core/lib/dev.js | 207 - packages/@vuepress/core/lib/index.js | 25 +- .../{prepare/AppContext.js => node/App.js} | 179 +- .../core/lib/{prepare => node}/CacheLoader.js | 6 +- .../{prepare => node}/ClientComputedMixin.js | 0 .../core/lib/{prepare => node}/Page.js | 2 +- .../__tests__/plugin-api/AsyncOption.spec.js | 2 +- .../node}/__tests__/plugin-api/Option.spec.js | 2 +- .../__tests__/plugin-api/PluginAPI.spec.js | 4 +- .../__tests__/plugin-api/PluginUtil.spec.js | 16 +- .../node/__tests__/prepare/App.spec.js} | 12 +- .../node}/__tests__/prepare/Page.spec.js | 34 +- .../fixtures/docs-config/.vuepress/config.js | 0 .../prepare/fixtures/docs-config/README.md | 0 .../fixtures/docs-i18n/.vuepress/config.js | 0 .../prepare/fixtures/docs-i18n/README.md | 0 .../prepare/fixtures/docs-i18n/zh/README.md | 0 .../docs-local-theme/.vuepress/config.js | 0 .../.vuepress/theme/Layout.vue | 0 .../fixtures/docs-local-theme/README.md | 0 .../__tests__/prepare/fixtures/docs/README.md | 0 .../__tests__/prepare/fixtures/docs/alpha.md | 0 .../{ => lib/node}/__tests__/prepare/util.js | 14 +- .../theme-api/fixtures/theme/Layout.vue | 0 .../fixtures/theme/components/Home.vue | 0 .../node}/__tests__/theme-api/index.spec.js | 2 +- .../@vuepress/core/lib/node/build/index.js | 273 + .../lib/{prepare => node}/createMarkdown.js | 4 +- .../@vuepress/core/lib/node/createTemp.js | 42 + packages/@vuepress/core/lib/node/dev/index.js | 272 + .../docs.fallback/.vuepress/theme/Layout.vue} | 0 .../core/lib/node/docs.fallback/README.md | 3 + .../internal-plugins/dataBlock/index.js | 0 .../internal-plugins/dataBlock/loader.js | 0 .../{ => node}/internal-plugins/enhanceApp.js | 0 .../frontmatterBlock/index.js | 0 .../frontmatterBlock/loader.js | 2 +- .../internal-plugins/layoutComponents.js | 0 .../internal-plugins/pageComponents.js | 0 .../internal-plugins/palette/index.js | 2 +- .../{ => node}/internal-plugins/rootMixins.js | 3 +- .../lib/{ => node}/internal-plugins/routes.js | 0 .../{ => node}/internal-plugins/siteData.js | 0 .../internal-plugins/style/client.js | 0 .../internal-plugins/style/index.js | 0 .../internal-plugins/transformModule.js | 2 +- .../core/lib/{prepare => node}/loadConfig.js | 0 .../core/lib/{prepare => node}/loadTheme.js | 10 +- .../plugin-api/abstract/AsyncOption.js | 0 .../{ => node}/plugin-api/abstract/Option.js | 0 .../lib/{ => node}/plugin-api/constants.js | 0 .../core/lib/{ => node}/plugin-api/index.js | 44 + .../plugin-api/override/AliasOption.js | 0 .../override/ClientDynamicModulesOption.js | 0 .../plugin-api/override/DefineOption.js | 0 .../override/EnhanceAppFilesOption.js | 0 .../override/GlobalUIComponentsOption.js | 0 .../plugin-api/override/instantiateOption.js | 0 .../core/lib/{ => node}/plugin-api/util.js | 0 .../lib/node/theme-api/Layout.fallback.vue | 3 + .../core/lib/{ => node}/theme-api/index.js | 2 +- .../core/lib/{ => node}/util/index.js | 0 .../lib/{ => node}/webpack/ClientPlugin.js | 0 .../lib/{ => node}/webpack/DevLogPlugin.js | 0 .../core/lib/{ => node}/webpack/HeadPlugin.js | 0 .../{ => node}/webpack/createBaseConfig.js | 48 +- .../{ => node}/webpack/createClientConfig.js | 6 +- .../{ => node}/webpack/createServerConfig.js | 4 +- .../core/lib/{ => node}/webpack/noopModule.js | 0 packages/@vuepress/core/lib/prepare/index.js | 19 - .../__snapshots__/containers.spec.js.snap | 35 - .../__snapshots__/highlightLines.spec.js.snap | 17 +- .../__snapshots__/hoist.spec.js.snap | 1 + .../__snapshots__/lineNumers.spec.js.snap | 3 +- .../__tests__/__snapshots__/link.spec.js.snap | 21 +- .../__snapshots__/snippet.spec.js.snap | 17 +- .../markdown/__tests__/containers.spec.js | 15 - .../code-snippet-highlightLines-multiple.md | 2 +- .../code-snippet-highlightLines-single.md | 2 +- .../__tests__/fragments/code-snippet.md | 2 +- .../markdown/__tests__/highlight.spec.js | 7 +- .../markdown/__tests__/highlightLines.spec.js | 15 +- .../markdown/__tests__/hoist.spec.js | 11 +- .../markdown/__tests__/lineNumers.spec.js | 11 +- .../markdown/__tests__/snippet.spec.js | 17 +- packages/@vuepress/markdown/__tests__/util.js | 17 - packages/@vuepress/markdown/package.json | 3 + .../__snapshots__/index.spec.js.snap | 48 + .../__tests__/fragments/danger.md} | 0 .../__tests__/fragments/markdown-slots.md | 10 + .../__tests__/fragments/tip-override.md} | 0 .../__tests__/fragments/tip.md} | 0 .../__tests__/fragments/v-pre.md} | 0 .../__tests__/fragments/warning.md} | 0 .../plugin-container/__tests__/index.spec.js | 36 + packages/@vuepress/plugin-container/index.js | 4 +- .../@vuepress/plugin-container/package.json | 3 + .../shared-utils/src/parseFrontmatter.ts | 6 +- .../test-utils/client/createLocalVue.js | 20 + packages/@vuepress/test-utils/client/index.js | 7 + .../test-utils/{ => client}/mockComponent.js | 2 +- .../test-utils/{ => client}/siteData.js | 2 +- .../@vuepress/test-utils/createJestRunner.js | 12 - .../@vuepress/test-utils/createLocalVue.js | 17 - .../fixtures/docs/.vuepress/theme/Layout.vue | 3 + .../test-utils/fixtures/docs/README.md | 1 + packages/@vuepress/test-utils/getRouter.js | 5 - packages/@vuepress/test-utils/index.js | 11 + .../test-utils/{ => lib}/createJestConfig.js | 2 +- .../test-utils/lib/createJestRunner.js | 45 + .../@vuepress/test-utils/lib/getFragment.js | 15 + .../@vuepress/test-utils/lib/getFragments.js | 13 + .../test-utils/{jest => lib}/jest.config.js | 3 - packages/@vuepress/test-utils/package.json | 18 +- .../__tests__/components/DropdownLink.spec.js | 2 +- .../__tests__/components/NavLink.spec.js | 2 +- .../__snapshots__/DropdownLink.spec.js.snap | 11 +- .../__snapshots__/NavLink.spec.js.snap | 3 +- packages/docs/docs/.vuepress/config.js | 11 + packages/docs/docs/.vuepress/nav/en.js | 4 +- packages/docs/docs/.vuepress/nav/zh.js | 4 +- packages/docs/docs/api/README.md | 7 + packages/docs/docs/api/cli.md | 45 + .../docs/{config/README.md => api/config.md} | 9 +- packages/docs/docs/api/node.md | 57 + packages/docs/docs/guide/assets.md | 2 +- packages/docs/docs/guide/basic-config.md | 2 +- .../docs/docs/guide/directory-structure.md | 4 +- packages/docs/docs/guide/markdown.md | 6 +- packages/docs/docs/guide/using-vue.md | 2 +- .../docs/miscellaneous/migration-guide.md | 4 +- packages/docs/docs/plugin/context-api.md | 2 +- .../docs/plugin/official/plugin-nprogress.md | 2 +- .../docs/docs/theme/default-theme-config.md | 2 +- packages/docs/docs/theme/writing-a-theme.md | 2 +- packages/docs/docs/zh/api/README.md | 7 + packages/docs/docs/zh/api/cli.md | 45 + .../zh/{config/README.md => api/config.md} | 9 +- packages/docs/docs/zh/api/node.md | 57 + packages/docs/docs/zh/guide/assets.md | 2 +- packages/docs/docs/zh/guide/basic-config.md | 2 +- .../docs/docs/zh/guide/directory-structure.md | 2 +- packages/docs/docs/zh/guide/markdown.md | 6 +- packages/docs/docs/zh/guide/using-vue.md | 2 +- .../docs/zh/miscellaneous/migration-guide.md | 4 +- packages/docs/docs/zh/plugin/context-api.md | 2 +- .../zh/plugin/official/plugin-nprogress.md | 2 +- .../docs/zh/theme/default-theme-config.md | 2 +- .../docs/docs/zh/theme/writing-a-theme.md | 2 +- packages/docs/package.json | 1 + packages/vuepress/lib/handleUnknownCommand.js | 18 +- packages/vuepress/lib/registerCoreCommands.js | 6 +- scripts/jest.config.js | 9 +- scripts/test.js | 26 +- yarn.lock | 5315 ++++++++--------- 180 files changed, 3887 insertions(+), 3743 deletions(-) delete mode 100644 packages/@vuepress/core/lib/build.js rename packages/@vuepress/core/lib/{app => client}/app.js (100%) rename packages/@vuepress/core/lib/{app => client}/clientEntry.js (100%) rename packages/@vuepress/core/lib/{app => client}/components/ClientOnly.js (100%) rename packages/@vuepress/core/lib/{app => client}/components/Content.js (100%) rename packages/@vuepress/core/lib/{app => client}/components/ContentSlotsDistributor.js (100%) rename packages/@vuepress/core/lib/{app => client}/components/GlobalLayout.vue (100%) rename packages/@vuepress/core/lib/{app => client}/components/HeaderList.vue (100%) rename packages/@vuepress/core/lib/{app => client}/components/NotFound.vue (100%) rename packages/@vuepress/core/lib/{app => client}/components/OutboundLink.vue (100%) rename packages/@vuepress/core/lib/{app => client}/components/TOC.vue (100%) rename packages/@vuepress/core/lib/{app => client}/dataMixin.js (89%) rename packages/@vuepress/core/lib/{app => client}/index.dev.html (100%) rename packages/@vuepress/core/lib/{app => client}/index.ssr.html (100%) rename packages/@vuepress/core/lib/{app => client}/plugins/Store.d.ts (100%) rename packages/@vuepress/core/lib/{app => client}/plugins/Store.js (100%) rename packages/@vuepress/core/lib/{app => client}/plugins/VuePress.d.ts (100%) rename packages/@vuepress/core/lib/{app => client}/plugins/VuePress.js (100%) rename packages/@vuepress/core/lib/{app => client}/redirect.js (100%) rename packages/@vuepress/core/lib/{app => client}/root-mixins/updateMeta.js (100%) rename packages/@vuepress/core/lib/{app => client}/serverEntry.js (100%) rename packages/@vuepress/core/lib/{app => client}/style/config.styl (100%) rename packages/@vuepress/core/lib/{app => client}/util.js (100%) delete mode 100644 packages/@vuepress/core/lib/dev.js rename packages/@vuepress/core/lib/{prepare/AppContext.js => node/App.js} (73%) rename packages/@vuepress/core/lib/{prepare => node}/CacheLoader.js (89%) rename packages/@vuepress/core/lib/{prepare => node}/ClientComputedMixin.js (100%) rename packages/@vuepress/core/lib/{prepare => node}/Page.js (99%) rename packages/@vuepress/core/{ => lib/node}/__tests__/plugin-api/AsyncOption.spec.js (90%) rename packages/@vuepress/core/{ => lib/node}/__tests__/plugin-api/Option.spec.js (97%) rename packages/@vuepress/core/{ => lib/node}/__tests__/plugin-api/PluginAPI.spec.js (95%) rename packages/@vuepress/core/{ => lib/node}/__tests__/plugin-api/PluginUtil.spec.js (76%) rename packages/@vuepress/core/{__tests__/prepare/prepare.spec.js => lib/node/__tests__/prepare/App.spec.js} (70%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/Page.spec.js (80%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs-config/.vuepress/config.js (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs-config/README.md (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs-i18n/.vuepress/config.js (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs-i18n/README.md (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs-i18n/zh/README.md (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs-local-theme/.vuepress/config.js (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs-local-theme/.vuepress/theme/Layout.vue (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs-local-theme/README.md (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs/README.md (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/fixtures/docs/alpha.md (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/prepare/util.js (55%) rename packages/@vuepress/core/{ => lib/node}/__tests__/theme-api/fixtures/theme/Layout.vue (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/theme-api/fixtures/theme/components/Home.vue (100%) rename packages/@vuepress/core/{ => lib/node}/__tests__/theme-api/index.spec.js (93%) create mode 100644 packages/@vuepress/core/lib/node/build/index.js rename packages/@vuepress/core/lib/{prepare => node}/createMarkdown.js (83%) create mode 100644 packages/@vuepress/core/lib/node/createTemp.js create mode 100644 packages/@vuepress/core/lib/node/dev/index.js rename packages/@vuepress/core/lib/{theme-api/Layout.fallback.vue => node/docs.fallback/.vuepress/theme/Layout.vue} (100%) create mode 100644 packages/@vuepress/core/lib/node/docs.fallback/README.md rename packages/@vuepress/core/lib/{ => node}/internal-plugins/dataBlock/index.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/dataBlock/loader.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/enhanceApp.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/frontmatterBlock/index.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/frontmatterBlock/loader.js (94%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/layoutComponents.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/pageComponents.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/palette/index.js (95%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/rootMixins.js (81%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/routes.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/siteData.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/style/client.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/style/index.js (100%) rename packages/@vuepress/core/lib/{ => node}/internal-plugins/transformModule.js (90%) rename packages/@vuepress/core/lib/{prepare => node}/loadConfig.js (100%) rename packages/@vuepress/core/lib/{prepare => node}/loadTheme.js (90%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/abstract/AsyncOption.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/abstract/Option.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/constants.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/index.js (88%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/override/AliasOption.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/override/ClientDynamicModulesOption.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/override/DefineOption.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/override/EnhanceAppFilesOption.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/override/GlobalUIComponentsOption.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/override/instantiateOption.js (100%) rename packages/@vuepress/core/lib/{ => node}/plugin-api/util.js (100%) create mode 100644 packages/@vuepress/core/lib/node/theme-api/Layout.fallback.vue rename packages/@vuepress/core/lib/{ => node}/theme-api/index.js (98%) rename packages/@vuepress/core/lib/{ => node}/util/index.js (100%) rename packages/@vuepress/core/lib/{ => node}/webpack/ClientPlugin.js (100%) rename packages/@vuepress/core/lib/{ => node}/webpack/DevLogPlugin.js (100%) rename packages/@vuepress/core/lib/{ => node}/webpack/HeadPlugin.js (100%) rename packages/@vuepress/core/lib/{ => node}/webpack/createBaseConfig.js (90%) rename packages/@vuepress/core/lib/{ => node}/webpack/createClientConfig.js (90%) rename packages/@vuepress/core/lib/{ => node}/webpack/createServerConfig.js (90%) rename packages/@vuepress/core/lib/{ => node}/webpack/noopModule.js (100%) delete mode 100644 packages/@vuepress/core/lib/prepare/index.js delete mode 100644 packages/@vuepress/markdown/__tests__/__snapshots__/containers.spec.js.snap delete mode 100644 packages/@vuepress/markdown/__tests__/containers.spec.js create mode 100644 packages/@vuepress/plugin-container/__tests__/__snapshots__/index.spec.js.snap rename packages/@vuepress/{markdown/__tests__/fragments/container-danger.md => plugin-container/__tests__/fragments/danger.md} (100%) create mode 100644 packages/@vuepress/plugin-container/__tests__/fragments/markdown-slots.md rename packages/@vuepress/{markdown/__tests__/fragments/container-tip-override.md => plugin-container/__tests__/fragments/tip-override.md} (100%) rename packages/@vuepress/{markdown/__tests__/fragments/container-tip.md => plugin-container/__tests__/fragments/tip.md} (100%) rename packages/@vuepress/{markdown/__tests__/fragments/container-v-pre.md => plugin-container/__tests__/fragments/v-pre.md} (100%) rename packages/@vuepress/{markdown/__tests__/fragments/container-warning.md => plugin-container/__tests__/fragments/warning.md} (100%) create mode 100644 packages/@vuepress/plugin-container/__tests__/index.spec.js create mode 100644 packages/@vuepress/test-utils/client/createLocalVue.js create mode 100644 packages/@vuepress/test-utils/client/index.js rename packages/@vuepress/test-utils/{ => client}/mockComponent.js (88%) rename packages/@vuepress/test-utils/{ => client}/siteData.js (98%) delete mode 100644 packages/@vuepress/test-utils/createJestRunner.js delete mode 100644 packages/@vuepress/test-utils/createLocalVue.js create mode 100644 packages/@vuepress/test-utils/fixtures/docs/.vuepress/theme/Layout.vue create mode 100644 packages/@vuepress/test-utils/fixtures/docs/README.md delete mode 100644 packages/@vuepress/test-utils/getRouter.js create mode 100644 packages/@vuepress/test-utils/index.js rename packages/@vuepress/test-utils/{ => lib}/createJestConfig.js (67%) create mode 100644 packages/@vuepress/test-utils/lib/createJestRunner.js create mode 100644 packages/@vuepress/test-utils/lib/getFragment.js create mode 100644 packages/@vuepress/test-utils/lib/getFragments.js rename packages/@vuepress/test-utils/{jest => lib}/jest.config.js (81%) create mode 100644 packages/docs/docs/api/README.md create mode 100644 packages/docs/docs/api/cli.md rename packages/docs/docs/{config/README.md => api/config.md} (98%) create mode 100644 packages/docs/docs/api/node.md create mode 100644 packages/docs/docs/zh/api/README.md create mode 100644 packages/docs/docs/zh/api/cli.md rename packages/docs/docs/zh/{config/README.md => api/config.md} (98%) create mode 100644 packages/docs/docs/zh/api/node.md diff --git a/babel.config.js b/babel.config.js index 87edd47c..fa59afb6 100644 --- a/babel.config.js +++ b/babel.config.js @@ -3,6 +3,9 @@ module.exports = { 'test': { 'presets': [ ['@babel/preset-env', { 'targets': { 'node': 'current' }}] + ], + 'plugins': [ + '@babel/plugin-syntax-dynamic-import' ] } } diff --git a/package.json b/package.json index b7a5120c..ca677c54 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "remote-version": "node scripts/remote-version.js", "dev": "yarn tsc && yarn workspace docs dev", "build": "yarn tsc && yarn workspace docs build", + "view-info": "yarn tsc && yarn workspace docs view-info", "show-help": "yarn workspace docs show-help", "dev:blog": "yarn tsc && yarn workspace blog dev", "build:blog": "yarn tsc && yarn workspace blog build", diff --git a/packages/@vuepress/core/lib/build.js b/packages/@vuepress/core/lib/build.js deleted file mode 100644 index 23e49bbc..00000000 --- a/packages/@vuepress/core/lib/build.js +++ /dev/null @@ -1,197 +0,0 @@ -'use strict' - -module.exports = async function build (sourceDir, cliOptions = {}) { - process.env.NODE_ENV = 'production' - - const webpack = require('webpack') - const readline = require('readline') - const escape = require('escape-html') - - const { chalk, fs, path, logger, env, performance } = require('@vuepress/shared-utils') - const prepare = require('./prepare/index') - const createClientConfig = require('./webpack/createClientConfig') - const createServerConfig = require('./webpack/createServerConfig') - const { createBundleRenderer } = require('vue-server-renderer') - const { normalizeHeadTag, applyUserWebpackConfig } = require('./util/index') - - logger.wait('Extracting site metadata...') - const ctx = await prepare(sourceDir, cliOptions, true /* isProd */) - - const { outDir, cwd } = ctx - if (cwd === outDir) { - return console.error(logger.error(chalk.red('Unexpected option: outDir cannot be set to the current working directory.\n'), false)) - } - - await fs.emptyDir(outDir) - logger.debug('Dist directory: ' + chalk.gray(outDir)) - - let clientConfig = createClientConfig(ctx, cliOptions).toConfig() - let serverConfig = createServerConfig(ctx, cliOptions).toConfig() - - // apply user config... - const userConfig = ctx.siteConfig.configureWebpack - if (userConfig) { - clientConfig = applyUserWebpackConfig(userConfig, clientConfig, false) - serverConfig = applyUserWebpackConfig(userConfig, serverConfig, true) - } - - // compile! - const stats = await compile([clientConfig, serverConfig]) - - const serverBundle = require(path.resolve(outDir, 'manifest/server.json')) - const clientManifest = require(path.resolve(outDir, 'manifest/client.json')) - - // remove manifests after loading them. - await fs.remove(path.resolve(outDir, 'manifest')) - - // find and remove empty style chunk caused by - // https://github.com/webpack-contrib/mini-css-extract-plugin/issues/85 - // TODO remove when it's fixed - if (!clientConfig.devtool && (!clientConfig.plugins || - !clientConfig.plugins.some(p => - p instanceof webpack.SourceMapDevToolPlugin || - p instanceof webpack.EvalSourceMapDevToolPlugin - ))) { - await workaroundEmptyStyleChunk() - } - - // create server renderer using built manifests - const renderer = createBundleRenderer(serverBundle, { - clientManifest, - runInNewContext: false, - inject: false, - shouldPrefetch: ctx.siteConfig.shouldPrefetch || (() => true), - template: await fs.readFile(ctx.ssrTemplate, 'utf-8') - }) - - // pre-render head tags from user config - const userHeadTags = (ctx.siteConfig.head || []) - .map(renderHeadTag) - .join('\n ') - - // if the user does not have a custom 404.md, generate the theme's default - if (!ctx.pages.some(p => p.path === '/404.html')) { - ctx.addPage({ path: '/404.html' }) - } - - // render pages - logger.wait('Rendering static HTML...') - - const pagePaths = [] - for (const page of ctx.pages) { - pagePaths.push(await renderPage(page)) - } - - readline.clearLine(process.stdout, 0) - readline.cursorTo(process.stdout, 0) - - await ctx.pluginAPI.options.generated.apply(pagePaths) - - // DONE. - const relativeDir = path.relative(cwd, outDir) - logger.success(`Generated static files in ${chalk.cyan(relativeDir)}.`) - const { duration } = performance.stop() - logger.developer(`It took a total of ${chalk.cyan(`${duration}ms`)} to run the ${chalk.cyan('vuepress build')}.`) - console.log() - - // --- helpers --- - - function compile (config) { - return new Promise((resolve, reject) => { - webpack(config, (err, stats) => { - if (err) { - return reject(err) - } - if (stats.hasErrors()) { - stats.toJson().errors.forEach(err => { - console.error(err) - }) - reject(new Error(`Failed to compile with errors.`)) - return - } - if (env.isDebug && stats.hasWarnings()) { - stats.toJson().warnings.forEach(warning => { - console.warn(warning) - }) - } - resolve(stats.toJson({ modules: false })) - }) - }) - } - - function renderHeadTag (tag) { - const { tagName, attributes, innerHTML, closeTag } = normalizeHeadTag(tag) - return `<${tagName}${renderAttrs(attributes)}>${innerHTML}${closeTag ? `` : ``}` - } - - function renderAttrs (attrs = {}) { - const keys = Object.keys(attrs) - if (keys.length) { - return ' ' + keys.map(name => `${name}="${escape(attrs[name])}"`).join(' ') - } else { - return '' - } - } - - async function renderPage (page) { - const pagePath = page.path - readline.clearLine(process.stdout, 0) - readline.cursorTo(process.stdout, 0) - process.stdout.write(`Rendering page: ${pagePath}`) - - // #565 Avoid duplicate description meta at SSR. - const meta = (page.frontmatter && page.frontmatter.meta || []).filter(item => item.name !== 'description') - const pageMeta = renderPageMeta(meta) - - const context = { - url: pagePath, - userHeadTags, - pageMeta, - title: 'VuePress', - lang: 'en', - description: '' - } - - let html - try { - html = await renderer.renderToString(context) - } catch (e) { - console.error(logger.error(chalk.red(`Error rendering ${pagePath}:`), false)) - throw e - } - const filename = decodeURIComponent(pagePath.replace(/\/$/, '/index.html').replace(/^\//, '')) - const filePath = path.resolve(outDir, filename) - await fs.ensureDir(path.dirname(filePath)) - await fs.writeFile(filePath, html) - return filePath - } - - function renderPageMeta (meta) { - if (!meta) return '' - return meta.map(m => { - let res = ` { - res += ` ${key}="${escape(m[key])}"` - }) - return res + `>` - }).join('') - } - - async function workaroundEmptyStyleChunk () { - const styleChunk = stats.children[0].assets.find(a => { - return /styles\.\w{8}\.js$/.test(a.name) - }) - if (!styleChunk) return - const styleChunkPath = path.resolve(outDir, styleChunk.name) - const styleChunkContent = await fs.readFile(styleChunkPath, 'utf-8') - await fs.remove(styleChunkPath) - // prepend it to app.js. - // this is necessary for the webpack runtime to work properly. - const appChunk = stats.children[0].assets.find(a => { - return /app\.\w{8}\.js$/.test(a.name) - }) - const appChunkPath = path.resolve(outDir, appChunk.name) - const appChunkContent = await fs.readFile(appChunkPath, 'utf-8') - await fs.writeFile(appChunkPath, styleChunkContent + appChunkContent) - } -} diff --git a/packages/@vuepress/core/lib/app/app.js b/packages/@vuepress/core/lib/client/app.js similarity index 100% rename from packages/@vuepress/core/lib/app/app.js rename to packages/@vuepress/core/lib/client/app.js diff --git a/packages/@vuepress/core/lib/app/clientEntry.js b/packages/@vuepress/core/lib/client/clientEntry.js similarity index 100% rename from packages/@vuepress/core/lib/app/clientEntry.js rename to packages/@vuepress/core/lib/client/clientEntry.js diff --git a/packages/@vuepress/core/lib/app/components/ClientOnly.js b/packages/@vuepress/core/lib/client/components/ClientOnly.js similarity index 100% rename from packages/@vuepress/core/lib/app/components/ClientOnly.js rename to packages/@vuepress/core/lib/client/components/ClientOnly.js diff --git a/packages/@vuepress/core/lib/app/components/Content.js b/packages/@vuepress/core/lib/client/components/Content.js similarity index 100% rename from packages/@vuepress/core/lib/app/components/Content.js rename to packages/@vuepress/core/lib/client/components/Content.js diff --git a/packages/@vuepress/core/lib/app/components/ContentSlotsDistributor.js b/packages/@vuepress/core/lib/client/components/ContentSlotsDistributor.js similarity index 100% rename from packages/@vuepress/core/lib/app/components/ContentSlotsDistributor.js rename to packages/@vuepress/core/lib/client/components/ContentSlotsDistributor.js diff --git a/packages/@vuepress/core/lib/app/components/GlobalLayout.vue b/packages/@vuepress/core/lib/client/components/GlobalLayout.vue similarity index 100% rename from packages/@vuepress/core/lib/app/components/GlobalLayout.vue rename to packages/@vuepress/core/lib/client/components/GlobalLayout.vue diff --git a/packages/@vuepress/core/lib/app/components/HeaderList.vue b/packages/@vuepress/core/lib/client/components/HeaderList.vue similarity index 100% rename from packages/@vuepress/core/lib/app/components/HeaderList.vue rename to packages/@vuepress/core/lib/client/components/HeaderList.vue diff --git a/packages/@vuepress/core/lib/app/components/NotFound.vue b/packages/@vuepress/core/lib/client/components/NotFound.vue similarity index 100% rename from packages/@vuepress/core/lib/app/components/NotFound.vue rename to packages/@vuepress/core/lib/client/components/NotFound.vue diff --git a/packages/@vuepress/core/lib/app/components/OutboundLink.vue b/packages/@vuepress/core/lib/client/components/OutboundLink.vue similarity index 100% rename from packages/@vuepress/core/lib/app/components/OutboundLink.vue rename to packages/@vuepress/core/lib/client/components/OutboundLink.vue diff --git a/packages/@vuepress/core/lib/app/components/TOC.vue b/packages/@vuepress/core/lib/client/components/TOC.vue similarity index 100% rename from packages/@vuepress/core/lib/app/components/TOC.vue rename to packages/@vuepress/core/lib/client/components/TOC.vue diff --git a/packages/@vuepress/core/lib/app/dataMixin.js b/packages/@vuepress/core/lib/client/dataMixin.js similarity index 89% rename from packages/@vuepress/core/lib/app/dataMixin.js rename to packages/@vuepress/core/lib/client/dataMixin.js index 7e0acc5a..8082156e 100644 --- a/packages/@vuepress/core/lib/app/dataMixin.js +++ b/packages/@vuepress/core/lib/client/dataMixin.js @@ -1,8 +1,8 @@ /* global VUEPRESS_TEMP_PATH */ -import Vue from 'vue' +import GLobalVue from 'vue' -export default function dataMixin (I18n, siteData) { +export default function dataMixin (I18n, siteData, Vue = GLobalVue) { prepare(siteData) Vue.$vuepress.$set('siteData', siteData) diff --git a/packages/@vuepress/core/lib/app/index.dev.html b/packages/@vuepress/core/lib/client/index.dev.html similarity index 100% rename from packages/@vuepress/core/lib/app/index.dev.html rename to packages/@vuepress/core/lib/client/index.dev.html diff --git a/packages/@vuepress/core/lib/app/index.ssr.html b/packages/@vuepress/core/lib/client/index.ssr.html similarity index 100% rename from packages/@vuepress/core/lib/app/index.ssr.html rename to packages/@vuepress/core/lib/client/index.ssr.html diff --git a/packages/@vuepress/core/lib/app/plugins/Store.d.ts b/packages/@vuepress/core/lib/client/plugins/Store.d.ts similarity index 100% rename from packages/@vuepress/core/lib/app/plugins/Store.d.ts rename to packages/@vuepress/core/lib/client/plugins/Store.d.ts diff --git a/packages/@vuepress/core/lib/app/plugins/Store.js b/packages/@vuepress/core/lib/client/plugins/Store.js similarity index 100% rename from packages/@vuepress/core/lib/app/plugins/Store.js rename to packages/@vuepress/core/lib/client/plugins/Store.js diff --git a/packages/@vuepress/core/lib/app/plugins/VuePress.d.ts b/packages/@vuepress/core/lib/client/plugins/VuePress.d.ts similarity index 100% rename from packages/@vuepress/core/lib/app/plugins/VuePress.d.ts rename to packages/@vuepress/core/lib/client/plugins/VuePress.d.ts diff --git a/packages/@vuepress/core/lib/app/plugins/VuePress.js b/packages/@vuepress/core/lib/client/plugins/VuePress.js similarity index 100% rename from packages/@vuepress/core/lib/app/plugins/VuePress.js rename to packages/@vuepress/core/lib/client/plugins/VuePress.js diff --git a/packages/@vuepress/core/lib/app/redirect.js b/packages/@vuepress/core/lib/client/redirect.js similarity index 100% rename from packages/@vuepress/core/lib/app/redirect.js rename to packages/@vuepress/core/lib/client/redirect.js diff --git a/packages/@vuepress/core/lib/app/root-mixins/updateMeta.js b/packages/@vuepress/core/lib/client/root-mixins/updateMeta.js similarity index 100% rename from packages/@vuepress/core/lib/app/root-mixins/updateMeta.js rename to packages/@vuepress/core/lib/client/root-mixins/updateMeta.js diff --git a/packages/@vuepress/core/lib/app/serverEntry.js b/packages/@vuepress/core/lib/client/serverEntry.js similarity index 100% rename from packages/@vuepress/core/lib/app/serverEntry.js rename to packages/@vuepress/core/lib/client/serverEntry.js diff --git a/packages/@vuepress/core/lib/app/style/config.styl b/packages/@vuepress/core/lib/client/style/config.styl similarity index 100% rename from packages/@vuepress/core/lib/app/style/config.styl rename to packages/@vuepress/core/lib/client/style/config.styl diff --git a/packages/@vuepress/core/lib/app/util.js b/packages/@vuepress/core/lib/client/util.js similarity index 100% rename from packages/@vuepress/core/lib/app/util.js rename to packages/@vuepress/core/lib/client/util.js diff --git a/packages/@vuepress/core/lib/dev.js b/packages/@vuepress/core/lib/dev.js deleted file mode 100644 index c0b728c0..00000000 --- a/packages/@vuepress/core/lib/dev.js +++ /dev/null @@ -1,207 +0,0 @@ -'use strict' - -module.exports = async (sourceDir, cliOptions = {}, ctx) => { - const { server, host, port } = await prepareServer(sourceDir, cliOptions, ctx) - server.listen(port, host, err => { - if (err) { - console.log(err) - } - }) -} - -module.exports.prepare = prepareServer - -async function prepareServer (sourceDir, cliOptions = {}, context) { - const WebpackDevServer = require('webpack-dev-server') - const { path } = require('@vuepress/shared-utils') - const webpack = require('webpack') - const chokidar = require('chokidar') - - const prepare = require('./prepare/index') - const { chalk, fs, logger } = require('@vuepress/shared-utils') - const HeadPlugin = require('./webpack/HeadPlugin') - const DevLogPlugin = require('./webpack/DevLogPlugin') - const createClientConfig = require('./webpack/createClientConfig') - const { applyUserWebpackConfig } = require('./util/index') - const { frontmatterEmitter } = require('@vuepress/markdown-loader') - - const ctx = context || await prepare(sourceDir, cliOptions, false /* isProd */) - - // setup watchers to update options and dynamically generated files - const update = (reason) => { - console.log(`Reload due to ${reason}`) - ctx.pluginAPI.options.updated.syncApply() - prepare(sourceDir, cliOptions, false /* isProd */).catch(err => { - console.error(logger.error(chalk.red(err.stack), false)) - }) - } - - // Curry update handler by update type - const spawnUpdate = updateType => file => { - const target = path.join(sourceDir, file) - // Bust cache. - delete require.cache[target] - update(`${chalk.red(updateType)} ${chalk.cyan(file)}`) - } - - // watch add/remove of files - const pagesWatcher = chokidar.watch([ - '**/*.md', - '.vuepress/components/**/*.vue' - ], { - cwd: sourceDir, - ignored: ['.vuepress/**/*.md', 'node_modules'], - ignoreInitial: true - }) - pagesWatcher.on('add', spawnUpdate('add')) - pagesWatcher.on('unlink', spawnUpdate('unlink')) - pagesWatcher.on('addDir', spawnUpdate('addDir')) - pagesWatcher.on('unlinkDir', spawnUpdate('unlinkDir')) - - const watchFiles = [ - '.vuepress/config.js', - '.vuepress/config.yml', - '.vuepress/config.toml' - ].concat( - ( - ctx.siteConfig.extraWatchFiles || [] - ).map(file => normalizeWatchFilePath(file, ctx.sourceDir)) - ) - - logger.debug('watchFiles', watchFiles) - - // watch config file - const configWatcher = chokidar.watch(watchFiles, { - cwd: sourceDir, - ignoreInitial: true - }) - configWatcher.on('change', spawnUpdate('change')) - - // also listen for frontmatter changes from markdown files - frontmatterEmitter.on('update', () => update('frontmatter or headers change')) - - // resolve webpack config - let config = createClientConfig(ctx) - - config - .plugin('html') - // using a fork of html-webpack-plugin to avoid it requiring webpack - // internals from an incompatible version. - .use(require('vuepress-html-webpack-plugin'), [{ - template: ctx.devTemplate - }]) - - config - .plugin('site-data') - .use(HeadPlugin, [{ - tags: ctx.siteConfig.head || [] - }]) - - const port = await resolvePort(cliOptions.port || ctx.siteConfig.port) - const { host, displayHost } = await resolveHost(cliOptions.host || ctx.siteConfig.host) - - // debug in a running dev process. - process.stdin - && process.stdin.on('data', chunk => { - const parsed = chunk.toString('utf-8').trim() - if (parsed === '*') { - console.log(Object.keys(ctx)) - } - if (ctx[parsed]) { - console.log(ctx[parsed]) - } - }) - - config - .plugin('vuepress-log') - .use(DevLogPlugin, [{ - port, - displayHost, - publicPath: ctx.base - }]) - - config = config.toConfig() - const userConfig = ctx.siteConfig.configureWebpack - if (userConfig) { - config = applyUserWebpackConfig(userConfig, config, false /* isServer */) - } - - const contentBase = path.resolve(sourceDir, '.vuepress/public') - - const serverConfig = Object.assign({ - disableHostCheck: true, - compress: true, - clientLogLevel: 'error', - hot: true, - quiet: true, - headers: { - 'access-control-allow-origin': '*' - }, - open: cliOptions.open, - publicPath: ctx.base, - watchOptions: { - ignored: [ - /node_modules/, - `!${ctx.tempPath}/**` - ] - }, - historyApiFallback: { - disableDotRule: true, - rewrites: [ - { from: /./, to: path.posix.join(ctx.base, 'index.html') } - ] - }, - overlay: false, - host, - contentBase, - before (app, server) { - if (fs.existsSync(contentBase)) { - app.use(ctx.base, require('express').static(contentBase)) - } - - ctx.pluginAPI.options.beforeDevServer.syncApply(app, server) - }, - after (app, server) { - ctx.pluginAPI.options.afterDevServer.syncApply(app, server) - } - }, ctx.siteConfig.devServer || {}) - - WebpackDevServer.addDevServerEntrypoints(config, serverConfig) - - const compiler = webpack(config) - const server = new WebpackDevServer(compiler, serverConfig) - - return { - server, - host, - port, - ctx - } -} - -function resolveHost (host) { - const defaultHost = 'localhost' - host = host || defaultHost - const displayHost = host === defaultHost - ? 'localhost' - : host - return { - displayHost, - host - } -} - -async function resolvePort (port) { - const portfinder = require('portfinder') - portfinder.basePort = parseInt(port) || 8080 - port = await portfinder.getPortPromise() - return port -} - -function normalizeWatchFilePath (filepath, baseDir) { - const { isAbsolute, relative } = require('path') - if (isAbsolute(filepath)) { - return relative(baseDir, filepath) - } - return filepath -} diff --git a/packages/@vuepress/core/lib/index.js b/packages/@vuepress/core/lib/index.js index 43a6d012..90515245 100644 --- a/packages/@vuepress/core/lib/index.js +++ b/packages/@vuepress/core/lib/index.js @@ -1,5 +1,26 @@ 'use strict' -exports.dev = require('./dev') -exports.build = require('./build') +const App = require('./node/App') +const { logger } = require('@vuepress/shared-utils') + +function createApp (options) { + logger.wait('Extracting site metadata...') + return new App(options) +} + +async function dev (options) { + const app = createApp(options) + await app.process() + await app.dev() +} + +async function build (options) { + const app = createApp(options) + await app.process() + await app.build() +} + +exports.createApp = createApp +exports.dev = dev +exports.build = build exports.eject = require('./eject') diff --git a/packages/@vuepress/core/lib/prepare/AppContext.js b/packages/@vuepress/core/lib/node/App.js similarity index 73% rename from packages/@vuepress/core/lib/prepare/AppContext.js rename to packages/@vuepress/core/lib/node/App.js index e7d71bb5..906316f2 100755 --- a/packages/@vuepress/core/lib/prepare/AppContext.js +++ b/packages/@vuepress/core/lib/node/App.js @@ -16,18 +16,21 @@ const { const Page = require('./Page') const ClientComputedMixin = require('./ClientComputedMixin') -const PluginAPI = require('../plugin-api/index') +const PluginAPI = require('./plugin-api') +const DevProcess = require('./dev') +const BuildProcess = require('./build') +const createTemp = require('./createTemp') /** - * Expose AppContext. + * Expose VuePressApp. */ -module.exports = class AppContext { +module.exports = class App { static getInstance (...args) { - if (!AppContext._instance) { - AppContext._instance = new AppContext(...args) + if (!App._instance) { + App._instance = new App(...args) } - return AppContext._instance + return App._instance } /** @@ -35,24 +38,23 @@ module.exports = class AppContext { * * @param {string} sourceDir * @param {{ - * isProd: boolean, * plugins: pluginsConfig, * theme: themeNameConfig * temp: string * }} options */ - constructor (sourceDir, cliOptions = {}, isProd) { - logger.debug('sourceDir', sourceDir) - this.sourceDir = sourceDir - this.cliOptions = cliOptions - this.isProd = isProd + constructor (options = {}) { + this.options = options + this.sourceDir = this.options.sourceDir || path.join(__dirname, 'docs.fallback') + logger.debug('sourceDir', this.sourceDir) - const { tempPath, writeTemp } = createTemp(cliOptions.temp) + const { tempPath, writeTemp } = createTemp(options.temp) this.tempPath = tempPath this.writeTemp = writeTemp - this.vuepressDir = path.resolve(sourceDir, '.vuepress') + this.vuepressDir = path.resolve(this.sourceDir, '.vuepress') + this.libDir = path.join(__dirname, '../') } /** @@ -63,9 +65,14 @@ module.exports = class AppContext { */ resolveConfigAndInitialize () { - this.siteConfig = loadConfig(this.vuepressDir) - if (isFunction(this.siteConfig)) { - this.siteConfig = this.siteConfig(this) + if (this.options.siteConfig) { + this.siteConfig = this.options.siteConfig + } else { + let siteConfig = loadConfig(this.vuepressDir) + if (isFunction(siteConfig)) { + siteConfig = siteConfig(this) + } + this.siteConfig = siteConfig } // TODO custom cwd. @@ -74,7 +81,7 @@ module.exports = class AppContext { this.base = this.siteConfig.base || '/' this.themeConfig = this.siteConfig.themeConfig || {} - const rawOutDir = this.cliOptions.dest || this.siteConfig.dest + const rawOutDir = this.options.dest || this.siteConfig.dest this.outDir = rawOutDir ? require('path').resolve(this.cwd, rawOutDir) : require('path').resolve(this.sourceDir, '.vuepress/dist') @@ -92,7 +99,6 @@ module.exports = class AppContext { async process () { this.resolveConfigAndInitialize() - this.resolveCacheLoaderOptions() this.normalizeHeadTagUrls() this.themeAPI = loadTheme(this) this.resolveTemplates() @@ -105,18 +111,18 @@ module.exports = class AppContext { this.markdown = createMarkdown(this) await this.resolvePages() - await this.pluginAPI.options.additionalPages.apply(this) + + await this.pluginAPI.applyAsyncOption('additionalPages', this) await Promise.all( - this.pluginAPI.options.additionalPages.appliedValues.map(async (options) => { + this.pluginAPI.getOption('additionalPages').appliedValues.map(async (options) => { await this.addPage(options) }) ) - - await this.pluginAPI.options.ready.apply() + await this.pluginAPI.applyAsyncOption('ready') await Promise.all([ - this.pluginAPI.options.clientDynamicModules.apply(this), - this.pluginAPI.options.enhanceAppFiles.apply(this), - this.pluginAPI.options.globalUIComponents.apply(this) + this.pluginAPI.applyAsyncOption('clientDynamicModules', this), + this.pluginAPI.applyAsyncOption('enhanceAppFiles', this), + this.pluginAPI.applyAsyncOption('globalUIComponents', this) ]) } @@ -138,17 +144,17 @@ module.exports = class AppContext { this.pluginAPI // internl core plugins - .use(require('../internal-plugins/siteData')) - .use(require('../internal-plugins/routes')) - .use(require('../internal-plugins/rootMixins')) - .use(require('../internal-plugins/enhanceApp')) - .use(require('../internal-plugins/palette')) - .use(require('../internal-plugins/style')) - .use(require('../internal-plugins/layoutComponents')) - .use(require('../internal-plugins/pageComponents')) - .use(require('../internal-plugins/transformModule')) - .use(require('../internal-plugins/dataBlock')) - .use(require('../internal-plugins/frontmatterBlock')) + .use(require('./internal-plugins/siteData')) + .use(require('./internal-plugins/routes')) + .use(require('./internal-plugins/rootMixins')) + .use(require('./internal-plugins/enhanceApp')) + .use(require('./internal-plugins/palette')) + .use(require('./internal-plugins/style')) + .use(require('./internal-plugins/layoutComponents')) + .use(require('./internal-plugins/pageComponents')) + .use(require('./internal-plugins/transformModule')) + .use(require('./internal-plugins/dataBlock')) + .use(require('./internal-plugins/frontmatterBlock')) .use('@vuepress/container', { type: 'slot', before: info => ` - From 8a11d1455d7ba1a01e5fb73e858eebc39770eb6e Mon Sep 17 00:00:00 2001 From: Kyle Shaver Date: Wed, 27 Mar 2019 07:39:50 -0700 Subject: [PATCH 072/260] fix($plugin-active-header-links): side navigation edge case bug (#1477) --- .../@vuepress/plugin-active-header-links/clientRootMixin.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@vuepress/plugin-active-header-links/clientRootMixin.js b/packages/@vuepress/plugin-active-header-links/clientRootMixin.js index 7e841c11..06710dd2 100644 --- a/packages/@vuepress/plugin-active-header-links/clientRootMixin.js +++ b/packages/@vuepress/plugin-active-header-links/clientRootMixin.js @@ -40,12 +40,12 @@ export default { const routeHash = decodeURIComponent(this.$route.hash) if (isActive && routeHash !== decodeURIComponent(anchor.hash)) { - let activeAnchor = anchor + const activeAnchor = anchor // check if anchor is at the bottom of the page to keep $route.hash consistent if (bottomY === scrollHeight) { for (let j = i + 1; j < anchors.length; j++) { if (routeHash === decodeURIComponent(anchors[j].hash)) { - activeAnchor = anchors[j] + return } } } From 7848a309f732123f318c86865e4e2616069b8132 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Thu, 28 Mar 2019 00:15:31 +0800 Subject: [PATCH 073/260] chore: remove plugin-clean-urls (#1464) @vuepress/plugin-clean-urls was moved to https://github.com/vuepress/vuepress-plugin-clean-urls --- .../@vuepress/plugin-clean-urls/.npmignore | 3 - .../@vuepress/plugin-clean-urls/README.md | 5 -- packages/@vuepress/plugin-clean-urls/index.js | 22 ------- .../@vuepress/plugin-clean-urls/package.json | 26 -------- packages/docs/docs/guide/markdown.md | 2 +- .../docs/plugin/official/plugin-clean-urls.md | 60 ------------------- packages/docs/docs/zh/guide/markdown.md | 2 +- .../zh/plugin/official/plugin-clean-urls.md | 60 ------------------- 8 files changed, 2 insertions(+), 178 deletions(-) delete mode 100644 packages/@vuepress/plugin-clean-urls/.npmignore delete mode 100644 packages/@vuepress/plugin-clean-urls/README.md delete mode 100644 packages/@vuepress/plugin-clean-urls/index.js delete mode 100644 packages/@vuepress/plugin-clean-urls/package.json delete mode 100644 packages/docs/docs/plugin/official/plugin-clean-urls.md delete mode 100644 packages/docs/docs/zh/plugin/official/plugin-clean-urls.md diff --git a/packages/@vuepress/plugin-clean-urls/.npmignore b/packages/@vuepress/plugin-clean-urls/.npmignore deleted file mode 100644 index 13c38ea3..00000000 --- a/packages/@vuepress/plugin-clean-urls/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -__tests__ -__mocks__ -.temp diff --git a/packages/@vuepress/plugin-clean-urls/README.md b/packages/@vuepress/plugin-clean-urls/README.md deleted file mode 100644 index 422ca95d..00000000 --- a/packages/@vuepress/plugin-clean-urls/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# @vuepress/plugin-clean-urls - -> clean urls plugin for vuepress - -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-clean-urls.html). diff --git a/packages/@vuepress/plugin-clean-urls/index.js b/packages/@vuepress/plugin-clean-urls/index.js deleted file mode 100644 index d09d0754..00000000 --- a/packages/@vuepress/plugin-clean-urls/index.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = (options = {}, context) => { - const { - normalSuffix = '', - indexSuffix = '/' - } = options - - return { - extendPageData (page) { - const { regularPath, frontmatter = {}} = page - if (frontmatter.permalink) return - if (regularPath.endsWith('.html')) { - // normal path - // e.g. foo/bar.md -> foo/bar.html - page.path = regularPath.slice(0, -5) + normalSuffix - } else if (regularPath.endsWith('/')) { - // index path - // e.g. foo/index.md -> foo/ - page.path = regularPath.slice(0, -1) + indexSuffix - } - } - } -} diff --git a/packages/@vuepress/plugin-clean-urls/package.json b/packages/@vuepress/plugin-clean-urls/package.json deleted file mode 100644 index 1291e5f8..00000000 --- a/packages/@vuepress/plugin-clean-urls/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@vuepress/plugin-clean-urls", - "version": "1.0.0-alpha.44", - "description": "clean urls plugin for vuepress", - "main": "index.js", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vuepress.git", - "directory": "packages/@vuepress/plugin-clean-urls" - }, - "keywords": [ - "documentation", - "vue", - "vuepress", - "generator" - ], - "author": "Shigma <1700011071@pku.edu.cn>", - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vuepress/issues" - }, - "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-clean-urls#readme" -} diff --git a/packages/docs/docs/guide/markdown.md b/packages/docs/docs/guide/markdown.md index f6ab0cb9..e2567b11 100644 --- a/packages/docs/docs/guide/markdown.md +++ b/packages/docs/docs/guide/markdown.md @@ -37,7 +37,7 @@ And providing you are in `foo/one.md`: ### Redirection for URLs -VuePress supports redirecting to clean links. If a link `/foo` is not found, VuePress will look for a existing `/foo/` or `/foo.html`. Conversely, when one of `/foo/` or `/foo.html` is not found, VuePress will also try the other. With this feature, we can customize your website's urls with the official plugin [@vuepress/plugin-clean-urls](../plugin/official/plugin-clean-urls.md). +VuePress supports redirecting to clean links. If a link `/foo` is not found, VuePress will look for a existing `/foo/` or `/foo.html`. Conversely, when one of `/foo/` or `/foo.html` is not found, VuePress will also try the other. With this feature, we can customize your website's urls with the official plugin [vuepress-plugin-clean-urls](https://vuepress.github.io/plugins/clean-urls/). ::: tip Regardless of whether the permalink and clean-urls plugins are used, your relative path should be defined by the current file structure. In the above example, even though you set the path of `/foo/one.md` to `/foo/one/`, you should still access `/foo/two.md` via `./two.md`. diff --git a/packages/docs/docs/plugin/official/plugin-clean-urls.md b/packages/docs/docs/plugin/official/plugin-clean-urls.md deleted file mode 100644 index 45bca6da..00000000 --- a/packages/docs/docs/plugin/official/plugin-clean-urls.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: clean-urls -metaTitle: A plugin of automatically generating clean urls | VuePress ---- - -# [@vuepress/plugin-clean-urls](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-clean-urls) - -> A plugin for automatically generating clean urls. - -## Install - -```bash -yarn add -D @vuepress/plugin-clean-urls@next -# OR npm install -D @vuepress/plugin-clean-urls@next -``` - -## Usage - -```javascript -module.exports = { - plugins: ['@vuepress/clean-urls'] -} -``` - -::: warning -This plugin will always work on your dev server, but VuePress **does not have the right** to modify server identification. If you want your URLs to follow a certain pattern (e.g. `/routing` instead of `/routing.html` or `routing/`), you should make sure that your server would treat it as an HTML. This means that you may need to configure your server specifically. - -References: - -- For Netify users: [https://www.netlify.com/docs/redirects/#trailing-slash](https://www.netlify.com/docs/redirects/#trailing-slash). -- For Surge users: [https://surge.sh/help/using-clean-urls-automatically](https://surge.sh/help/using-clean-urls-automatically). -::: - -## Options - -### normalSuffix - -- Type: `string` -- Default: `''` - -The suffix for normal pages. For example, `foo/bar.md` will become: - -- `foo/bar.html` by default (without this plugin) -- `foo/bar/` (with `normalSuffix` set to `'/'`) -- `foo/bar` (with `normalSuffix` set to `''`) - -### indexSuffix - -- Type: `string` -- Default: `'/'` - -The suffix for index pages. For example, `foo/index.md` will become: - -- `foo/` by default (without this plugin) -- `foo` (with `indexSuffix` set to `''`) -- `foo/index.html` (with `indexSuffix` set to `'/index.html'`) - -::: tip -An index page is a page with a file name of index.md or readme.md (case insensitive). -::: diff --git a/packages/docs/docs/zh/guide/markdown.md b/packages/docs/docs/zh/guide/markdown.md index 68307ace..d3810f77 100644 --- a/packages/docs/docs/zh/guide/markdown.md +++ b/packages/docs/docs/zh/guide/markdown.md @@ -37,7 +37,7 @@ ### 链接的重定向 -VuePress 支持重定向到干净链接。如果一个链接 `/foo` 找不到,VuePress 会自行寻找一个可用的 `/foo/` 或 `/foo.html`。反过来,当 `/foo/` 或 `/foo.html` 中的一个找不到时,VuePress 也会尝试寻找另一个。借助这种特性,我们可以通过官方插件 [@vuepress/plugin-clean-urls](../plugin/official/plugin-clean-urls.md) 定制你的网站路径。 +VuePress 支持重定向到干净链接。如果一个链接 `/foo` 找不到,VuePress 会自行寻找一个可用的 `/foo/` 或 `/foo.html`。反过来,当 `/foo/` 或 `/foo.html` 中的一个找不到时,VuePress 也会尝试寻找另一个。借助这种特性,我们可以通过官方插件 [vuepress-plugin-clean-urls](https://vuepress.github.io/plugins/clean-urls/) 定制你的网站路径。 ::: tip 注意 无论是否使用了 permalink 和 clean-urls 插件,你的相对路径都应该依赖于当前的文件结构来定义。在上面的例子中,即使你将 `/foo/one.md` 的路径设为了 `/foo/one/`,你依然应该通过 `./two.md` 来访问 `/foo/two.md`。 diff --git a/packages/docs/docs/zh/plugin/official/plugin-clean-urls.md b/packages/docs/docs/zh/plugin/official/plugin-clean-urls.md deleted file mode 100644 index e416dd84..00000000 --- a/packages/docs/docs/zh/plugin/official/plugin-clean-urls.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: clean-urls -metaTitle: 自动生成简洁链接的插件 | VuePress ---- - -# [@vuepress/plugin-clean-urls](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-clean-urls) - -> 用于自动生成简洁链接的插件。 - -## 安装 - -```bash -yarn add -D @vuepress/plugin-clean-urls@next -# OR npm install -D @vuepress/plugin-clean-urls@next -``` - -## 使用 - -```javascript -module.exports = { - plugins: ['@vuepress/clean-urls'] -} -``` - -::: warning 注意 -这个插件在 dev 服务器上总是生效的,但 VuePress **并没有能力**去修改服务器识别链接的方式。如果你希望你的网站地址符合某种特殊的模式(比如使用 `/routing` 而不是 `/routing.html` 或者 `routing/`),你需要确保你的服务器会将这些地址认为是 HTML。这可能意味着你需要对你的服务器进行特殊的配置。 - -参考资料: - -- Netify 用户: [https://www.netlify.com/docs/redirects/#trailing-slash](https://www.netlify.com/docs/redirects/#trailing-slash). -- Surge 用户: [https://surge.sh/help/using-clean-urls-automatically](https://surge.sh/help/using-clean-urls-automatically). -::: - -## 选项 - -### normalSuffix - -- 类型: `string` -- 默认值: `''` - -普通页面的链接后缀。举个例子,`foo/bar.md` 会自动变成: - -- `foo/bar.html` 在默认情况下(未安装本插件时) -- `foo/bar/`(当 `normalSuffix` 被设为 `'/'` 时) -- `foo/bar`(当 `normalSuffix` 被设为 `''` 时) - -### indexSuffix - -- 类型: `string` -- 默认值: `'/'` - -索引页面的链接后缀。举个例子,`foo/index.md` 会自动变成: - -- `foo/` 在默认情况下(未安装本插件时) -- `foo`(当 `indexSuffix` 被设为 `''` 时) -- `foo/index.html`(当 `indexSuffix` 被设为 `'/index.html'` 时) - -::: tip -索引页面是指文件名为 index.md 或者 readme.md 的页面(不区分大小写)。 -::: From 944ebe4acbe6fb21368cf1b28bf10e63ced7f9eb Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Thu, 28 Mar 2019 00:47:46 +0800 Subject: [PATCH 074/260] fix($markdown-loader): always use `/` instead of `\` in `relPath` (#1484) --- packages/@vuepress/markdown-loader/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/markdown-loader/index.js b/packages/@vuepress/markdown-loader/index.js index 552ad652..196d9344 100644 --- a/packages/@vuepress/markdown-loader/index.js +++ b/packages/@vuepress/markdown-loader/index.js @@ -65,7 +65,7 @@ module.exports = function (src) { } = markdown.render(content, { loader, frontmatter: data, - relPath: path.relative(sourceDir, file) + relPath: path.relative(sourceDir, file).replace(/\\/g, '/') }) // check if relative links are valid From d7b8dafd8b73033a8af93ca1a3f57903bd74346b Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Thu, 28 Mar 2019 01:05:56 +0800 Subject: [PATCH 075/260] feat($core): export version (#1486) const { version } = require('vuepress') --- packages/@vuepress/core/lib/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/@vuepress/core/lib/index.js b/packages/@vuepress/core/lib/index.js index add8f2fd..85afa961 100644 --- a/packages/@vuepress/core/lib/index.js +++ b/packages/@vuepress/core/lib/index.js @@ -1,6 +1,7 @@ 'use strict' const App = require('./node/App') +const { version } = require('../package') const { logger } = require('@vuepress/shared-utils') function createApp (options) { @@ -20,6 +21,7 @@ async function build (options) { return app.build() } +exports.version = version exports.createApp = createApp exports.dev = dev exports.build = build From cc193d5cc1c29a0ff802ca6bf13fdf6887047604 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Thu, 28 Mar 2019 01:09:21 +0800 Subject: [PATCH 076/260] refactor($markdown): use `relativePath` instead of `relPath` (#1485) --- packages/@vuepress/core/lib/node/Page.js | 2 +- packages/@vuepress/markdown-loader/index.js | 2 +- packages/@vuepress/markdown/index.js | 2 +- packages/@vuepress/markdown/lib/link.js | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/@vuepress/core/lib/node/Page.js b/packages/@vuepress/core/lib/node/Page.js index db3a6af2..5172dbd7 100644 --- a/packages/@vuepress/core/lib/node/Page.js +++ b/packages/@vuepress/core/lib/node/Page.js @@ -124,7 +124,7 @@ module.exports = class Page { if (excerpt) { const { html } = markdown.render(excerpt, { frontmatter: this.frontmatter, - relPath: this.relativePath + relativePath: this.relativePath }) this.excerpt = html } diff --git a/packages/@vuepress/markdown-loader/index.js b/packages/@vuepress/markdown-loader/index.js index 196d9344..5d19d6d1 100644 --- a/packages/@vuepress/markdown-loader/index.js +++ b/packages/@vuepress/markdown-loader/index.js @@ -65,7 +65,7 @@ module.exports = function (src) { } = markdown.render(content, { loader, frontmatter: data, - relPath: path.relative(sourceDir, file).replace(/\\/g, '/') + relativePath: path.relative(sourceDir, file).replace(/\\/g, '/') }) // check if relative links are valid diff --git a/packages/@vuepress/markdown/index.js b/packages/@vuepress/markdown/index.js index fdb0481f..f3b4a38c 100644 --- a/packages/@vuepress/markdown/index.js +++ b/packages/@vuepress/markdown/index.js @@ -123,7 +123,7 @@ module.exports = (markdown = {}) => { const parse = md.parse const cache = new LRUCache({ max: 1000 }) md.parse = (src, env) => { - const key = hash(src + env.relPath) + const key = hash(src + env.relativePath) const cached = cache.get(key) if (cached) { return cached diff --git a/packages/@vuepress/markdown/lib/link.js b/packages/@vuepress/markdown/lib/link.js index 6e8d2a04..48551b4e 100644 --- a/packages/@vuepress/markdown/lib/link.js +++ b/packages/@vuepress/markdown/lib/link.js @@ -11,7 +11,7 @@ module.exports = (md, externalAttrs) => { let hasOpenExternalLink = false md.renderer.rules.link_open = (tokens, idx, options, env, self) => { - const { relPath } = env + const { relativePath } = env const token = tokens[idx] const hrefIndex = token.attrIndex('href') if (hrefIndex >= 0) { @@ -28,13 +28,13 @@ module.exports = (md, externalAttrs) => { } } else if (isSourceLink) { hasOpenRouterLink = true - tokens[idx] = toRouterLink(token, link, relPath) + tokens[idx] = toRouterLink(token, link, relativePath) } } return self.renderToken(tokens, idx, options) } - function toRouterLink (token, link, relPath) { + function toRouterLink (token, link, relativePath) { link[0] = 'to' let to = link[1] @@ -44,8 +44,8 @@ module.exports = (md, externalAttrs) => { // relative path usage. if (!to.startsWith('/')) { - to = relPath - ? url.resolve('/' + relPath, to) + to = relativePath + ? url.resolve('/' + relativePath, to) : ensureBeginningDotSlash(to) } From 19e05697a64acf367b26f8c634a24bd3e82475ff Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sun, 31 Mar 2019 01:36:12 +0800 Subject: [PATCH 077/260] feat($core): functional siteConfig.evergreen (#1489) --- packages/@vuepress/core/lib/node/webpack/createBaseConfig.js | 5 ++++- packages/docs/docs/config/README.md | 2 +- packages/docs/docs/zh/config/README.md | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js b/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js index 1bbd5caf..f90ba6ff 100644 --- a/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js +++ b/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js @@ -127,7 +127,10 @@ module.exports = function createBaseConfig (context, isServer) { .loader('pug-plain-loader') .end() - if (!siteConfig.evergreen) { + const evergreen = typeof siteConfig.evergreen === 'function' + ? siteConfig.evergreen() + : siteConfig.evergreen + if (!evergreen) { const libDir = path.join(__dirname, '..') config.module .rule('js') diff --git a/packages/docs/docs/config/README.md b/packages/docs/docs/config/README.md index 0dfe76dc..88600862 100644 --- a/packages/docs/docs/config/README.md +++ b/packages/docs/docs/config/README.md @@ -356,7 +356,7 @@ module.exports = { ### evergreen -- Type: `boolean` +- Type: `boolean | Function` - Default: `false` Set to `true` if you are only targeting evergreen browsers. This will disable ES5 transpilation and polyfills for IE, and result in faster builds and smaller files. diff --git a/packages/docs/docs/zh/config/README.md b/packages/docs/docs/zh/config/README.md index 21956e7a..20f863a3 100644 --- a/packages/docs/docs/zh/config/README.md +++ b/packages/docs/docs/zh/config/README.md @@ -348,7 +348,7 @@ module.exports = { ### evergreen -- 类型: `boolean` +- 类型: `boolean | Function` - 默认值: `false` 如果你的对象只有那些 “常青树” 浏览器,你可以将其设置成 `true`,这将会禁止 ESNext 到 ES5 的转译以及对 IE 的 polyfills,同时会带来更快的构建速度和更小的文件体积。 From c88f9830eecd086e876255aec3a144b5d7345c0d Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sun, 31 Mar 2019 01:38:57 +0800 Subject: [PATCH 078/260] chore: remove plugin-container (#1462) --- packages/@vuepress/core/lib/node/App.js | 4 +- packages/@vuepress/core/package.json | 2 +- .../@vuepress/plugin-container/.npmignore | 3 - packages/@vuepress/plugin-container/README.md | 5 -- .../__snapshots__/index.spec.js.snap | 48 ----------- .../__tests__/fragments/danger.md | 3 - .../__tests__/fragments/markdown-slots.md | 10 --- .../__tests__/fragments/tip-override.md | 3 - .../__tests__/fragments/tip.md | 3 - .../__tests__/fragments/v-pre.md | 3 - .../__tests__/fragments/warning.md | 3 - .../plugin-container/__tests__/index.spec.js | 36 --------- packages/@vuepress/plugin-container/index.js | 50 ------------ .../@vuepress/plugin-container/package.json | 32 -------- packages/@vuepress/theme-default/index.js | 21 ++++- packages/@vuepress/theme-default/package.json | 4 +- packages/docs/docs/.vuepress/config.js | 4 +- packages/docs/docs/guide/markdown.md | 2 +- .../docs/plugin/official/plugin-container.md | 80 ------------------- packages/docs/docs/zh/guide/markdown.md | 2 +- .../zh/plugin/official/plugin-container.md | 80 ------------------- .../docs/zh/theme/default-theme-config.md | 2 +- packages/docs/docs/zh/theme/using-a-theme.md | 2 +- yarn.lock | 7 ++ 24 files changed, 36 insertions(+), 373 deletions(-) delete mode 100644 packages/@vuepress/plugin-container/.npmignore delete mode 100644 packages/@vuepress/plugin-container/README.md delete mode 100644 packages/@vuepress/plugin-container/__tests__/__snapshots__/index.spec.js.snap delete mode 100644 packages/@vuepress/plugin-container/__tests__/fragments/danger.md delete mode 100644 packages/@vuepress/plugin-container/__tests__/fragments/markdown-slots.md delete mode 100644 packages/@vuepress/plugin-container/__tests__/fragments/tip-override.md delete mode 100644 packages/@vuepress/plugin-container/__tests__/fragments/tip.md delete mode 100644 packages/@vuepress/plugin-container/__tests__/fragments/v-pre.md delete mode 100644 packages/@vuepress/plugin-container/__tests__/fragments/warning.md delete mode 100644 packages/@vuepress/plugin-container/__tests__/index.spec.js delete mode 100644 packages/@vuepress/plugin-container/index.js delete mode 100644 packages/@vuepress/plugin-container/package.json delete mode 100644 packages/docs/docs/plugin/official/plugin-container.md delete mode 100644 packages/docs/docs/zh/plugin/official/plugin-container.md diff --git a/packages/@vuepress/core/lib/node/App.js b/packages/@vuepress/core/lib/node/App.js index 87f78438..8684b652 100755 --- a/packages/@vuepress/core/lib/node/App.js +++ b/packages/@vuepress/core/lib/node/App.js @@ -149,12 +149,12 @@ module.exports = class App { .use(require('./internal-plugins/transformModule')) .use(require('./internal-plugins/dataBlock')) .use(require('./internal-plugins/frontmatterBlock')) - .use('@vuepress/container', { + .use('container', { type: 'slot', before: info => `' }) - .use('@vuepress/container', { + .use('container', { type: 'v-pre', before: '
', after: '
' diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json index 168125b1..a8b8fccb 100644 --- a/packages/@vuepress/core/package.json +++ b/packages/@vuepress/core/package.json @@ -33,7 +33,6 @@ "@vue/babel-preset-app": "^3.1.1", "@vuepress/markdown": "^1.0.0-alpha.44", "@vuepress/markdown-loader": "^1.0.0-alpha.44", - "@vuepress/plugin-container": "^1.0.0-alpha.44", "@vuepress/plugin-last-updated": "^1.0.0-alpha.44", "@vuepress/plugin-register-components": "^1.0.0-alpha.44", "@vuepress/shared-utils": "^1.0.0-alpha.44", @@ -60,6 +59,7 @@ "vue-server-renderer": "^2.5.16", "vue-template-compiler": "^2.5.16", "vuepress-html-webpack-plugin": "^3.2.0", + "vuepress-plugin-container": "^2.0.0", "webpack": "^4.8.1", "webpack-chain": "^4.6.0", "webpack-dev-server": "^3.1.14", diff --git a/packages/@vuepress/plugin-container/.npmignore b/packages/@vuepress/plugin-container/.npmignore deleted file mode 100644 index 13c38ea3..00000000 --- a/packages/@vuepress/plugin-container/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -__tests__ -__mocks__ -.temp diff --git a/packages/@vuepress/plugin-container/README.md b/packages/@vuepress/plugin-container/README.md deleted file mode 100644 index a7910b2d..00000000 --- a/packages/@vuepress/plugin-container/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# @vuepress/plugin-container - -> markdown container plugin for vuepress - -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-container.html). diff --git a/packages/@vuepress/plugin-container/__tests__/__snapshots__/index.spec.js.snap b/packages/@vuepress/plugin-container/__tests__/__snapshots__/index.spec.js.snap deleted file mode 100644 index f67ad8f0..00000000 --- a/packages/@vuepress/plugin-container/__tests__/__snapshots__/index.spec.js.snap +++ /dev/null @@ -1,48 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`containers danger.md 1`] = ` -
-

DANGER

-

I am a danger

-
-`; - -exports[`containers markdown-slots.md 1`] = ` - -
    -
  • A Paragraph
  • -
  • Another Paragraph
  • -
- -`; - -exports[`containers tip.md 1`] = ` -
-

TIP

-

I am a tip

-
-`; - -exports[`containers tip-override.md 1`] = ` -
-

提示

-

I am a tip

-
-`; - -exports[`containers v-pre.md 1`] = ` -
-

I am a v-pre

-
-`; - -exports[`containers warning.md 1`] = ` -
-

WARNING

-

I am a warning

-
-`; diff --git a/packages/@vuepress/plugin-container/__tests__/fragments/danger.md b/packages/@vuepress/plugin-container/__tests__/fragments/danger.md deleted file mode 100644 index 2f2aa62c..00000000 --- a/packages/@vuepress/plugin-container/__tests__/fragments/danger.md +++ /dev/null @@ -1,3 +0,0 @@ -::: danger -I am a danger -::: diff --git a/packages/@vuepress/plugin-container/__tests__/fragments/markdown-slots.md b/packages/@vuepress/plugin-container/__tests__/fragments/markdown-slots.md deleted file mode 100644 index c6c60ab8..00000000 --- a/packages/@vuepress/plugin-container/__tests__/fragments/markdown-slots.md +++ /dev/null @@ -1,10 +0,0 @@ -::: slot header -# Here might be a page title -::: - -- A Paragraph -- Another Paragraph - -::: slot footer -Here's some contact info -::: diff --git a/packages/@vuepress/plugin-container/__tests__/fragments/tip-override.md b/packages/@vuepress/plugin-container/__tests__/fragments/tip-override.md deleted file mode 100644 index 2ba47c38..00000000 --- a/packages/@vuepress/plugin-container/__tests__/fragments/tip-override.md +++ /dev/null @@ -1,3 +0,0 @@ -::: tip 提示 -I am a tip -::: diff --git a/packages/@vuepress/plugin-container/__tests__/fragments/tip.md b/packages/@vuepress/plugin-container/__tests__/fragments/tip.md deleted file mode 100644 index e9b82b19..00000000 --- a/packages/@vuepress/plugin-container/__tests__/fragments/tip.md +++ /dev/null @@ -1,3 +0,0 @@ -::: tip -I am a tip -::: diff --git a/packages/@vuepress/plugin-container/__tests__/fragments/v-pre.md b/packages/@vuepress/plugin-container/__tests__/fragments/v-pre.md deleted file mode 100644 index f1694023..00000000 --- a/packages/@vuepress/plugin-container/__tests__/fragments/v-pre.md +++ /dev/null @@ -1,3 +0,0 @@ -::: v-pre -I am a v-pre -::: diff --git a/packages/@vuepress/plugin-container/__tests__/fragments/warning.md b/packages/@vuepress/plugin-container/__tests__/fragments/warning.md deleted file mode 100644 index 37aa641b..00000000 --- a/packages/@vuepress/plugin-container/__tests__/fragments/warning.md +++ /dev/null @@ -1,3 +0,0 @@ -::: warning -I am a warning -::: diff --git a/packages/@vuepress/plugin-container/__tests__/index.spec.js b/packages/@vuepress/plugin-container/__tests__/index.spec.js deleted file mode 100644 index b1efaa99..00000000 --- a/packages/@vuepress/plugin-container/__tests__/index.spec.js +++ /dev/null @@ -1,36 +0,0 @@ -const { createApp } = require('@vuepress/core') -const { getFragments } = require('@vuepress/test-utils') -import containerPlugin from '..' - -describe('containers', async () => { - let app - - beforeAll(async () => { - app = createApp() - app.options.siteConfig = { - plugins: [ - [containerPlugin, { type: 'tip' }], - [containerPlugin, { type: 'warning' }], - [containerPlugin, { type: 'danger' }], - [containerPlugin, { - type: 'slot', - before: info => `' - }], - [containerPlugin, { - type: 'v-pre', - before: '
', - after: '
' - }] - ] - } - return app.process() - }) - - getFragments(__dirname).forEach(({ name, content: input }) => { - test(name, () => { - const { html } = app.markdown.render(input) - expect(html).toMatchSnapshot() - }) - }) -}) diff --git a/packages/@vuepress/plugin-container/index.js b/packages/@vuepress/plugin-container/index.js deleted file mode 100644 index 6d995b4b..00000000 --- a/packages/@vuepress/plugin-container/index.js +++ /dev/null @@ -1,50 +0,0 @@ -const container = require('markdown-it-container') - -function call (target, ...args) { - if (typeof target === 'function') { - return target(...args) - } else { - return target - } -} - -module.exports = (options, context) => ({ - name: require('./package').name, - - multiple: true, - - extendMarkdown (md) { - const { - validate, - marker, - before, - after, - type = '', - defaultTitle = type.toUpperCase() - } = options - if (!type) return - - let { render } = options - if (!render) { - if (before !== undefined && after !== undefined) { - render = (tokens, index) => { - const info = tokens[index].info.trim().slice(type.length).trim() - return tokens[index].nesting === 1 ? call(before, info) : call(after, info) - } - } else { - render = (tokens, index) => { - const token = tokens[index] - let title = token.info.trim().slice(type.length).trim() || defaultTitle - if (title) title = `

${title}

` - if (token.nesting === 1) { - return `
${title}\n` - } else { - return `
\n` - } - } - } - } - - md.use(container, type, { render, validate, marker }) - } -}) diff --git a/packages/@vuepress/plugin-container/package.json b/packages/@vuepress/plugin-container/package.json deleted file mode 100644 index f1489705..00000000 --- a/packages/@vuepress/plugin-container/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@vuepress/plugin-container", - "version": "1.0.0-alpha.44", - "description": "markdown container plugin for vuepress", - "main": "index.js", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/vuejs/vuepress.git", - "directory": "packages/@vuepress/plugin-container" - }, - "keywords": [ - "documentation", - "vue", - "vuepress", - "generator" - ], - "dependencies": { - "markdown-it-container": "^2.0.0" - }, - "devDependencies": { - "@vuepress/test-utils": "^1.0.0-alpha.44" - }, - "author": "Shigma <1700011071@pku.edu.cn>", - "license": "MIT", - "bugs": { - "url": "https://github.com/vuejs/vuepress/issues" - }, - "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-container#readme" -} diff --git a/packages/@vuepress/theme-default/index.js b/packages/@vuepress/theme-default/index.js index 0bf3d1e8..f6caeda7 100644 --- a/packages/@vuepress/theme-default/index.js +++ b/packages/@vuepress/theme-default/index.js @@ -21,8 +21,23 @@ module.exports = (options, ctx) => ({ '@vuepress/active-header-links', '@vuepress/search', '@vuepress/plugin-nprogress', - ['@vuepress/container', { type: 'tip' }], - ['@vuepress/container', { type: 'warning' }], - ['@vuepress/container', { type: 'danger' }] + ['container', { + type: 'tip', + defaultTitle: { + '/zh/': '提示' + } + }], + ['container', { + type: 'warning', + defaultTitle: { + '/zh/': '注意' + } + }], + ['container', { + type: 'danger', + defaultTitle: { + '/zh/': '警告' + } + }] ] }) diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json index 18690752..316a57e3 100644 --- a/packages/@vuepress/theme-default/package.json +++ b/packages/@vuepress/theme-default/package.json @@ -31,11 +31,11 @@ "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme", "dependencies": { "@vuepress/plugin-active-header-links": "^1.0.0-alpha.44", - "@vuepress/plugin-container": "^1.0.0-alpha.44", "@vuepress/plugin-nprogress": "^1.0.0-alpha.44", "@vuepress/plugin-search": "^1.0.0-alpha.44", "docsearch.js": "^2.5.2", "stylus": "^0.54.5", - "stylus-loader": "^3.0.2" + "stylus-loader": "^3.0.2", + "vuepress-plugin-container": "^2.0.0" } } diff --git a/packages/docs/docs/.vuepress/config.js b/packages/docs/docs/.vuepress/config.js index 37ab4d78..63158b8e 100755 --- a/packages/docs/docs/.vuepress/config.js +++ b/packages/docs/docs/.vuepress/config.js @@ -74,12 +74,12 @@ module.exports = ctx => ({ ['@vuepress/google-analytics', { ga: 'UA-128189152-1' }], - ['@vuepress/container', { + ['container', { type: 'vue', before: '
',
       after: '
', }], - ['@vuepress/container', { + ['container', { type: 'upgrade', before: info => ``, after: '', diff --git a/packages/docs/docs/guide/markdown.md b/packages/docs/docs/guide/markdown.md index e2567b11..6a32f0d1 100644 --- a/packages/docs/docs/guide/markdown.md +++ b/packages/docs/docs/guide/markdown.md @@ -167,7 +167,7 @@ Danger zone, do not proceed **Also see:** -- [@vuepress/plugin-container](../plugin/official/plugin-container.md) +- [vuepress-plugin-container](https://vuepress.github.io/plugins/container/) ## Syntax Highlighting in Code Blocks diff --git a/packages/docs/docs/plugin/official/plugin-container.md b/packages/docs/docs/plugin/official/plugin-container.md deleted file mode 100644 index 0ee876ef..00000000 --- a/packages/docs/docs/plugin/official/plugin-container.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: container -metaTitle: A plugin for registering markdown containers | VuePress ---- - -# [@vuepress/plugin-container](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-container) - -> A plugin for registering markdown containers, based on [markdown-it-container](https://github.com/markdown-it/markdown-it-container). - -## Install - -```bash -yarn add -D @vuepress/plugin-container@next -# OR npm install -D @vuepress/plugin-container@next -``` - -## Usage - -```javascript -module.exports = { - plugins: ['@vuepress/container'] -} -``` - -## Options - -### type - -- Type: `string` -- This is a required option. - -The type for the container. For example, if `type` is set to `foo`, only the following syntax will be parsed as a container: - -```md -::: foo bar -write something here ~ -::: -``` - -### defaultTitle - -- Type: `string` -- Default: the upper case of `type` - -The default title for the container. If no title is provided, `defaultTitle` will be shown as the title of the container. - -### before - -- Type: `string | Function` -- Default: `undefined` - -String to be placed before the block. If specified as a function, an argument `info` will be passed to it. (In the example above, `info` will be `bar`.) If specified, it will override `defaultTitle`. - -### after - -- Type: `string | Function` -- Default: `undefined` - -String to be placed after the block. If specified as a function, an argument `info` will be passed to it. (In the example above, `info` will be `bar`.) If specified, it will override `defaultTitle`. - -### validate - -- Type: `Function` -- Default: `undefined` - -A function to validate tail after opening marker, should return `true` on success. - -### render - -- Type: `Function` -- Default: `undefined` - -The renderer function for opening/closing tokens. If specified, it will override `before`, `after` and `defaultTitle`. - -### marker - -- Type: `string` -- Default: `':'` - -The character to use as a delimiter. diff --git a/packages/docs/docs/zh/guide/markdown.md b/packages/docs/docs/zh/guide/markdown.md index d3810f77..f3047871 100644 --- a/packages/docs/docs/zh/guide/markdown.md +++ b/packages/docs/docs/zh/guide/markdown.md @@ -165,7 +165,7 @@ Danger zone, do not proceed **参考:** -- [@vuepress/plugin-container](../plugin/official/plugin-container.md) +- [vuepress-plugin-container](https://vuepress.github.io/plugins/container/) ## 代码块中的语法高亮 diff --git a/packages/docs/docs/zh/plugin/official/plugin-container.md b/packages/docs/docs/zh/plugin/official/plugin-container.md deleted file mode 100644 index 200aeffb..00000000 --- a/packages/docs/docs/zh/plugin/official/plugin-container.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: container -metaTitle: Markdown 容器插件 | VuePress ---- - -# [@vuepress/plugin-container](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-container) - -> 用于注册 Markdown 容器的插件,基于 [markdown-it-container](https://github.com/markdown-it/markdown-it-container)。 - -## 安装 - -```bash -yarn add -D @vuepress/plugin-container@next -# OR npm install -D @vuepress/plugin-container@next -``` - -## 使用 - -```javascript -module.exports = { - plugins: ['@vuepress/container'] -} -``` - -## 选项 - -### type - -- 类型: `string` -- 这是一个必需的选项 - -容器的类型。举个例子,如果 `type` 被设置为 `foo`,则仅有下面的语法会被视为对应的容器: - -```md -::: foo bar -随便写点啥 ~ -::: -``` - -### defaultTitle - -- 类型: `string` -- 默认值: `type` 的大写形式 - -容器的默认标题。如果没有提供标题,则会使用 `defaultTitle` 作为容器的标题。 - -### before - -- 类型: `string | Function` -- 默认值: `undefined` - -要插入在容器前的 HTML。如果设置为一个函数,将传入当前的 `info` 作为第一个参数。(在上面的例子中,`info` 的值为 `bar`。)如果设置了这个值,它将覆盖 `defaultTitle` 的效果。 - -### after - -- 类型: `string | Function` -- 默认值: `undefined` - -要插入在容器后的 HTML。如果设置为一个函数,将传入当前的 `info` 作为第一个参数。(在上面的例子中,`info` 的值为 `bar`。)如果设置了这个值,它将覆盖 `defaultTitle` 的效果。 - -### validate - -- 类型: `Function` -- 默认值: `undefined` - -一个用于判定容器是否结束的函数。当认定容器范围结束时应返回一个 `true`。 - -### render - -- 类型: `Function` -- 默认值: `undefined` - -容器开头和结束 token 的渲染函数。如果设置了这个值,它将覆盖 `before`, `after` 和 `defaultTitle` 的效果。 - -### marker - -- 类型: `string` -- 默认值: `':'` - -用于分隔符的字符。 diff --git a/packages/docs/docs/zh/theme/default-theme-config.md b/packages/docs/docs/zh/theme/default-theme-config.md index b31f2567..8516cf5f 100644 --- a/packages/docs/docs/zh/theme/default-theme-config.md +++ b/packages/docs/docs/zh/theme/default-theme-config.md @@ -1,6 +1,6 @@ # 默认主题配置 -::: tip 提示 +::: tip 本页所列的选项仅对默认主题生效。如果你在使用一个自定义主题,选项可能会有不同。 ::: diff --git a/packages/docs/docs/zh/theme/using-a-theme.md b/packages/docs/docs/zh/theme/using-a-theme.md index 2c4f729d..e6b7f3c5 100644 --- a/packages/docs/docs/zh/theme/using-a-theme.md +++ b/packages/docs/docs/zh/theme/using-a-theme.md @@ -46,6 +46,6 @@ module.exports = { } ``` -::: warning 注意 +::: warning 以 `@vuepress/theme-` 开头的主题是官方维护的主题。 ::: diff --git a/yarn.lock b/yarn.lock index c9ecbad5..8ede5424 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9567,6 +9567,13 @@ vuepress-html-webpack-plugin@^3.2.0: toposort "^1.0.0" util.promisify "1.0.0" +vuepress-plugin-container@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/vuepress-plugin-container/-/vuepress-plugin-container-2.0.1.tgz#b20ef97dd91f137c8be119460927c5ffd64e0f77" + integrity sha512-SMlWJl0uZYkqAxD2RUZmIrANZWKgiZdM64K7WmdyHyQPYI+NUj3ugi5D+zDn62BoO9NfQTiskEIa2u619SRweA== + dependencies: + markdown-it-container "^2.0.0" + vuepress-plugin-flowchart@^1.4.2: version "1.4.3" resolved "https://registry.yarnpkg.com/vuepress-plugin-flowchart/-/vuepress-plugin-flowchart-1.4.3.tgz#1692807257c9ba02f764ced0caf930c627f65bdb" From 61c5954aa506cf1603b1846463ab738f5e5b2108 Mon Sep 17 00:00:00 2001 From: Anton Wilhelm Date: Sat, 30 Mar 2019 18:39:43 +0100 Subject: [PATCH 079/260] chore: update issue template (#1492) --- .github/ISSUE_TEMPLATE/feature_request.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 576eb21b..92cf6ab4 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -19,4 +19,4 @@ about: Suggest an idea for this project #### How should this be implemented in your opinion? -#### Are you willing to work on this yourself?** +#### Are you willing to work on this yourself? From 9e07b1e09034b298fd7f7d71cacf0a6f46f3c639 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Sun, 31 Mar 2019 01:56:34 +0800 Subject: [PATCH 080/260] feat($core): support array as plugin options (#1493) --- packages/@vuepress/core/lib/node/plugin-api/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/core/lib/node/plugin-api/util.js b/packages/@vuepress/core/lib/node/plugin-api/util.js index af2ede44..a0d7be90 100644 --- a/packages/@vuepress/core/lib/node/plugin-api/util.js +++ b/packages/@vuepress/core/lib/node/plugin-api/util.js @@ -22,7 +22,7 @@ exports.flattenPlugin = function ( pluginContext, self ) { - const { valid, warnMsg } = assertTypes(pluginOptions, [Object, Boolean]) + const { valid, warnMsg } = assertTypes(pluginOptions, [Object, Array, Boolean]) if (!valid) { if (pluginOptions !== undefined) { logger.warn( From 699492ad571a2e40ac279781307b234f94acce6a Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 31 Mar 2019 23:42:21 +0800 Subject: [PATCH 081/260] fix($core): should default host be 0.0.0.0 ref: https://github.com/CompuIves/codesandbox-client/pull/1652 --- packages/@vuepress/core/lib/node/dev/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/core/lib/node/dev/index.js b/packages/@vuepress/core/lib/node/dev/index.js index 9f2cf270..ccd1ec5f 100644 --- a/packages/@vuepress/core/lib/node/dev/index.js +++ b/packages/@vuepress/core/lib/node/dev/index.js @@ -266,7 +266,7 @@ module.exports = class DevProcess extends EventEmitter { */ function resolveHost (host) { - const defaultHost = 'localhost' + const defaultHost = '0.0.0.0' host = host || defaultHost const displayHost = host === defaultHost ? 'localhost' From fc99d59f643fb185fda10131331e261364cd951e Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 31 Mar 2019 23:43:13 +0800 Subject: [PATCH 082/260] feat($core): allow dynamic routeBase at runtime Setting it via window.__VUEPRESS_ROUTE_BASE__ at enhance app file. --- packages/@vuepress/core/lib/client/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/core/lib/client/app.js b/packages/@vuepress/core/lib/client/app.js index bcccec17..e89cb21a 100644 --- a/packages/@vuepress/core/lib/client/app.js +++ b/packages/@vuepress/core/lib/client/app.js @@ -62,7 +62,7 @@ Vue.prototype.$withBase = function (path) { export function createApp (isServer) { const router = new Router({ - base: siteData.base, + base: window.__VUEPRESS_ROUTE_BASE__ || siteData.base, mode: 'history', fallback: false, routes, From 816cacd0e370589669e740b5c639c364c42b5668 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 31 Mar 2019 23:52:49 +0800 Subject: [PATCH 083/260] v1.0.0-alpha.45 --- lerna.json | 2 +- packages/@vuepress/core/package.json | 12 ++++++------ packages/@vuepress/markdown-loader/package.json | 4 ++-- packages/@vuepress/markdown/package.json | 6 +++--- .../plugin-active-header-links/package.json | 2 +- packages/@vuepress/plugin-back-to-top/package.json | 2 +- packages/@vuepress/plugin-blog/package.json | 2 +- .../@vuepress/plugin-google-analytics/package.json | 2 +- .../@vuepress/plugin-last-updated/package.json | 2 +- packages/@vuepress/plugin-medium-zoom/package.json | 2 +- packages/@vuepress/plugin-nprogress/package.json | 2 +- packages/@vuepress/plugin-pagination/package.json | 2 +- packages/@vuepress/plugin-pwa/package.json | 4 ++-- .../plugin-register-components/package.json | 4 ++-- packages/@vuepress/plugin-search/package.json | 2 +- packages/@vuepress/shared-utils/package.json | 2 +- packages/@vuepress/test-utils/package.json | 6 +++--- packages/@vuepress/theme-blog/package.json | 10 +++++----- packages/@vuepress/theme-default/package.json | 8 ++++---- packages/@vuepress/theme-vue/package.json | 4 ++-- packages/blog/package.json | 6 +++--- packages/docs/package.json | 14 +++++++------- packages/vuepress/package.json | 6 +++--- 23 files changed, 53 insertions(+), 53 deletions(-) diff --git a/lerna.json b/lerna.json index 1a047011..a7e0899f 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "lerna": "2.5.1", "npmClient": "yarn", "useWorkspaces": true, - "version": "1.0.0-alpha.44" + "version": "1.0.0-alpha.45" } diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json index a8b8fccb..c63e8de7 100644 --- a/packages/@vuepress/core/package.json +++ b/packages/@vuepress/core/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/core", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "Minimalistic doc generator with Vue component based layout system", "main": "lib/index.js", "repository": { @@ -31,11 +31,11 @@ "dependencies": { "@babel/core": "^7.0.0", "@vue/babel-preset-app": "^3.1.1", - "@vuepress/markdown": "^1.0.0-alpha.44", - "@vuepress/markdown-loader": "^1.0.0-alpha.44", - "@vuepress/plugin-last-updated": "^1.0.0-alpha.44", - "@vuepress/plugin-register-components": "^1.0.0-alpha.44", - "@vuepress/shared-utils": "^1.0.0-alpha.44", + "@vuepress/markdown": "^1.0.0-alpha.45", + "@vuepress/markdown-loader": "^1.0.0-alpha.45", + "@vuepress/plugin-last-updated": "^1.0.0-alpha.45", + "@vuepress/plugin-register-components": "^1.0.0-alpha.45", + "@vuepress/shared-utils": "^1.0.0-alpha.45", "autoprefixer": "^7.1.2", "babel-loader": "^8.0.4", "cache-loader": "^1.2.2", diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json index a9b8de66..feb2db05 100644 --- a/packages/@vuepress/markdown-loader/package.json +++ b/packages/@vuepress/markdown-loader/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown-loader", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "markdown-loader for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/markdown": "^1.0.0-alpha.44", + "@vuepress/markdown": "^1.0.0-alpha.45", "loader-utils": "^1.1.0", "lru-cache": "^5.1.1" }, diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index 362a46a9..1288a56c 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "markdown for vuepress", "main": "index.js", "publishConfig": { @@ -19,7 +19,7 @@ "markdown" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.44", + "@vuepress/shared-utils": "^1.0.0-alpha.45", "lru-cache": "^5.1.1", "markdown-it": "^8.4.1", "markdown-it-anchor": "^5.0.2", @@ -28,7 +28,7 @@ "prismjs": "^1.13.0" }, "devDependencies": { - "@vuepress/test-utils": "^1.0.0-alpha.44" + "@vuepress/test-utils": "^1.0.0-alpha.45" }, "author": "Evan You", "maintainers": [ diff --git a/packages/@vuepress/plugin-active-header-links/package.json b/packages/@vuepress/plugin-active-header-links/package.json index 4457b4d6..c2d0913c 100644 --- a/packages/@vuepress/plugin-active-header-links/package.json +++ b/packages/@vuepress/plugin-active-header-links/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-active-header-links", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "active-header-links plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-back-to-top/package.json b/packages/@vuepress/plugin-back-to-top/package.json index ff1d0f6c..33a63553 100644 --- a/packages/@vuepress/plugin-back-to-top/package.json +++ b/packages/@vuepress/plugin-back-to-top/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-back-to-top", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "back-to-top plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-blog/package.json b/packages/@vuepress/plugin-blog/package.json index 5cbc1584..3ada2389 100644 --- a/packages/@vuepress/plugin-blog/package.json +++ b/packages/@vuepress/plugin-blog/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-blog", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "blog plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-google-analytics/package.json b/packages/@vuepress/plugin-google-analytics/package.json index a46d25ad..ac7b140b 100644 --- a/packages/@vuepress/plugin-google-analytics/package.json +++ b/packages/@vuepress/plugin-google-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-google-analytics", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "google-analytics plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-last-updated/package.json b/packages/@vuepress/plugin-last-updated/package.json index 5f817ed9..5719b0a7 100644 --- a/packages/@vuepress/plugin-last-updated/package.json +++ b/packages/@vuepress/plugin-last-updated/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-last-updated", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "last-updated plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-medium-zoom/package.json b/packages/@vuepress/plugin-medium-zoom/package.json index 82abc816..af1c6e8f 100644 --- a/packages/@vuepress/plugin-medium-zoom/package.json +++ b/packages/@vuepress/plugin-medium-zoom/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-medium-zoom", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "medium-zoom plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-nprogress/package.json b/packages/@vuepress/plugin-nprogress/package.json index 159870c3..ef9b73e3 100644 --- a/packages/@vuepress/plugin-nprogress/package.json +++ b/packages/@vuepress/plugin-nprogress/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-nprogress", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "nprogress plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pagination/package.json b/packages/@vuepress/plugin-pagination/package.json index d911a543..c28394fc 100644 --- a/packages/@vuepress/plugin-pagination/package.json +++ b/packages/@vuepress/plugin-pagination/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pagination", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "pagination plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json index cc60ccf9..29df7cf7 100644 --- a/packages/@vuepress/plugin-pwa/package.json +++ b/packages/@vuepress/plugin-pwa/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pwa", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "pwa plugin for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.44", + "@vuepress/shared-utils": "^1.0.0-alpha.45", "register-service-worker": "^1.5.2", "workbox-build": "^3.1.0" }, diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json index ef6cfa74..9e4d1162 100644 --- a/packages/@vuepress/plugin-register-components/package.json +++ b/packages/@vuepress/plugin-register-components/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-register-components", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "register-global-components plugin for vuepress", "main": "index.js", "publishConfig": { @@ -24,6 +24,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-register-components#readme", "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.44" + "@vuepress/shared-utils": "^1.0.0-alpha.45" } } diff --git a/packages/@vuepress/plugin-search/package.json b/packages/@vuepress/plugin-search/package.json index 71995ff3..583dd938 100644 --- a/packages/@vuepress/plugin-search/package.json +++ b/packages/@vuepress/plugin-search/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-search", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "search plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/shared-utils/package.json b/packages/@vuepress/shared-utils/package.json index a66f3e41..cff5c48f 100644 --- a/packages/@vuepress/shared-utils/package.json +++ b/packages/@vuepress/shared-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/shared-utils", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "shared-utils for vuepress", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json index 8f7ebc95..3837da22 100644 --- a/packages/@vuepress/test-utils/package.json +++ b/packages/@vuepress/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/test-utils", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "test-utils for vuepress", "main": "index.js", "publishConfig": { @@ -22,8 +22,8 @@ "@babel/preset-env": "^7.0.0", "@types/jest": "^24.0.9", "@vue/test-utils": "^1.0.0-beta.29", - "@vuepress/core": "^1.0.0-alpha.44", - "@vuepress/shared-utils": "^1.0.0-alpha.44", + "@vuepress/core": "^1.0.0-alpha.45", + "@vuepress/shared-utils": "^1.0.0-alpha.45", "babel-jest": "^24.1.0", "execa": "^0.10.0", "jest": "^24.1.0", diff --git a/packages/@vuepress/theme-blog/package.json b/packages/@vuepress/theme-blog/package.json index fdff5b25..7b896e2b 100644 --- a/packages/@vuepress/theme-blog/package.json +++ b/packages/@vuepress/theme-blog/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@vuepress/theme-blog", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "theme-blog for vuepress", "main": "index.js", "publishConfig": { @@ -19,10 +19,10 @@ "generator" ], "dependencies": { - "@vuepress/plugin-blog": "^1.0.0-alpha.44", - "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.44", - "@vuepress/plugin-pagination": "^1.0.0-alpha.44", - "@vuepress/plugin-search": "^1.0.0-alpha.44" + "@vuepress/plugin-blog": "^1.0.0-alpha.45", + "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.45", + "@vuepress/plugin-pagination": "^1.0.0-alpha.45", + "@vuepress/plugin-search": "^1.0.0-alpha.45" }, "author": "ULIVZ ", "license": "MIT", diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json index 316a57e3..c96162c5 100644 --- a/packages/@vuepress/theme-default/package.json +++ b/packages/@vuepress/theme-default/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/theme-default", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "Default theme for VuePress", "main": "index.js", "publishConfig": { @@ -30,9 +30,9 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme", "dependencies": { - "@vuepress/plugin-active-header-links": "^1.0.0-alpha.44", - "@vuepress/plugin-nprogress": "^1.0.0-alpha.44", - "@vuepress/plugin-search": "^1.0.0-alpha.44", + "@vuepress/plugin-active-header-links": "^1.0.0-alpha.45", + "@vuepress/plugin-nprogress": "^1.0.0-alpha.45", + "@vuepress/plugin-search": "^1.0.0-alpha.45", "docsearch.js": "^2.5.2", "stylus": "^0.54.5", "stylus-loader": "^3.0.2", diff --git a/packages/@vuepress/theme-vue/package.json b/packages/@vuepress/theme-vue/package.json index cad2ac10..593a2ad6 100644 --- a/packages/@vuepress/theme-vue/package.json +++ b/packages/@vuepress/theme-vue/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/theme-vue", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "VuePress theme for official Vue projects", "main": "index.js", "publishConfig": { @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-vue#readme", "dependencies": { - "@vuepress/theme-default": "^1.0.0-alpha.44" + "@vuepress/theme-default": "^1.0.0-alpha.45" } } diff --git a/packages/blog/package.json b/packages/blog/package.json index e8eb5e74..f07c9bc6 100644 --- a/packages/blog/package.json +++ b/packages/blog/package.json @@ -2,13 +2,13 @@ "private": true, "name": "blog", "description": "blog of VuePress", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "scripts": { "dev": "vuepress dev source --temp .temp", "build": "vuepress build source --temp .temp" }, "dependencies": { - "@vuepress/theme-blog": "^1.0.0-alpha.44", - "vuepress": "^1.0.0-alpha.44" + "@vuepress/theme-blog": "^1.0.0-alpha.45", + "vuepress": "^1.0.0-alpha.45" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index 9e293a66..1b9ebb8d 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "name": "docs", "description": "docs of VuePress", "scripts": { @@ -25,13 +25,13 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "devDependencies": { - "@vuepress/plugin-back-to-top": "^1.0.0-alpha.44", - "@vuepress/plugin-google-analytics": "^1.0.0-alpha.44", - "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.44", - "@vuepress/plugin-pwa": "^1.0.0-alpha.44", - "@vuepress/theme-vue": "^1.0.0-alpha.44", + "@vuepress/plugin-back-to-top": "^1.0.0-alpha.45", + "@vuepress/plugin-google-analytics": "^1.0.0-alpha.45", + "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.45", + "@vuepress/plugin-pwa": "^1.0.0-alpha.45", + "@vuepress/theme-vue": "^1.0.0-alpha.45", "vue-toasted": "^1.1.25", - "vuepress": "^1.0.0-alpha.44", + "vuepress": "^1.0.0-alpha.45", "vuepress-plugin-flowchart": "^1.4.2" } } diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json index 674a0fea..f74608c2 100644 --- a/packages/vuepress/package.json +++ b/packages/vuepress/package.json @@ -1,6 +1,6 @@ { "name": "vuepress", - "version": "1.0.0-alpha.44", + "version": "1.0.0-alpha.45", "description": "Minimalistic doc generator with Vue component based layout system", "main": "index.js", "repository": { @@ -29,8 +29,8 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "dependencies": { - "@vuepress/core": "^1.0.0-alpha.44", - "@vuepress/theme-default": "^1.0.0-alpha.44", + "@vuepress/core": "^1.0.0-alpha.45", + "@vuepress/theme-default": "^1.0.0-alpha.45", "cac": "^6.3.9" }, "engines": { From cb84c5c4d95bf1e30a8b5ad03f0c130a1435c53f Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 1 Apr 2019 00:20:06 +0800 Subject: [PATCH 084/260] chore: 1.0.0-alpha.45 changelog --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5183dbd..e047e06c 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,38 @@ + +# [1.0.0-alpha.45](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.44...v1.0.0-alpha.45) (2019-03-31) + + +### Bug Fixes + +* **$core:** do not register component in render function ([#1449](https://github.com/vuejs/vuepress/issues/1449)) ([ef82c47](https://github.com/vuejs/vuepress/commit/ef82c47)) +* **$core:** do not use stylus in outbound link ([d34e038](https://github.com/vuejs/vuepress/commit/d34e038)) +* **$core:** should default host be 0.0.0.0 ([699492a](https://github.com/vuejs/vuepress/commit/699492a)) +* **$markdown:** treat styl as stylus language ([#1433](https://github.com/vuejs/vuepress/issues/1433)) ([f44e2db](https://github.com/vuejs/vuepress/commit/f44e2db)) +* **$markdown-loader:** always use `/` instead of `\` in `relPath` ([#1484](https://github.com/vuejs/vuepress/issues/1484)) ([944ebe4](https://github.com/vuejs/vuepress/commit/944ebe4)) +* **$plugin-active-header-links:** side navigation edge case bug ([#1477](https://github.com/vuejs/vuepress/issues/1477)) ([8a11d14](https://github.com/vuejs/vuepress/commit/8a11d14)) +* **$plugin-blog:** inconsistent paths of tag and category pages with index page ([#1420](https://github.com/vuejs/vuepress/issues/1420)) ([5c0e62f](https://github.com/vuejs/vuepress/commit/5c0e62f)) +* **$plugin-pwa:** fix a typo in `opacity` ([#1444](https://github.com/vuejs/vuepress/issues/1444)) ([c174f0d](https://github.com/vuejs/vuepress/commit/c174f0d)) +* **$theme-default:** fix wrong editLink (close: [#1115](https://github.com/vuejs/vuepress/issues/1115), [#1125](https://github.com/vuejs/vuepress/issues/1125)) ([#1419](https://github.com/vuejs/vuepress/issues/1419)) ([3b14375](https://github.com/vuejs/vuepress/commit/3b14375)) +* **$theme-default:** nav url change bug (close: [#865](https://github.com/vuejs/vuepress/issues/865)) ([#1475](https://github.com/vuejs/vuepress/issues/1475)) ([521dddd](https://github.com/vuejs/vuepress/commit/521dddd)) + + +### Features + +* **$core:** allow dynamic routeBase at runtime ([fc99d59](https://github.com/vuejs/vuepress/commit/fc99d59)) +* **$core:** decode page path for better readablility ([#1438](https://github.com/vuejs/vuepress/issues/1438)) ([93b2ca1](https://github.com/vuejs/vuepress/commit/93b2ca1)) +* **$core:** export version ([#1486](https://github.com/vuejs/vuepress/issues/1486)) ([d7b8daf](https://github.com/vuejs/vuepress/commit/d7b8daf)) +* **$core:** functional siteConfig.evergreen ([#1489](https://github.com/vuejs/vuepress/issues/1489)) ([19e0569](https://github.com/vuejs/vuepress/commit/19e0569)) +* **$core:** support array as plugin options ([#1493](https://github.com/vuejs/vuepress/issues/1493)) ([9e07b1e](https://github.com/vuejs/vuepress/commit/9e07b1e)) +* **$markdown:** markdown plugin (close: [#585](https://github.com/vuejs/vuepress/issues/585)) ([#1422](https://github.com/vuejs/vuepress/issues/1422)) ([9734a58](https://github.com/vuejs/vuepress/commit/9734a58)) +* **$plugin-register-components:** custom name registration (close: [#656](https://github.com/vuejs/vuepress/issues/656)) ([#1418](https://github.com/vuejs/vuepress/issues/1418)) ([9c6a00b](https://github.com/vuejs/vuepress/commit/9c6a00b)) + + +### Breaking Changes + +* Depreated [@vuepress/plugin-container](https://www.npmjs.com/package/@vuepress/plugin-container) and moved it to [vuepress-plugin-container](https://www.npmjs.com/package/vuepress-plugin-container). +* Depreated [@vuepress/plugin-clean-urls](https://www.npmjs.com/package/@vuepress/plugin-clean-urls) and moved it to [vuepress-plugin-clean-urls](https://www.npmjs.com/package/vuepress-plugin-clean-urls). + + # [1.0.0-alpha.44](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.43...v1.0.0-alpha.44) (2019-03-10) From 5e12b4929f3a9ab45bf7ca6c7b800649420e1024 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 1 Apr 2019 00:45:05 +0800 Subject: [PATCH 085/260] fix($core): regression of introducing dynamic routerBase (close: #1498) Also renaming __VUEPRESS_ROUTE_BASE__ to __VUEPRESS_ROUTER_BASE__ --- packages/@vuepress/core/lib/client/app.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/@vuepress/core/lib/client/app.js b/packages/@vuepress/core/lib/client/app.js index e89cb21a..236e1f76 100644 --- a/packages/@vuepress/core/lib/client/app.js +++ b/packages/@vuepress/core/lib/client/app.js @@ -61,8 +61,12 @@ Vue.prototype.$withBase = function (path) { } export function createApp (isServer) { + const routerBase = typeof window !== 'undefined' + ? window.__VUEPRESS_ROUTER_BASE__ + : (siteData.routerBase || siteData.base) + const router = new Router({ - base: window.__VUEPRESS_ROUTE_BASE__ || siteData.base, + base: routerBase, mode: 'history', fallback: false, routes, From b9da618d0a0be358ac2967ab5623d4902ff44aea Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 1 Apr 2019 00:48:44 +0800 Subject: [PATCH 086/260] v1.0.0-alpha.46 --- lerna.json | 2 +- packages/@vuepress/core/package.json | 12 ++++++------ packages/@vuepress/markdown-loader/package.json | 4 ++-- packages/@vuepress/markdown/package.json | 6 +++--- .../plugin-active-header-links/package.json | 2 +- packages/@vuepress/plugin-back-to-top/package.json | 2 +- packages/@vuepress/plugin-blog/package.json | 2 +- .../@vuepress/plugin-google-analytics/package.json | 2 +- .../@vuepress/plugin-last-updated/package.json | 2 +- packages/@vuepress/plugin-medium-zoom/package.json | 2 +- packages/@vuepress/plugin-nprogress/package.json | 2 +- packages/@vuepress/plugin-pagination/package.json | 2 +- packages/@vuepress/plugin-pwa/package.json | 4 ++-- .../plugin-register-components/package.json | 4 ++-- packages/@vuepress/plugin-search/package.json | 2 +- packages/@vuepress/shared-utils/package.json | 2 +- packages/@vuepress/test-utils/package.json | 6 +++--- packages/@vuepress/theme-blog/package.json | 10 +++++----- packages/@vuepress/theme-default/package.json | 8 ++++---- packages/@vuepress/theme-vue/package.json | 4 ++-- packages/blog/package.json | 6 +++--- packages/docs/package.json | 14 +++++++------- packages/vuepress/package.json | 6 +++--- 23 files changed, 53 insertions(+), 53 deletions(-) diff --git a/lerna.json b/lerna.json index a7e0899f..a0dd2828 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "lerna": "2.5.1", "npmClient": "yarn", "useWorkspaces": true, - "version": "1.0.0-alpha.45" + "version": "1.0.0-alpha.46" } diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json index c63e8de7..1caa60f3 100644 --- a/packages/@vuepress/core/package.json +++ b/packages/@vuepress/core/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/core", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "Minimalistic doc generator with Vue component based layout system", "main": "lib/index.js", "repository": { @@ -31,11 +31,11 @@ "dependencies": { "@babel/core": "^7.0.0", "@vue/babel-preset-app": "^3.1.1", - "@vuepress/markdown": "^1.0.0-alpha.45", - "@vuepress/markdown-loader": "^1.0.0-alpha.45", - "@vuepress/plugin-last-updated": "^1.0.0-alpha.45", - "@vuepress/plugin-register-components": "^1.0.0-alpha.45", - "@vuepress/shared-utils": "^1.0.0-alpha.45", + "@vuepress/markdown": "^1.0.0-alpha.46", + "@vuepress/markdown-loader": "^1.0.0-alpha.46", + "@vuepress/plugin-last-updated": "^1.0.0-alpha.46", + "@vuepress/plugin-register-components": "^1.0.0-alpha.46", + "@vuepress/shared-utils": "^1.0.0-alpha.46", "autoprefixer": "^7.1.2", "babel-loader": "^8.0.4", "cache-loader": "^1.2.2", diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json index feb2db05..654e11b0 100644 --- a/packages/@vuepress/markdown-loader/package.json +++ b/packages/@vuepress/markdown-loader/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown-loader", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "markdown-loader for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/markdown": "^1.0.0-alpha.45", + "@vuepress/markdown": "^1.0.0-alpha.46", "loader-utils": "^1.1.0", "lru-cache": "^5.1.1" }, diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index 1288a56c..a2c3959a 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "markdown for vuepress", "main": "index.js", "publishConfig": { @@ -19,7 +19,7 @@ "markdown" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.45", + "@vuepress/shared-utils": "^1.0.0-alpha.46", "lru-cache": "^5.1.1", "markdown-it": "^8.4.1", "markdown-it-anchor": "^5.0.2", @@ -28,7 +28,7 @@ "prismjs": "^1.13.0" }, "devDependencies": { - "@vuepress/test-utils": "^1.0.0-alpha.45" + "@vuepress/test-utils": "^1.0.0-alpha.46" }, "author": "Evan You", "maintainers": [ diff --git a/packages/@vuepress/plugin-active-header-links/package.json b/packages/@vuepress/plugin-active-header-links/package.json index c2d0913c..106a7e77 100644 --- a/packages/@vuepress/plugin-active-header-links/package.json +++ b/packages/@vuepress/plugin-active-header-links/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-active-header-links", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "active-header-links plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-back-to-top/package.json b/packages/@vuepress/plugin-back-to-top/package.json index 33a63553..9fb649a5 100644 --- a/packages/@vuepress/plugin-back-to-top/package.json +++ b/packages/@vuepress/plugin-back-to-top/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-back-to-top", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "back-to-top plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-blog/package.json b/packages/@vuepress/plugin-blog/package.json index 3ada2389..8b0e5e43 100644 --- a/packages/@vuepress/plugin-blog/package.json +++ b/packages/@vuepress/plugin-blog/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-blog", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "blog plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-google-analytics/package.json b/packages/@vuepress/plugin-google-analytics/package.json index ac7b140b..717808f6 100644 --- a/packages/@vuepress/plugin-google-analytics/package.json +++ b/packages/@vuepress/plugin-google-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-google-analytics", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "google-analytics plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-last-updated/package.json b/packages/@vuepress/plugin-last-updated/package.json index 5719b0a7..3aff6f67 100644 --- a/packages/@vuepress/plugin-last-updated/package.json +++ b/packages/@vuepress/plugin-last-updated/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-last-updated", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "last-updated plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-medium-zoom/package.json b/packages/@vuepress/plugin-medium-zoom/package.json index af1c6e8f..8c2f2bbf 100644 --- a/packages/@vuepress/plugin-medium-zoom/package.json +++ b/packages/@vuepress/plugin-medium-zoom/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-medium-zoom", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "medium-zoom plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-nprogress/package.json b/packages/@vuepress/plugin-nprogress/package.json index ef9b73e3..cf633437 100644 --- a/packages/@vuepress/plugin-nprogress/package.json +++ b/packages/@vuepress/plugin-nprogress/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-nprogress", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "nprogress plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pagination/package.json b/packages/@vuepress/plugin-pagination/package.json index c28394fc..24bc57c0 100644 --- a/packages/@vuepress/plugin-pagination/package.json +++ b/packages/@vuepress/plugin-pagination/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pagination", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "pagination plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json index 29df7cf7..9408bfe1 100644 --- a/packages/@vuepress/plugin-pwa/package.json +++ b/packages/@vuepress/plugin-pwa/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pwa", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "pwa plugin for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.45", + "@vuepress/shared-utils": "^1.0.0-alpha.46", "register-service-worker": "^1.5.2", "workbox-build": "^3.1.0" }, diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json index 9e4d1162..bcd8c22e 100644 --- a/packages/@vuepress/plugin-register-components/package.json +++ b/packages/@vuepress/plugin-register-components/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-register-components", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "register-global-components plugin for vuepress", "main": "index.js", "publishConfig": { @@ -24,6 +24,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-register-components#readme", "dependencies": { - "@vuepress/shared-utils": "^1.0.0-alpha.45" + "@vuepress/shared-utils": "^1.0.0-alpha.46" } } diff --git a/packages/@vuepress/plugin-search/package.json b/packages/@vuepress/plugin-search/package.json index 583dd938..43cecd03 100644 --- a/packages/@vuepress/plugin-search/package.json +++ b/packages/@vuepress/plugin-search/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-search", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "search plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/shared-utils/package.json b/packages/@vuepress/shared-utils/package.json index cff5c48f..2862b5af 100644 --- a/packages/@vuepress/shared-utils/package.json +++ b/packages/@vuepress/shared-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/shared-utils", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "shared-utils for vuepress", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json index 3837da22..13c40e68 100644 --- a/packages/@vuepress/test-utils/package.json +++ b/packages/@vuepress/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/test-utils", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "test-utils for vuepress", "main": "index.js", "publishConfig": { @@ -22,8 +22,8 @@ "@babel/preset-env": "^7.0.0", "@types/jest": "^24.0.9", "@vue/test-utils": "^1.0.0-beta.29", - "@vuepress/core": "^1.0.0-alpha.45", - "@vuepress/shared-utils": "^1.0.0-alpha.45", + "@vuepress/core": "^1.0.0-alpha.46", + "@vuepress/shared-utils": "^1.0.0-alpha.46", "babel-jest": "^24.1.0", "execa": "^0.10.0", "jest": "^24.1.0", diff --git a/packages/@vuepress/theme-blog/package.json b/packages/@vuepress/theme-blog/package.json index 7b896e2b..03834424 100644 --- a/packages/@vuepress/theme-blog/package.json +++ b/packages/@vuepress/theme-blog/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@vuepress/theme-blog", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "theme-blog for vuepress", "main": "index.js", "publishConfig": { @@ -19,10 +19,10 @@ "generator" ], "dependencies": { - "@vuepress/plugin-blog": "^1.0.0-alpha.45", - "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.45", - "@vuepress/plugin-pagination": "^1.0.0-alpha.45", - "@vuepress/plugin-search": "^1.0.0-alpha.45" + "@vuepress/plugin-blog": "^1.0.0-alpha.46", + "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.46", + "@vuepress/plugin-pagination": "^1.0.0-alpha.46", + "@vuepress/plugin-search": "^1.0.0-alpha.46" }, "author": "ULIVZ ", "license": "MIT", diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json index c96162c5..68fd8848 100644 --- a/packages/@vuepress/theme-default/package.json +++ b/packages/@vuepress/theme-default/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/theme-default", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "Default theme for VuePress", "main": "index.js", "publishConfig": { @@ -30,9 +30,9 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme", "dependencies": { - "@vuepress/plugin-active-header-links": "^1.0.0-alpha.45", - "@vuepress/plugin-nprogress": "^1.0.0-alpha.45", - "@vuepress/plugin-search": "^1.0.0-alpha.45", + "@vuepress/plugin-active-header-links": "^1.0.0-alpha.46", + "@vuepress/plugin-nprogress": "^1.0.0-alpha.46", + "@vuepress/plugin-search": "^1.0.0-alpha.46", "docsearch.js": "^2.5.2", "stylus": "^0.54.5", "stylus-loader": "^3.0.2", diff --git a/packages/@vuepress/theme-vue/package.json b/packages/@vuepress/theme-vue/package.json index 593a2ad6..249cc994 100644 --- a/packages/@vuepress/theme-vue/package.json +++ b/packages/@vuepress/theme-vue/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/theme-vue", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "VuePress theme for official Vue projects", "main": "index.js", "publishConfig": { @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-vue#readme", "dependencies": { - "@vuepress/theme-default": "^1.0.0-alpha.45" + "@vuepress/theme-default": "^1.0.0-alpha.46" } } diff --git a/packages/blog/package.json b/packages/blog/package.json index f07c9bc6..34540a2d 100644 --- a/packages/blog/package.json +++ b/packages/blog/package.json @@ -2,13 +2,13 @@ "private": true, "name": "blog", "description": "blog of VuePress", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "scripts": { "dev": "vuepress dev source --temp .temp", "build": "vuepress build source --temp .temp" }, "dependencies": { - "@vuepress/theme-blog": "^1.0.0-alpha.45", - "vuepress": "^1.0.0-alpha.45" + "@vuepress/theme-blog": "^1.0.0-alpha.46", + "vuepress": "^1.0.0-alpha.46" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index 1b9ebb8d..21389459 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "name": "docs", "description": "docs of VuePress", "scripts": { @@ -25,13 +25,13 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "devDependencies": { - "@vuepress/plugin-back-to-top": "^1.0.0-alpha.45", - "@vuepress/plugin-google-analytics": "^1.0.0-alpha.45", - "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.45", - "@vuepress/plugin-pwa": "^1.0.0-alpha.45", - "@vuepress/theme-vue": "^1.0.0-alpha.45", + "@vuepress/plugin-back-to-top": "^1.0.0-alpha.46", + "@vuepress/plugin-google-analytics": "^1.0.0-alpha.46", + "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.46", + "@vuepress/plugin-pwa": "^1.0.0-alpha.46", + "@vuepress/theme-vue": "^1.0.0-alpha.46", "vue-toasted": "^1.1.25", - "vuepress": "^1.0.0-alpha.45", + "vuepress": "^1.0.0-alpha.46", "vuepress-plugin-flowchart": "^1.4.2" } } diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json index f74608c2..f510b2fb 100644 --- a/packages/vuepress/package.json +++ b/packages/vuepress/package.json @@ -1,6 +1,6 @@ { "name": "vuepress", - "version": "1.0.0-alpha.45", + "version": "1.0.0-alpha.46", "description": "Minimalistic doc generator with Vue component based layout system", "main": "index.js", "repository": { @@ -29,8 +29,8 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "dependencies": { - "@vuepress/core": "^1.0.0-alpha.45", - "@vuepress/theme-default": "^1.0.0-alpha.45", + "@vuepress/core": "^1.0.0-alpha.46", + "@vuepress/theme-default": "^1.0.0-alpha.46", "cac": "^6.3.9" }, "engines": { From 2ced5b1aa60416c5085e193899b1ca08b12b61cf Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 1 Apr 2019 00:50:51 +0800 Subject: [PATCH 087/260] chore: 1.0.0-alpha.46 changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e047e06c..6c4193fc 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +### Bug Fixes + +* **$core:** regression of introducing dynamic `routerBase` (close: [#1498](https://github.com/vuejs/vuepress/issues/1498)) ([5e12b49](https://github.com/vuejs/vuepress/commit/5e12b49)) + + + # [1.0.0-alpha.45](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.44...v1.0.0-alpha.45) (2019-03-31) From dc524128647a5f8f576bbf4bdbfcb4cc291fec4a Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 1 Apr 2019 00:54:33 +0800 Subject: [PATCH 088/260] ci: update CI setup --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 88094174..d2cebd28 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -34,4 +34,4 @@ jobs: key: v1-dependencies-{{ checksum "package.json" }} # run tests! - - run: yarn lint && yarn test + - run: yarn build && yarn lint && yarn test From 47c02ce824c5acb687844c8ecbe23367835e5547 Mon Sep 17 00:00:00 2001 From: Shigma <33423008+Shigma@users.noreply.github.com> Date: Tue, 2 Apr 2019 23:54:33 +0800 Subject: [PATCH 089/260] $theme-default: support options.activeHeaderLinks (close: #1488) (#1508) --- packages/@vuepress/theme-default/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/theme-default/index.js b/packages/@vuepress/theme-default/index.js index f6caeda7..01de7b12 100644 --- a/packages/@vuepress/theme-default/index.js +++ b/packages/@vuepress/theme-default/index.js @@ -18,7 +18,7 @@ module.exports = (options, ctx) => ({ }, plugins: [ - '@vuepress/active-header-links', + ['@vuepress/active-header-links', options.activeHeaderLinks], '@vuepress/search', '@vuepress/plugin-nprogress', ['container', { From 9fba54931c80bab6b0ab7a446ca97687342baf7d Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Wed, 3 Apr 2019 00:03:18 +0800 Subject: [PATCH 090/260] fix($core): routerBase will always get '/' (close: #1503) --- packages/@vuepress/core/lib/client/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/core/lib/client/app.js b/packages/@vuepress/core/lib/client/app.js index 236e1f76..b29717a9 100644 --- a/packages/@vuepress/core/lib/client/app.js +++ b/packages/@vuepress/core/lib/client/app.js @@ -61,7 +61,7 @@ Vue.prototype.$withBase = function (path) { } export function createApp (isServer) { - const routerBase = typeof window !== 'undefined' + const routerBase = typeof window !== 'undefined' && window.__VUEPRESS_ROUTER_BASE__ ? window.__VUEPRESS_ROUTER_BASE__ : (siteData.routerBase || siteData.base) From 5876001e02f64c3101ca5b03b78eb26696bdbd8f Mon Sep 17 00:00:00 2001 From: Sergiu Marton Date: Wed, 3 Apr 2019 18:49:00 +0300 Subject: [PATCH 091/260] docs: fix typo (#1510) --- packages/docs/docs/plugin/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docs/docs/plugin/README.md b/packages/docs/docs/plugin/README.md index 09d6378d..6c16067f 100644 --- a/packages/docs/docs/plugin/README.md +++ b/packages/docs/docs/plugin/README.md @@ -5,6 +5,6 @@ Plugins usually add global-level functionality to VuePress. There is no strictly 1. Extend the page's metadata generated at compile time. e.g. [@vuepress/plugin-last-updated](./official/plugin-last-updated.md); 2. Generate extra files before or after compilation. e.g. [@vuepress/plugin-pwa](./official/plugin-pwa.md); 3. Inject global UI. e.g. [@vuepress/plugin-back-to-top](./official/plugin-back-to-top.md); -4. Exntend command of CLI,如 [vuepress-plugin-export](https://github.com/ulivz/vuepress-plugin-export)。 +4. Extend the CLI with custom commands. e.g. [vuepress-plugin-export](https://github.com/ulivz/vuepress-plugin-export). ![Architecture of VuePress](/architecture.png) From dabf506022978ecf5101ff49cc9de1776a552ab5 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 7 Apr 2019 00:45:06 +0800 Subject: [PATCH 092/260] fix($core): `Index.styl` is not injected at the end of the style bundle (close: #1523) BTW, A theme cannot require the theme's styles at the layout but need use `Index.styl` instead. --- .../core/lib/node/internal-plugins/palette/index.js | 11 +++++++++-- .../core/lib/node/internal-plugins/style/index.js | 13 +++++++++++-- packages/@vuepress/theme-default/layouts/404.vue | 2 -- packages/@vuepress/theme-default/layouts/Layout.vue | 1 - .../theme-default/styles/{theme.styl => index.styl} | 0 5 files changed, 20 insertions(+), 7 deletions(-) rename packages/@vuepress/theme-default/styles/{theme.styl => index.styl} (100%) diff --git a/packages/@vuepress/core/lib/node/internal-plugins/palette/index.js b/packages/@vuepress/core/lib/node/internal-plugins/palette/index.js index 7327c4e0..49d162ec 100644 --- a/packages/@vuepress/core/lib/node/internal-plugins/palette/index.js +++ b/packages/@vuepress/core/lib/node/internal-plugins/palette/index.js @@ -31,15 +31,22 @@ module.exports = (options, ctx) => ({ ? `@import(${JSON.stringify(userPalette.replace(/[\\]+/g, '/'))})` : '' + const nullComment = '// null' + // user's palette can override theme's palette. - let paletteContent = themePaletteContent + userPaletteContent + let paletteContent = '// Theme\'s Palette\n' + + (themePaletteContent || nullComment) + + '\n\n// User\'s Palette\n' + + (userPaletteContent || nullComment) if (ctx.themeAPI.existsParentTheme) { const parentThemePalette = path.resolve(ctx.themeAPI.parentTheme.path, 'styles/palette.styl') const parentThemePaletteContent = fs.existsSync(parentThemePalette) ? `@import(${JSON.stringify(parentThemePalette.replace(/[\\]+/g, '/'))})` : '' - paletteContent = parentThemePaletteContent + paletteContent + paletteContent = '// Parent Theme\'s Palette\n' + + (parentThemePaletteContent || nullComment) + + '\n\n' + paletteContent } await writeTemp('palette.styl', paletteContent) diff --git a/packages/@vuepress/core/lib/node/internal-plugins/style/index.js b/packages/@vuepress/core/lib/node/internal-plugins/style/index.js index 2055be69..b8a54871 100644 --- a/packages/@vuepress/core/lib/node/internal-plugins/style/index.js +++ b/packages/@vuepress/core/lib/node/internal-plugins/style/index.js @@ -30,14 +30,23 @@ module.exports = (options, ctx) => ({ ? `@import(${JSON.stringify(userStyle.replace(/[\\]+/g, '/'))})` : '' - let styleContent = themeStyleContent + userStyleContent + const nullComment = '// null' + + // user's styles can override theme's styles. + let styleContent = '// Theme\'s Styles\n' + + (themeStyleContent || nullComment) + + '\n\n// User\'s Styles\n' + + (userStyleContent || nullComment) if (themeAPI.existsParentTheme) { const parentThemeStyle = path.resolve(themeAPI.parentTheme.path, 'styles/index.styl') const parentThemeStyleContent = fs.existsSync(parentThemeStyle) ? `@import(${JSON.stringify(parentThemeStyle.replace(/[\\]+/g, '/'))})` : '' - styleContent = parentThemeStyleContent + styleContent + + styleContent = '// Parent Theme\'s Styles\n' + + (parentThemeStyleContent || nullComment) + + '\n\n' + styleContent } await writeTemp('style.styl', styleContent) diff --git a/packages/@vuepress/theme-default/layouts/404.vue b/packages/@vuepress/theme-default/layouts/404.vue index 4eef36d3..6aefe797 100644 --- a/packages/@vuepress/theme-default/layouts/404.vue +++ b/packages/@vuepress/theme-default/layouts/404.vue @@ -24,5 +24,3 @@ export default { } } - - diff --git a/packages/@vuepress/theme-default/layouts/Layout.vue b/packages/@vuepress/theme-default/layouts/Layout.vue index d1960a3e..93aab9e0 100644 --- a/packages/@vuepress/theme-default/layouts/Layout.vue +++ b/packages/@vuepress/theme-default/layouts/Layout.vue @@ -147,4 +147,3 @@ export default { - diff --git a/packages/@vuepress/theme-default/styles/theme.styl b/packages/@vuepress/theme-default/styles/index.styl similarity index 100% rename from packages/@vuepress/theme-default/styles/theme.styl rename to packages/@vuepress/theme-default/styles/index.styl From 5c307c99b940bfd8081e53e814fb8e415051dcf1 Mon Sep 17 00:00:00 2001 From: Nick Evans Date: Sat, 6 Apr 2019 11:51:37 -0500 Subject: [PATCH 093/260] fix($markdown): Snippets should allow spaces in file path (closes #1505) (#1517) --- .../__tests__/__snapshots__/snippet.spec.js.snap | 10 ++++++++++ .../fragments/code-snippet-with-space-in-path.md | 1 + .../__tests__/fragments/snippet with spaces.js | 3 +++ packages/@vuepress/markdown/__tests__/snippet.spec.js | 6 ++++++ packages/@vuepress/markdown/lib/snippet.js | 2 +- 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 packages/@vuepress/markdown/__tests__/fragments/code-snippet-with-space-in-path.md create mode 100644 packages/@vuepress/markdown/__tests__/fragments/snippet with spaces.js diff --git a/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap b/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap index 1514907d..d62e8722 100644 --- a/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap +++ b/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap @@ -1,5 +1,15 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`snippet import snipets when the file has a space in the file path 1`] = ` +
+
 
+
 
+
 

+
export default function () { +// .. +} +`; + exports[`snippet import snippet 1`] = `
export default function () {
   // ..
diff --git a/packages/@vuepress/markdown/__tests__/fragments/code-snippet-with-space-in-path.md b/packages/@vuepress/markdown/__tests__/fragments/code-snippet-with-space-in-path.md
new file mode 100644
index 00000000..659cb258
--- /dev/null
+++ b/packages/@vuepress/markdown/__tests__/fragments/code-snippet-with-space-in-path.md
@@ -0,0 +1 @@
+<<< @/packages/@vuepress/markdown/__tests__/fragments/snippet with spaces.js {1-3}
diff --git a/packages/@vuepress/markdown/__tests__/fragments/snippet with spaces.js b/packages/@vuepress/markdown/__tests__/fragments/snippet with spaces.js
new file mode 100644
index 00000000..575039d1
--- /dev/null
+++ b/packages/@vuepress/markdown/__tests__/fragments/snippet with spaces.js	
@@ -0,0 +1,3 @@
+export default function () {
+  // ..
+}
diff --git a/packages/@vuepress/markdown/__tests__/snippet.spec.js b/packages/@vuepress/markdown/__tests__/snippet.spec.js
index bd3a23cf..4a2c65f8 100644
--- a/packages/@vuepress/markdown/__tests__/snippet.spec.js
+++ b/packages/@vuepress/markdown/__tests__/snippet.spec.js
@@ -24,4 +24,10 @@ describe('snippet', () => {
     const output = mdH.render(input)
     expect(output).toMatchSnapshot()
   })
+
+  test('import snipets when the file has a space in the file path', () => {
+    const input = getFragment(__dirname, 'code-snippet-with-space-in-path.md')
+    const output = mdH.render(input)
+    expect(output).toMatchSnapshot()
+  })
 })
diff --git a/packages/@vuepress/markdown/lib/snippet.js b/packages/@vuepress/markdown/lib/snippet.js
index b0b88f18..7713da90 100644
--- a/packages/@vuepress/markdown/lib/snippet.js
+++ b/packages/@vuepress/markdown/lib/snippet.js
@@ -44,7 +44,7 @@ module.exports = function snippet (md, options = {}) {
     const start = pos + 3
     const end = state.skipSpacesBack(max, pos)
     const rawPath = state.src.slice(start, end).trim().replace(/^@/, root)
-    const filename = rawPath.split(/[{\s]/).shift()
+    const filename = rawPath.split(/{/).shift().trim()
     const meta = rawPath.replace(filename, '')
 
     state.line = startLine + 1

From 74887c50da1001df27b9ece1d8f10cb611ac4728 Mon Sep 17 00:00:00 2001
From: Shigma <33423008+Shigma@users.noreply.github.com>
Date: Sun, 7 Apr 2019 00:55:49 +0800
Subject: [PATCH 094/260] feat($core): assert return type for functional plugin
 (#1516)

---
 packages/@vuepress/core/lib/node/plugin-api/util.js | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/packages/@vuepress/core/lib/node/plugin-api/util.js b/packages/@vuepress/core/lib/node/plugin-api/util.js
index a0d7be90..b3c17a50 100644
--- a/packages/@vuepress/core/lib/node/plugin-api/util.js
+++ b/packages/@vuepress/core/lib/node/plugin-api/util.js
@@ -43,6 +43,14 @@ exports.flattenPlugin = function (
     // 'Object.create' here is to give each plugin a separate context,
     // but also own the inheritance context.
     config = config(pluginOptions, Object.create(pluginContext), self)
+    const { valid, warnMsg } = assertTypes(config, [Object])
+    if (!valid) {
+      logger.warn(
+        `[${chalk.gray(shortcut)}] `
+        + `Invalid value for plugin: ${warnMsg}`
+      )
+      config = {}
+    }
   }
 
   // respect name in local plugin config

From 6da9a5f112fae442ca26b14374d18ca560769053 Mon Sep 17 00:00:00 2001
From: ULIVZ <472590061@qq.com>
Date: Sun, 7 Apr 2019 01:08:05 +0800
Subject: [PATCH 095/260] feat($core): emit warning if the source directory
 doesn't exist (close: #1521)

---
 packages/@vuepress/core/lib/node/App.js | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/packages/@vuepress/core/lib/node/App.js b/packages/@vuepress/core/lib/node/App.js
index 8684b652..e1897bae 100755
--- a/packages/@vuepress/core/lib/node/App.js
+++ b/packages/@vuepress/core/lib/node/App.js
@@ -41,6 +41,9 @@ module.exports = class App {
     this.options = options
     this.sourceDir = this.options.sourceDir || path.join(__dirname, 'docs.fallback')
     logger.debug('sourceDir', this.sourceDir)
+    if (!fs.existsSync(this.sourceDir)) {
+      logger.warn(`Source directory doesn't exist: ${chalk.yellow(this.sourceDir)}`)
+    }
 
     const { tempPath, writeTemp } = createTemp(options.temp)
     this.tempPath = tempPath

From 9420ca92332f21ef81e2f9046286111983810b59 Mon Sep 17 00:00:00 2001
From: ULIVZ <472590061@qq.com>
Date: Sun, 7 Apr 2019 01:29:01 +0800
Subject: [PATCH 096/260] chore: bump to
 optimize-css-assets-webpack-plugin@5.0.1

---
 .../lib/node/webpack/createClientConfig.js    |   3 +-
 packages/@vuepress/core/package.json          |   3 +-
 yarn.lock                                     | 560 +++++++++++++++++-
 3 files changed, 542 insertions(+), 24 deletions(-)

diff --git a/packages/@vuepress/core/lib/node/webpack/createClientConfig.js b/packages/@vuepress/core/lib/node/webpack/createClientConfig.js
index d6a8262c..c4aaae75 100644
--- a/packages/@vuepress/core/lib/node/webpack/createClientConfig.js
+++ b/packages/@vuepress/core/lib/node/webpack/createClientConfig.js
@@ -7,6 +7,7 @@
 module.exports = function createClientConfig (ctx) {
   const { env } = require('@vuepress/shared-utils')
   const createBaseConfig = require('./createBaseConfig')
+  const safeParser = require('postcss-safe-parser')
 
   const config = createBaseConfig(ctx)
 
@@ -49,7 +50,7 @@ module.exports = function createClientConfig (ctx) {
       .use(require('optimize-css-assets-webpack-plugin'), [{
         canPrint: false,
         cssProcessorOptions: {
-          safe: true,
+          parser: safeParser,
           autoprefixer: { disable: true },
           mergeLonghand: false
         }
diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json
index 1caa60f3..7a4ace48 100644
--- a/packages/@vuepress/core/package.json
+++ b/packages/@vuepress/core/package.json
@@ -48,9 +48,10 @@
     "js-yaml": "^3.11.0",
     "lru-cache": "^5.1.1",
     "mini-css-extract-plugin": "0.4.4",
-    "optimize-css-assets-webpack-plugin": "^4.0.0",
+    "optimize-css-assets-webpack-plugin": "^5.0.1",
     "portfinder": "^1.0.13",
     "postcss-loader": "^2.1.5",
+    "postcss-safe-parser": "^4.0.1",
     "toml": "^2.3.3",
     "url-loader": "^1.0.1",
     "vue": "^2.5.16",
diff --git a/yarn.lock b/yarn.lock
index 8ede5424..5d7d6520 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1347,6 +1347,10 @@
   version "10.12.29"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.29.tgz#c2c8d2d27bb55649fbafe8ea1731658421f38acf"
 
+"@types/q@^1.5.1":
+  version "1.5.2"
+  resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
+
 "@types/semver@^5.5.0":
   version "5.5.0"
   resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz#146c2a29ee7d3bae4bf2fcb274636e264c813c45"
@@ -1706,7 +1710,7 @@ algoliasearch@^3.24.5:
     semver "^5.1.0"
     tunnel-agent "^0.6.0"
 
-alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
+alphanum-sort@^1.0.0, alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
 
@@ -2122,7 +2126,7 @@ bonjour@^3.5.0:
     multicast-dns "^6.0.1"
     multicast-dns-service-types "^1.1.0"
 
-boolbase@~1.0.0:
+boolbase@^1.0.0, boolbase@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
 
@@ -2229,6 +2233,14 @@ browserslist@^2.11.3:
     caniuse-lite "^1.0.30000792"
     electron-to-chromium "^1.3.30"
 
+browserslist@^4.0.0:
+  version "4.5.4"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.4.tgz#166c4ecef3b51737a42436ea8002aeea466ea2c7"
+  dependencies:
+    caniuse-lite "^1.0.30000955"
+    electron-to-chromium "^1.3.122"
+    node-releases "^1.1.13"
+
 browserslist@^4.3.4:
   version "4.4.2"
   resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.2.tgz#6ea8a74d6464bb0bd549105f659b41197d8f0ba2"
@@ -2434,10 +2446,23 @@ caniuse-api@^1.5.2:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
+caniuse-api@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
+  dependencies:
+    browserslist "^4.0.0"
+    caniuse-lite "^1.0.0"
+    lodash.memoize "^4.1.2"
+    lodash.uniq "^4.5.0"
+
 caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
   version "1.0.30000939"
   resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000939.tgz#8cb54a9868fe040fbf2e2441408c68b7008912e8"
 
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000955:
+  version "1.0.30000957"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000957.tgz#fb1026bf184d7d62c685205358c3b24b9e29f7b3"
+
 caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000939:
   version "1.0.30000939"
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000939.tgz#b9ab7ac9e861bf78840b80c5dfbc471a5cd7e679"
@@ -2594,6 +2619,14 @@ co@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
 
+coa@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+  dependencies:
+    "@types/q" "^1.5.1"
+    chalk "^2.4.1"
+    q "^1.1.2"
+
 coa@~1.0.1:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
@@ -2611,7 +2644,7 @@ collection-visit@^1.0.0:
     map-visit "^1.0.0"
     object-visit "^1.0.0"
 
-color-convert@^1.3.0, color-convert@^1.9.0:
+color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.1:
   version "1.9.3"
   resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
   dependencies:
@@ -2631,6 +2664,13 @@ color-string@^0.3.0:
   dependencies:
     color-name "^1.0.0"
 
+color-string@^1.5.2:
+  version "1.5.3"
+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
+  dependencies:
+    color-name "^1.0.0"
+    simple-swizzle "^0.2.2"
+
 color@^0.11.0:
   version "0.11.4"
   resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
@@ -2639,6 +2679,13 @@ color@^0.11.0:
     color-convert "^1.3.0"
     color-string "^0.3.0"
 
+color@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc"
+  dependencies:
+    color-convert "^1.9.1"
+    color-string "^1.5.2"
+
 colormin@^1.0.5:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
@@ -3055,6 +3102,15 @@ cosmiconfig@^4.0.0:
     parse-json "^4.0.0"
     require-from-string "^2.0.1"
 
+cosmiconfig@^5.0.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8"
+  dependencies:
+    import-fresh "^2.0.0"
+    is-directory "^0.3.1"
+    js-yaml "^3.13.0"
+    parse-json "^4.0.0"
+
 cosmiconfig@^5.0.2, cosmiconfig@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf"
@@ -3127,10 +3183,17 @@ crypto-browserify@^3.11.0:
     randombytes "^2.0.0"
     randomfill "^1.0.3"
 
-css-color-names@0.0.4:
+css-color-names@0.0.4, css-color-names@^0.0.4:
   version "0.0.4"
   resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
 
+css-declaration-sorter@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
+  dependencies:
+    postcss "^7.0.1"
+    timsort "^0.3.0"
+
 css-loader@^0.28.11:
   version "0.28.11"
   resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7"
@@ -3154,6 +3217,10 @@ css-parse@1.7.x:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b"
 
+css-select-base-adapter@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
+
 css-select@^1.1.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
@@ -3163,6 +3230,15 @@ css-select@^1.1.0:
     domutils "1.5.1"
     nth-check "~1.0.1"
 
+css-select@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
+  dependencies:
+    boolbase "^1.0.0"
+    css-what "^2.1.2"
+    domutils "^1.7.0"
+    nth-check "^1.0.2"
+
 css-selector-tokenizer@^0.7.0:
   version "0.7.1"
   resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d"
@@ -3171,7 +3247,29 @@ css-selector-tokenizer@^0.7.0:
     fastparse "^1.1.1"
     regexpu-core "^1.0.0"
 
-css-what@2.1:
+css-tree@1.0.0-alpha.28:
+  version "1.0.0-alpha.28"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
+  dependencies:
+    mdn-data "~1.1.0"
+    source-map "^0.5.3"
+
+css-tree@1.0.0-alpha.29:
+  version "1.0.0-alpha.29"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
+  dependencies:
+    mdn-data "~1.1.0"
+    source-map "^0.5.3"
+
+css-unit-converter@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
+
+css-url-regex@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec"
+
+css-what@2.1, css-what@^2.1.2:
   version "2.1.3"
   resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
 
@@ -3192,6 +3290,59 @@ cssesc@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
 
+cssnano-preset-default@^4.0.7:
+  version "4.0.7"
+  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
+  dependencies:
+    css-declaration-sorter "^4.0.1"
+    cssnano-util-raw-cache "^4.0.1"
+    postcss "^7.0.0"
+    postcss-calc "^7.0.1"
+    postcss-colormin "^4.0.3"
+    postcss-convert-values "^4.0.1"
+    postcss-discard-comments "^4.0.2"
+    postcss-discard-duplicates "^4.0.2"
+    postcss-discard-empty "^4.0.1"
+    postcss-discard-overridden "^4.0.1"
+    postcss-merge-longhand "^4.0.11"
+    postcss-merge-rules "^4.0.3"
+    postcss-minify-font-values "^4.0.2"
+    postcss-minify-gradients "^4.0.2"
+    postcss-minify-params "^4.0.2"
+    postcss-minify-selectors "^4.0.2"
+    postcss-normalize-charset "^4.0.1"
+    postcss-normalize-display-values "^4.0.2"
+    postcss-normalize-positions "^4.0.2"
+    postcss-normalize-repeat-style "^4.0.2"
+    postcss-normalize-string "^4.0.2"
+    postcss-normalize-timing-functions "^4.0.2"
+    postcss-normalize-unicode "^4.0.1"
+    postcss-normalize-url "^4.0.1"
+    postcss-normalize-whitespace "^4.0.2"
+    postcss-ordered-values "^4.1.2"
+    postcss-reduce-initial "^4.0.3"
+    postcss-reduce-transforms "^4.0.2"
+    postcss-svgo "^4.0.2"
+    postcss-unique-selectors "^4.0.1"
+
+cssnano-util-get-arguments@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
+
+cssnano-util-get-match@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
+
+cssnano-util-raw-cache@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
+  dependencies:
+    postcss "^7.0.0"
+
+cssnano-util-same-parent@^4.0.0:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
+
 cssnano@^3.10.0:
   version "3.10.0"
   resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"
@@ -3229,6 +3380,21 @@ cssnano@^3.10.0:
     postcss-value-parser "^3.2.3"
     postcss-zindex "^2.0.1"
 
+cssnano@^4.1.0:
+  version "4.1.10"
+  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
+  dependencies:
+    cosmiconfig "^5.0.0"
+    cssnano-preset-default "^4.0.7"
+    is-resolvable "^1.0.0"
+    postcss "^7.0.0"
+
+csso@^3.5.1:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
+  dependencies:
+    css-tree "1.0.0-alpha.29"
+
 csso@~2.3.1:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85"
@@ -3384,7 +3550,7 @@ defaults@^1.0.3:
   dependencies:
     clone "^1.0.2"
 
-define-properties@^1.1.2:
+define-properties@^1.1.2, define-properties@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
   dependencies:
@@ -3586,7 +3752,7 @@ domutils@1.5.1:
     dom-serializer "0"
     domelementtype "1"
 
-domutils@^1.5.1:
+domutils@^1.5.1, domutils@^1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
   dependencies:
@@ -3599,7 +3765,7 @@ dot-prop@^3.0.0:
   dependencies:
     is-obj "^1.0.0"
 
-dot-prop@^4.2.0:
+dot-prop@^4.1.1, dot-prop@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
   dependencies:
@@ -3644,6 +3810,10 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.113, electron-to-chromium
   version "1.3.113"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz#b1ccf619df7295aea17bc6951dc689632629e4a9"
 
+electron-to-chromium@^1.3.122:
+  version "1.3.124"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz#861fc0148748a11b3e5ccebdf8b795ff513fa11f"
+
 elegant-spinner@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
@@ -3715,7 +3885,7 @@ error-ex@^1.2.0, error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.5.1:
+es-abstract@^1.12.0, es-abstract@^1.5.1:
   version "1.13.0"
   resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
   dependencies:
@@ -4679,7 +4849,7 @@ has-values@^1.0.0:
     is-number "^3.0.0"
     kind-of "^4.0.0"
 
-has@^1.0.1, has@^1.0.3:
+has@^1.0.0, has@^1.0.1, has@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
   dependencies:
@@ -4707,6 +4877,10 @@ he@1.2.x, he@^1.1.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
 
+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"
+
 hmac-drbg@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -4739,6 +4913,14 @@ hpack.js@^2.1.6:
     readable-stream "^2.0.1"
     wbuf "^1.1.0"
 
+hsl-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
+
+hsla-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
+
 html-comment-regex@^1.1.0:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
@@ -5071,6 +5253,10 @@ is-arrayish@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
 
+is-arrayish@^0.3.1:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+
 is-binary-path@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
@@ -5097,6 +5283,17 @@ is-ci@^2.0.0:
   dependencies:
     ci-info "^2.0.0"
 
+is-color-stop@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
+  dependencies:
+    css-color-names "^0.0.4"
+    hex-color-regex "^1.1.0"
+    hsl-regex "^1.0.0"
+    hsla-regex "^1.0.0"
+    rgb-regex "^1.0.1"
+    rgba-regex "^1.0.0"
+
 is-data-descriptor@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -5259,6 +5456,12 @@ is-svg@^2.0.0:
   dependencies:
     html-comment-regex "^1.1.0"
 
+is-svg@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
+  dependencies:
+    html-comment-regex "^1.1.0"
+
 is-symbol@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
@@ -5753,6 +5956,13 @@ js-yaml@^3.11.0, js-yaml@^3.12.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
+js-yaml@^3.13.0:
+  version "3.13.1"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+  dependencies:
+    argparse "^1.0.7"
+    esprima "^4.0.0"
+
 js-yaml@~3.7.0:
   version "3.7.0"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
@@ -6317,6 +6527,10 @@ md5.js@^1.3.4:
     inherits "^2.0.1"
     safe-buffer "^5.1.2"
 
+mdn-data@~1.1.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01"
+
 mdurl@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
@@ -6750,6 +6964,12 @@ node-pre-gyp@^0.10.0:
     semver "^5.3.0"
     tar "^4"
 
+node-releases@^1.1.13:
+  version "1.1.13"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.13.tgz#8c03296b5ae60c08e2ff4f8f22ae45bd2f210083"
+  dependencies:
+    semver "^5.3.0"
+
 node-releases@^1.1.8:
   version "1.1.9"
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.9.tgz#70d0985ec4bf7de9f08fc481f5dae111889ca482"
@@ -6811,7 +7031,7 @@ normalize-url@^1.4.0:
     query-string "^4.1.0"
     sort-keys "^1.0.0"
 
-normalize-url@^3.3.0:
+normalize-url@^3.0.0, normalize-url@^3.3.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
 
@@ -6900,7 +7120,7 @@ nprogress@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1"
 
-nth-check@~1.0.1:
+nth-check@^1.0.2, nth-check@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
   dependencies:
@@ -6966,6 +7186,15 @@ object.pick@^1.3.0:
   dependencies:
     isobject "^3.0.1"
 
+object.values@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.12.0"
+    function-bind "^1.1.1"
+    has "^1.0.3"
+
 obuf@^1.0.0, obuf@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
@@ -7009,11 +7238,11 @@ optimist@^0.6.1:
     minimist "~0.0.1"
     wordwrap "~0.0.2"
 
-optimize-css-assets-webpack-plugin@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-4.0.3.tgz#4f714e276b279700892c4a6202b7e22812d6f683"
+optimize-css-assets-webpack-plugin@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz#9eb500711d35165b45e7fd60ba2df40cb3eb9159"
   dependencies:
-    cssnano "^3.10.0"
+    cssnano "^4.1.0"
     last-call-webpack-plugin "^3.0.0"
 
 optionator@^0.8.1, optionator@^0.8.2:
@@ -7387,6 +7616,15 @@ postcss-calc@^5.2.0:
     postcss-message-helpers "^2.0.0"
     reduce-css-calc "^1.2.6"
 
+postcss-calc@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
+  dependencies:
+    css-unit-converter "^1.1.1"
+    postcss "^7.0.5"
+    postcss-selector-parser "^5.0.0-rc.4"
+    postcss-value-parser "^3.3.1"
+
 postcss-colormin@^2.1.8:
   version "2.2.2"
   resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b"
@@ -7395,6 +7633,16 @@ postcss-colormin@^2.1.8:
     postcss "^5.0.13"
     postcss-value-parser "^3.2.3"
 
+postcss-colormin@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
+  dependencies:
+    browserslist "^4.0.0"
+    color "^3.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
 postcss-convert-values@^2.3.4:
   version "2.6.1"
   resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d"
@@ -7402,30 +7650,61 @@ postcss-convert-values@^2.3.4:
     postcss "^5.0.11"
     postcss-value-parser "^3.1.2"
 
+postcss-convert-values@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
+  dependencies:
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
 postcss-discard-comments@^2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d"
   dependencies:
     postcss "^5.0.14"
 
+postcss-discard-comments@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
+  dependencies:
+    postcss "^7.0.0"
+
 postcss-discard-duplicates@^2.0.1:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932"
   dependencies:
     postcss "^5.0.4"
 
+postcss-discard-duplicates@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
+  dependencies:
+    postcss "^7.0.0"
+
 postcss-discard-empty@^2.0.1:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5"
   dependencies:
     postcss "^5.0.14"
 
+postcss-discard-empty@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
+  dependencies:
+    postcss "^7.0.0"
+
 postcss-discard-overridden@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58"
   dependencies:
     postcss "^5.0.16"
 
+postcss-discard-overridden@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
+  dependencies:
+    postcss "^7.0.0"
+
 postcss-discard-unused@^2.2.1:
   version "2.2.3"
   resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433"
@@ -7469,6 +7748,15 @@ postcss-merge-longhand@^2.0.1:
   dependencies:
     postcss "^5.0.4"
 
+postcss-merge-longhand@^4.0.11:
+  version "4.0.11"
+  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
+  dependencies:
+    css-color-names "0.0.4"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+    stylehacks "^4.0.0"
+
 postcss-merge-rules@^2.0.3:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721"
@@ -7479,6 +7767,17 @@ postcss-merge-rules@^2.0.3:
     postcss-selector-parser "^2.2.2"
     vendors "^1.0.0"
 
+postcss-merge-rules@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
+  dependencies:
+    browserslist "^4.0.0"
+    caniuse-api "^3.0.0"
+    cssnano-util-same-parent "^4.0.0"
+    postcss "^7.0.0"
+    postcss-selector-parser "^3.0.0"
+    vendors "^1.0.0"
+
 postcss-message-helpers@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"
@@ -7491,6 +7790,13 @@ postcss-minify-font-values@^1.0.2:
     postcss "^5.0.4"
     postcss-value-parser "^3.0.2"
 
+postcss-minify-font-values@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
+  dependencies:
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
 postcss-minify-gradients@^1.0.1:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1"
@@ -7498,6 +7804,15 @@ postcss-minify-gradients@^1.0.1:
     postcss "^5.0.12"
     postcss-value-parser "^3.3.0"
 
+postcss-minify-gradients@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
+  dependencies:
+    cssnano-util-get-arguments "^4.0.0"
+    is-color-stop "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
 postcss-minify-params@^1.0.4:
   version "1.2.2"
   resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3"
@@ -7507,6 +7822,17 @@ postcss-minify-params@^1.0.4:
     postcss-value-parser "^3.0.2"
     uniqs "^2.0.0"
 
+postcss-minify-params@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
+  dependencies:
+    alphanum-sort "^1.0.0"
+    browserslist "^4.0.0"
+    cssnano-util-get-arguments "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+    uniqs "^2.0.0"
+
 postcss-minify-selectors@^2.0.4:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf"
@@ -7516,6 +7842,15 @@ postcss-minify-selectors@^2.0.4:
     postcss "^5.0.14"
     postcss-selector-parser "^2.0.0"
 
+postcss-minify-selectors@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
+  dependencies:
+    alphanum-sort "^1.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-selector-parser "^3.0.0"
+
 postcss-modules-extract-imports@^1.2.0:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a"
@@ -7549,6 +7884,62 @@ postcss-normalize-charset@^1.1.0:
   dependencies:
     postcss "^5.0.5"
 
+postcss-normalize-charset@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
+  dependencies:
+    postcss "^7.0.0"
+
+postcss-normalize-display-values@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
+  dependencies:
+    cssnano-util-get-match "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-positions@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
+  dependencies:
+    cssnano-util-get-arguments "^4.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-repeat-style@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
+  dependencies:
+    cssnano-util-get-arguments "^4.0.0"
+    cssnano-util-get-match "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-string@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
+  dependencies:
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-timing-functions@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
+  dependencies:
+    cssnano-util-get-match "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-unicode@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
+  dependencies:
+    browserslist "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
 postcss-normalize-url@^3.0.7:
   version "3.0.8"
   resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222"
@@ -7558,6 +7949,22 @@ postcss-normalize-url@^3.0.7:
     postcss "^5.0.14"
     postcss-value-parser "^3.2.3"
 
+postcss-normalize-url@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
+  dependencies:
+    is-absolute-url "^2.0.0"
+    normalize-url "^3.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-normalize-whitespace@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
+  dependencies:
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
 postcss-ordered-values@^2.1.0:
   version "2.2.3"
   resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d"
@@ -7565,6 +7972,14 @@ postcss-ordered-values@^2.1.0:
     postcss "^5.0.4"
     postcss-value-parser "^3.0.1"
 
+postcss-ordered-values@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
+  dependencies:
+    cssnano-util-get-arguments "^4.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
 postcss-reduce-idents@^2.2.2:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3"
@@ -7578,6 +7993,15 @@ postcss-reduce-initial@^1.0.0:
   dependencies:
     postcss "^5.0.4"
 
+postcss-reduce-initial@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
+  dependencies:
+    browserslist "^4.0.0"
+    caniuse-api "^3.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+
 postcss-reduce-transforms@^1.0.3:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1"
@@ -7586,6 +8010,21 @@ postcss-reduce-transforms@^1.0.3:
     postcss "^5.0.8"
     postcss-value-parser "^3.0.1"
 
+postcss-reduce-transforms@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
+  dependencies:
+    cssnano-util-get-match "^4.0.0"
+    has "^1.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+
+postcss-safe-parser@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea"
+  dependencies:
+    postcss "^7.0.0"
+
 postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2:
   version "2.2.3"
   resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
@@ -7594,7 +8033,15 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2:
     indexes-of "^1.0.1"
     uniq "^1.0.1"
 
-postcss-selector-parser@^5.0.0:
+postcss-selector-parser@^3.0.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
+  dependencies:
+    dot-prop "^4.1.1"
+    indexes-of "^1.0.1"
+    uniq "^1.0.1"
+
+postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.4:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
   dependencies:
@@ -7611,6 +8058,15 @@ postcss-svgo@^2.1.1:
     postcss-value-parser "^3.2.3"
     svgo "^0.7.0"
 
+postcss-svgo@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
+  dependencies:
+    is-svg "^3.0.0"
+    postcss "^7.0.0"
+    postcss-value-parser "^3.0.0"
+    svgo "^1.0.0"
+
 postcss-unique-selectors@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d"
@@ -7619,7 +8075,15 @@ postcss-unique-selectors@^2.0.2:
     postcss "^5.0.4"
     uniqs "^2.0.0"
 
-postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
+postcss-unique-selectors@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
+  dependencies:
+    alphanum-sort "^1.0.0"
+    postcss "^7.0.0"
+    uniqs "^2.0.0"
+
+postcss-value-parser@^3.0.0, postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
   version "3.3.1"
   resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
 
@@ -7648,7 +8112,7 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.17:
     source-map "^0.6.1"
     supports-color "^5.4.0"
 
-postcss@^7.0.14:
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.5:
   version "7.0.14"
   resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5"
   dependencies:
@@ -8275,6 +8739,14 @@ retry@^0.10.0:
   version "0.10.1"
   resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
 
+rgb-regex@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
+
+rgba-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
+
 rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2:
   version "2.6.3"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
@@ -8354,7 +8826,7 @@ sax@0.5.x:
   version "0.5.8"
   resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
 
-sax@^1.2.4, sax@~1.2.1:
+sax@^1.2.4, sax@~1.2.1, sax@~1.2.4:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
 
@@ -8508,6 +8980,12 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
 
+simple-swizzle@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+  dependencies:
+    is-arrayish "^0.3.1"
+
 sisteransi@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c"
@@ -8743,6 +9221,10 @@ ssri@^6.0.0, ssri@^6.0.1:
   dependencies:
     figgy-pudding "^3.5.1"
 
+stable@^0.1.8:
+  version "0.1.8"
+  resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+
 stack-utils@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
@@ -8919,6 +9401,14 @@ strong-log-transformer@^2.0.0:
     minimist "^1.2.0"
     through "^2.3.4"
 
+stylehacks@^4.0.0:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
+  dependencies:
+    browserslist "^4.0.0"
+    postcss "^7.0.0"
+    postcss-selector-parser "^3.0.0"
+
 stylus-loader@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6"
@@ -8976,6 +9466,25 @@ svgo@^0.7.0:
     sax "~1.2.1"
     whet.extend "~0.9.9"
 
+svgo@^1.0.0:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.1.tgz#3fedde75a4016193e1c2608b5fdef6f3e4a9fd99"
+  dependencies:
+    chalk "^2.4.1"
+    coa "^2.0.2"
+    css-select "^2.0.0"
+    css-select-base-adapter "^0.1.1"
+    css-tree "1.0.0-alpha.28"
+    css-url-regex "^1.1.0"
+    csso "^3.5.1"
+    js-yaml "^3.13.0"
+    mkdirp "~0.5.1"
+    object.values "^1.1.0"
+    sax "~1.2.4"
+    stable "^0.1.8"
+    unquote "~1.1.1"
+    util.promisify "~1.0.0"
+
 symbol-observable@^1.1.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
@@ -9115,6 +9624,10 @@ timers-browserify@^2.0.4:
   dependencies:
     setimmediate "^1.0.4"
 
+timsort@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
+
 tiny-emitter@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
@@ -9347,6 +9860,10 @@ unpipe@1.0.0, unpipe@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
 
+unquote@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
+
 unset-value@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
@@ -9406,7 +9923,7 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
 
-util.promisify@1.0.0, util.promisify@^1.0.0:
+util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
   dependencies:
@@ -9570,7 +10087,6 @@ vuepress-html-webpack-plugin@^3.2.0:
 vuepress-plugin-container@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/vuepress-plugin-container/-/vuepress-plugin-container-2.0.1.tgz#b20ef97dd91f137c8be119460927c5ffd64e0f77"
-  integrity sha512-SMlWJl0uZYkqAxD2RUZmIrANZWKgiZdM64K7WmdyHyQPYI+NUj3ugi5D+zDn62BoO9NfQTiskEIa2u619SRweA==
   dependencies:
     markdown-it-container "^2.0.0"
 

From 46406148f630fa1f83ff93ab1a7ceff122e9a86c Mon Sep 17 00:00:00 2001
From: ULIVZ <472590061@qq.com>
Date: Sun, 7 Apr 2019 01:33:10 +0800
Subject: [PATCH 097/260] feat($plugin-pwa): allow using local workbox files
 (close: #539)

---
 packages/@vuepress/plugin-pwa/index.js              | 3 ++-
 packages/docs/docs/plugin/official/plugin-pwa.md    | 8 ++++++++
 packages/docs/docs/zh/plugin/official/plugin-pwa.md | 8 ++++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/packages/@vuepress/plugin-pwa/index.js b/packages/@vuepress/plugin-pwa/index.js
index 748f1752..0bbf49e3 100644
--- a/packages/@vuepress/plugin-pwa/index.js
+++ b/packages/@vuepress/plugin-pwa/index.js
@@ -40,7 +40,8 @@ module.exports = (options, context) => ({
       await wbb.generateSW({
         swDest: swFilePath,
         globDirectory: outDir,
-        globPatterns: ['**\/*.{js,css,html,png,jpg,jpeg,gif,svg,woff,woff2,eot,ttf,otf}']
+        globPatterns: ['**\/*.{js,css,html,png,jpg,jpeg,gif,svg,woff,woff2,eot,ttf,otf}'],
+        ...(options.generateSWConfig || {})
       })
       await fs.writeFile(
         swFilePath,
diff --git a/packages/docs/docs/plugin/official/plugin-pwa.md b/packages/docs/docs/plugin/official/plugin-pwa.md
index ecee4ca1..0e532c11 100644
--- a/packages/docs/docs/plugin/official/plugin-pwa.md
+++ b/packages/docs/docs/plugin/official/plugin-pwa.md
@@ -45,6 +45,14 @@ The `serviceWorker` option only handles the service worker. To make your site fu
 Also, only enable this if you are able to deploy your site with SSL, since service worker can only be registered under HTTPs URLs.
 :::
 
+### generateSWConfig
+
+- Type: `object`
+- Default: `{}`
+
+[generateSW config](https://developers.google.com/web/tools/workbox/modules/workbox-build#full_generatesw_config) of workbox-build.
+
+
 ### updatePopup
 
 - Type: `boolean|object`
diff --git a/packages/docs/docs/zh/plugin/official/plugin-pwa.md b/packages/docs/docs/zh/plugin/official/plugin-pwa.md
index 14b514d5..6823f641 100644
--- a/packages/docs/docs/zh/plugin/official/plugin-pwa.md
+++ b/packages/docs/docs/zh/plugin/official/plugin-pwa.md
@@ -44,6 +44,14 @@ module.exports = {
 此外,只有您能够使用 SSL 部署您的站点时才能启用此功能,因为 service worker 只能在 HTTPs 的 URL 下注册。
 :::
 
+### generateSWConfig
+
+- 类型: `object`
+- 默认值: `{}`
+
+workbox-build 的 [generateSW config](https://developers.google.com/web/tools/workbox/modules/workbox-build#full_generatesw_config)。
+
+
 ### updatePopup
 
 - 类型: `boolean|popupConfig`

From 78ce258b22f399eac7e16aa87bf06373f752e477 Mon Sep 17 00:00:00 2001
From: ULIVZ <472590061@qq.com>
Date: Sun, 7 Apr 2019 01:37:49 +0800
Subject: [PATCH 098/260] v1.0.0-alpha.47

---
 lerna.json                                         |  2 +-
 packages/@vuepress/core/package.json               | 12 ++++++------
 packages/@vuepress/markdown-loader/package.json    |  4 ++--
 packages/@vuepress/markdown/package.json           |  6 +++---
 .../plugin-active-header-links/package.json        |  2 +-
 packages/@vuepress/plugin-back-to-top/package.json |  2 +-
 packages/@vuepress/plugin-blog/package.json        |  2 +-
 .../@vuepress/plugin-google-analytics/package.json |  2 +-
 .../@vuepress/plugin-last-updated/package.json     |  2 +-
 packages/@vuepress/plugin-medium-zoom/package.json |  2 +-
 packages/@vuepress/plugin-nprogress/package.json   |  2 +-
 packages/@vuepress/plugin-pagination/package.json  |  2 +-
 packages/@vuepress/plugin-pwa/package.json         |  4 ++--
 .../plugin-register-components/package.json        |  4 ++--
 packages/@vuepress/plugin-search/package.json      |  2 +-
 packages/@vuepress/shared-utils/package.json       |  2 +-
 packages/@vuepress/test-utils/package.json         |  6 +++---
 packages/@vuepress/theme-blog/package.json         | 10 +++++-----
 packages/@vuepress/theme-default/package.json      |  8 ++++----
 packages/@vuepress/theme-vue/package.json          |  4 ++--
 packages/blog/package.json                         |  6 +++---
 packages/docs/package.json                         | 14 +++++++-------
 packages/vuepress/package.json                     |  6 +++---
 23 files changed, 53 insertions(+), 53 deletions(-)

diff --git a/lerna.json b/lerna.json
index a0dd2828..7c6d8823 100644
--- a/lerna.json
+++ b/lerna.json
@@ -2,5 +2,5 @@
   "lerna": "2.5.1",
   "npmClient": "yarn",
   "useWorkspaces": true,
-  "version": "1.0.0-alpha.46"
+  "version": "1.0.0-alpha.47"
 }
diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json
index 7a4ace48..3f9ca0c3 100644
--- a/packages/@vuepress/core/package.json
+++ b/packages/@vuepress/core/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/core",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "Minimalistic doc generator with Vue component based layout system",
   "main": "lib/index.js",
   "repository": {
@@ -31,11 +31,11 @@
   "dependencies": {
     "@babel/core": "^7.0.0",
     "@vue/babel-preset-app": "^3.1.1",
-    "@vuepress/markdown": "^1.0.0-alpha.46",
-    "@vuepress/markdown-loader": "^1.0.0-alpha.46",
-    "@vuepress/plugin-last-updated": "^1.0.0-alpha.46",
-    "@vuepress/plugin-register-components": "^1.0.0-alpha.46",
-    "@vuepress/shared-utils": "^1.0.0-alpha.46",
+    "@vuepress/markdown": "^1.0.0-alpha.47",
+    "@vuepress/markdown-loader": "^1.0.0-alpha.47",
+    "@vuepress/plugin-last-updated": "^1.0.0-alpha.47",
+    "@vuepress/plugin-register-components": "^1.0.0-alpha.47",
+    "@vuepress/shared-utils": "^1.0.0-alpha.47",
     "autoprefixer": "^7.1.2",
     "babel-loader": "^8.0.4",
     "cache-loader": "^1.2.2",
diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json
index 654e11b0..6d308fcd 100644
--- a/packages/@vuepress/markdown-loader/package.json
+++ b/packages/@vuepress/markdown-loader/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/markdown-loader",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "markdown-loader for vuepress",
   "main": "index.js",
   "publishConfig": {
@@ -18,7 +18,7 @@
     "generator"
   ],
   "dependencies": {
-    "@vuepress/markdown": "^1.0.0-alpha.46",
+    "@vuepress/markdown": "^1.0.0-alpha.47",
     "loader-utils": "^1.1.0",
     "lru-cache": "^5.1.1"
   },
diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json
index a2c3959a..3dfe2c50 100644
--- a/packages/@vuepress/markdown/package.json
+++ b/packages/@vuepress/markdown/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/markdown",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "markdown for vuepress",
   "main": "index.js",
   "publishConfig": {
@@ -19,7 +19,7 @@
     "markdown"
   ],
   "dependencies": {
-    "@vuepress/shared-utils": "^1.0.0-alpha.46",
+    "@vuepress/shared-utils": "^1.0.0-alpha.47",
     "lru-cache": "^5.1.1",
     "markdown-it": "^8.4.1",
     "markdown-it-anchor": "^5.0.2",
@@ -28,7 +28,7 @@
     "prismjs": "^1.13.0"
   },
   "devDependencies": {
-    "@vuepress/test-utils": "^1.0.0-alpha.46"
+    "@vuepress/test-utils": "^1.0.0-alpha.47"
   },
   "author": "Evan You",
   "maintainers": [
diff --git a/packages/@vuepress/plugin-active-header-links/package.json b/packages/@vuepress/plugin-active-header-links/package.json
index 106a7e77..ea417774 100644
--- a/packages/@vuepress/plugin-active-header-links/package.json
+++ b/packages/@vuepress/plugin-active-header-links/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-active-header-links",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "active-header-links plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/plugin-back-to-top/package.json b/packages/@vuepress/plugin-back-to-top/package.json
index 9fb649a5..f0613eee 100644
--- a/packages/@vuepress/plugin-back-to-top/package.json
+++ b/packages/@vuepress/plugin-back-to-top/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-back-to-top",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "back-to-top plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/plugin-blog/package.json b/packages/@vuepress/plugin-blog/package.json
index 8b0e5e43..bd3029dc 100644
--- a/packages/@vuepress/plugin-blog/package.json
+++ b/packages/@vuepress/plugin-blog/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-blog",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "blog plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/plugin-google-analytics/package.json b/packages/@vuepress/plugin-google-analytics/package.json
index 717808f6..4de2df27 100644
--- a/packages/@vuepress/plugin-google-analytics/package.json
+++ b/packages/@vuepress/plugin-google-analytics/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-google-analytics",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "google-analytics plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/plugin-last-updated/package.json b/packages/@vuepress/plugin-last-updated/package.json
index 3aff6f67..97985644 100644
--- a/packages/@vuepress/plugin-last-updated/package.json
+++ b/packages/@vuepress/plugin-last-updated/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-last-updated",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "last-updated plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/plugin-medium-zoom/package.json b/packages/@vuepress/plugin-medium-zoom/package.json
index 8c2f2bbf..70beef65 100644
--- a/packages/@vuepress/plugin-medium-zoom/package.json
+++ b/packages/@vuepress/plugin-medium-zoom/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-medium-zoom",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "medium-zoom plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/plugin-nprogress/package.json b/packages/@vuepress/plugin-nprogress/package.json
index cf633437..735ca48c 100644
--- a/packages/@vuepress/plugin-nprogress/package.json
+++ b/packages/@vuepress/plugin-nprogress/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-nprogress",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "nprogress plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/plugin-pagination/package.json b/packages/@vuepress/plugin-pagination/package.json
index 24bc57c0..e55ffc8a 100644
--- a/packages/@vuepress/plugin-pagination/package.json
+++ b/packages/@vuepress/plugin-pagination/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-pagination",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "pagination plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json
index 9408bfe1..489a42a0 100644
--- a/packages/@vuepress/plugin-pwa/package.json
+++ b/packages/@vuepress/plugin-pwa/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-pwa",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "pwa plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
@@ -18,7 +18,7 @@
     "generator"
   ],
   "dependencies": {
-    "@vuepress/shared-utils": "^1.0.0-alpha.46",
+    "@vuepress/shared-utils": "^1.0.0-alpha.47",
     "register-service-worker": "^1.5.2",
     "workbox-build": "^3.1.0"
   },
diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json
index bcd8c22e..afbbb421 100644
--- a/packages/@vuepress/plugin-register-components/package.json
+++ b/packages/@vuepress/plugin-register-components/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-register-components",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "register-global-components plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
@@ -24,6 +24,6 @@
   },
   "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-register-components#readme",
   "dependencies": {
-    "@vuepress/shared-utils": "^1.0.0-alpha.46"
+    "@vuepress/shared-utils": "^1.0.0-alpha.47"
   }
 }
diff --git a/packages/@vuepress/plugin-search/package.json b/packages/@vuepress/plugin-search/package.json
index 43cecd03..19aeedb6 100644
--- a/packages/@vuepress/plugin-search/package.json
+++ b/packages/@vuepress/plugin-search/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/plugin-search",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "search plugin for vuepress",
   "main": "index.js",
   "publishConfig": {
diff --git a/packages/@vuepress/shared-utils/package.json b/packages/@vuepress/shared-utils/package.json
index 2862b5af..cc801a63 100644
--- a/packages/@vuepress/shared-utils/package.json
+++ b/packages/@vuepress/shared-utils/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/shared-utils",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "shared-utils for vuepress",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json
index 13c40e68..d66fb686 100644
--- a/packages/@vuepress/test-utils/package.json
+++ b/packages/@vuepress/test-utils/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/test-utils",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "test-utils for vuepress",
   "main": "index.js",
   "publishConfig": {
@@ -22,8 +22,8 @@
     "@babel/preset-env": "^7.0.0",
     "@types/jest": "^24.0.9",
     "@vue/test-utils": "^1.0.0-beta.29",
-    "@vuepress/core": "^1.0.0-alpha.46",
-    "@vuepress/shared-utils": "^1.0.0-alpha.46",
+    "@vuepress/core": "^1.0.0-alpha.47",
+    "@vuepress/shared-utils": "^1.0.0-alpha.47",
     "babel-jest": "^24.1.0",
     "execa": "^0.10.0",
     "jest": "^24.1.0",
diff --git a/packages/@vuepress/theme-blog/package.json b/packages/@vuepress/theme-blog/package.json
index 03834424..7a192b0e 100644
--- a/packages/@vuepress/theme-blog/package.json
+++ b/packages/@vuepress/theme-blog/package.json
@@ -1,7 +1,7 @@
 {
   "private": true,
   "name": "@vuepress/theme-blog",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "theme-blog for vuepress",
   "main": "index.js",
   "publishConfig": {
@@ -19,10 +19,10 @@
     "generator"
   ],
   "dependencies": {
-    "@vuepress/plugin-blog": "^1.0.0-alpha.46",
-    "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.46",
-    "@vuepress/plugin-pagination": "^1.0.0-alpha.46",
-    "@vuepress/plugin-search": "^1.0.0-alpha.46"
+    "@vuepress/plugin-blog": "^1.0.0-alpha.47",
+    "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.47",
+    "@vuepress/plugin-pagination": "^1.0.0-alpha.47",
+    "@vuepress/plugin-search": "^1.0.0-alpha.47"
   },
   "author": "ULIVZ ",
   "license": "MIT",
diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json
index 68fd8848..192634b9 100644
--- a/packages/@vuepress/theme-default/package.json
+++ b/packages/@vuepress/theme-default/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/theme-default",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "Default theme for VuePress",
   "main": "index.js",
   "publishConfig": {
@@ -30,9 +30,9 @@
   },
   "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme",
   "dependencies": {
-    "@vuepress/plugin-active-header-links": "^1.0.0-alpha.46",
-    "@vuepress/plugin-nprogress": "^1.0.0-alpha.46",
-    "@vuepress/plugin-search": "^1.0.0-alpha.46",
+    "@vuepress/plugin-active-header-links": "^1.0.0-alpha.47",
+    "@vuepress/plugin-nprogress": "^1.0.0-alpha.47",
+    "@vuepress/plugin-search": "^1.0.0-alpha.47",
     "docsearch.js": "^2.5.2",
     "stylus": "^0.54.5",
     "stylus-loader": "^3.0.2",
diff --git a/packages/@vuepress/theme-vue/package.json b/packages/@vuepress/theme-vue/package.json
index 249cc994..92825eb4 100644
--- a/packages/@vuepress/theme-vue/package.json
+++ b/packages/@vuepress/theme-vue/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@vuepress/theme-vue",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "VuePress theme for official Vue projects",
   "main": "index.js",
   "publishConfig": {
@@ -30,6 +30,6 @@
   },
   "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-vue#readme",
   "dependencies": {
-    "@vuepress/theme-default": "^1.0.0-alpha.46"
+    "@vuepress/theme-default": "^1.0.0-alpha.47"
   }
 }
diff --git a/packages/blog/package.json b/packages/blog/package.json
index 34540a2d..f53f4085 100644
--- a/packages/blog/package.json
+++ b/packages/blog/package.json
@@ -2,13 +2,13 @@
   "private": true,
   "name": "blog",
   "description": "blog of VuePress",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "scripts": {
     "dev": "vuepress dev source --temp .temp",
     "build": "vuepress build source --temp .temp"
   },
   "dependencies": {
-    "@vuepress/theme-blog": "^1.0.0-alpha.46",
-    "vuepress": "^1.0.0-alpha.46"
+    "@vuepress/theme-blog": "^1.0.0-alpha.47",
+    "vuepress": "^1.0.0-alpha.47"
   }
 }
diff --git a/packages/docs/package.json b/packages/docs/package.json
index 21389459..aed8f4c1 100644
--- a/packages/docs/package.json
+++ b/packages/docs/package.json
@@ -1,6 +1,6 @@
 {
   "private": true,
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "name": "docs",
   "description": "docs of VuePress",
   "scripts": {
@@ -25,13 +25,13 @@
   },
   "homepage": "https://github.com/vuejs/vuepress#readme",
   "devDependencies": {
-    "@vuepress/plugin-back-to-top": "^1.0.0-alpha.46",
-    "@vuepress/plugin-google-analytics": "^1.0.0-alpha.46",
-    "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.46",
-    "@vuepress/plugin-pwa": "^1.0.0-alpha.46",
-    "@vuepress/theme-vue": "^1.0.0-alpha.46",
+    "@vuepress/plugin-back-to-top": "^1.0.0-alpha.47",
+    "@vuepress/plugin-google-analytics": "^1.0.0-alpha.47",
+    "@vuepress/plugin-medium-zoom": "^1.0.0-alpha.47",
+    "@vuepress/plugin-pwa": "^1.0.0-alpha.47",
+    "@vuepress/theme-vue": "^1.0.0-alpha.47",
     "vue-toasted": "^1.1.25",
-    "vuepress": "^1.0.0-alpha.46",
+    "vuepress": "^1.0.0-alpha.47",
     "vuepress-plugin-flowchart": "^1.4.2"
   }
 }
diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json
index f510b2fb..60c0bd11 100644
--- a/packages/vuepress/package.json
+++ b/packages/vuepress/package.json
@@ -1,6 +1,6 @@
 {
   "name": "vuepress",
-  "version": "1.0.0-alpha.46",
+  "version": "1.0.0-alpha.47",
   "description": "Minimalistic doc generator with Vue component based layout system",
   "main": "index.js",
   "repository": {
@@ -29,8 +29,8 @@
   },
   "homepage": "https://github.com/vuejs/vuepress#readme",
   "dependencies": {
-    "@vuepress/core": "^1.0.0-alpha.46",
-    "@vuepress/theme-default": "^1.0.0-alpha.46",
+    "@vuepress/core": "^1.0.0-alpha.47",
+    "@vuepress/theme-default": "^1.0.0-alpha.47",
     "cac": "^6.3.9"
   },
   "engines": {

From edc3733669c33c5a527430110aa0368d9d4f8a50 Mon Sep 17 00:00:00 2001
From: ULIVZ <472590061@qq.com>
Date: Sun, 7 Apr 2019 01:49:07 +0800
Subject: [PATCH 099/260] chore: 1.0.0-alpha.47 changelog

---
 CHANGELOG.md | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6c4193fc..891bf80a 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,31 @@
+
+# [](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.47...v) (2019-04-06)
+
+
+
+
+# [1.0.0-alpha.47](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.46...v1.0.0-alpha.47) (2019-04-06)
+
+
+### Bug Fixes
+
+* **$core:** `index.styl` is not injected at the end of the style bundle (close: [#1523](https://github.com/vuejs/vuepress/issues/1523)) ([dabf506](https://github.com/vuejs/vuepress/commit/dabf506))
+* **$core:** `routerBase` will always get '/' (close: [#1503](https://github.com/vuejs/vuepress/issues/1503)) ([9fba549](https://github.com/vuejs/vuepress/commit/9fba549))
+* **$markdown:** Snippets should allow spaces in file path (closes [#1505](https://github.com/vuejs/vuepress/issues/1505)) ([#1517](https://github.com/vuejs/vuepress/issues/1517)) ([5c307c9](https://github.com/vuejs/vuepress/commit/5c307c9))
+
+
+### Features
+
+* **$core:** assert return type for functional plugin ([#1516](https://github.com/vuejs/vuepress/issues/1516)) ([74887c5](https://github.com/vuejs/vuepress/commit/74887c5))
+* **$core:** emit warning if the source directory doesn't exist (close: [#1521](https://github.com/vuejs/vuepress/issues/1521)) ([6da9a5f](https://github.com/vuejs/vuepress/commit/6da9a5f))
+* **$plugin-pwa:** allow using local workbox files (close: [#539](https://github.com/vuejs/vuepress/issues/539)) ([4640614](https://github.com/vuejs/vuepress/commit/4640614))
+
+
+
+
+# [1.0.0-alpha.46](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.45...v1.0.0-alpha.46) (2019-04-01)
+
+
 ### Bug Fixes
 
 * **$core:** regression of introducing dynamic `routerBase` (close: [#1498](https://github.com/vuejs/vuepress/issues/1498)) ([5e12b49](https://github.com/vuejs/vuepress/commit/5e12b49))

From 23b0ce3efc69df06d3d2ac70c987348b3c06078a Mon Sep 17 00:00:00 2001
From: ULIVZ <472590061@qq.com>
Date: Sun, 7 Apr 2019 01:50:23 +0800
Subject: [PATCH 100/260] chore: changelog

---
 CHANGELOG.md | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 891bf80a..6468b70a 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,3 @@
-
-# [](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.47...v) (2019-04-06)
-
-
-
 
 # [1.0.0-alpha.47](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.46...v1.0.0-alpha.47) (2019-04-06)
 

From fb324d54c78e9177d1747b9e5fa39302cd0bc8e9 Mon Sep 17 00:00:00 2001
From: ULIVZ <472590061@qq.com>
Date: Sun, 14 Apr 2019 00:06:27 +0800
Subject: [PATCH 101/260] fix($core): webpack externals (ref: #451)

---
 packages/@vuepress/core/lib/node/webpack/createServerConfig.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/@vuepress/core/lib/node/webpack/createServerConfig.js b/packages/@vuepress/core/lib/node/webpack/createServerConfig.js
index 7a43691d..c8b3db63 100644
--- a/packages/@vuepress/core/lib/node/webpack/createServerConfig.js
+++ b/packages/@vuepress/core/lib/node/webpack/createServerConfig.js
@@ -16,7 +16,7 @@ module.exports = function createServerConfig (ctx) {
 
   config
     .target('node')
-    .externals([/^vue|vue-router$/])
+    .externals([/^(vue|vue-router)$/])
     .devtool('source-map')
 
   // no need to minimize server build

From 9efc6785b2744541866c02708e7c72c1c33475f6 Mon Sep 17 00:00:00 2001
From: Rahul Kadyan 
Date: Sat, 13 Apr 2019 21:44:42 +0530
Subject: [PATCH 102/260] fix($core): use directory name to compute slug if
 filename is readme or index (close: #1443) (#1535)

---
 packages/@vuepress/core/lib/node/Page.js | 33 +++++++++++++++++++++---
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/packages/@vuepress/core/lib/node/Page.js b/packages/@vuepress/core/lib/node/Page.js
index 5172dbd7..27df3b44 100644
--- a/packages/@vuepress/core/lib/node/Page.js
+++ b/packages/@vuepress/core/lib/node/Page.js
@@ -165,7 +165,19 @@ module.exports = class Page {
    */
 
   get slug () {
-    return slugify(this.strippedFilename)
+    const strippedFilename = this.strippedFilename
+
+    if (/^(index|readme)$/i.test(strippedFilename)) {
+      const strippedFilename = this.stripFilename(
+        path.basename(path.dirname(this._filePath || this.regularPath))
+      )
+
+      if (strippedFilename) {
+        return slugify(strippedFilename)
+      }
+    }
+
+    return slugify(strippedFilename)
   }
 
   /**
@@ -179,8 +191,7 @@ module.exports = class Page {
    */
 
   get strippedFilename () {
-    const match = this.filename.match(DATE_RE)
-    return match ? match[3] : this.filename
+    return this.stripFilename(this.filename)
   }
 
   /**
@@ -194,6 +205,22 @@ module.exports = class Page {
     return inferDate(this.frontmatter, this.filename)
   }
 
+  /**
+   * stripped file name.
+   *
+   * If filename was yyyy-MM-dd-[title], the date prefix will be stripped.
+   * If filename was yyyy-MM-[title], the date prefix will be stripped.
+   *
+   * @param {string} fileName
+   * @returns {string}
+   * @private
+   */
+  stripFilename(fileName) {
+    const match = fileName.match(DATE_RE)
+    
+    return match ? match[3] : fileName
+  }
+
   /**
    * Convert page's metadata to JSON, note that all fields beginning
    * with an underscore will not be serialized.

From 441f0232c86ecbf526689153219a560ad4ccbe07 Mon Sep 17 00:00:00 2001
From: Shigma <33423008+Shigma@users.noreply.github.com>
Date: Mon, 15 Apr 2019 01:22:51 +0800
Subject: [PATCH 103/260] feat($core): prevent duplicate route (#1525)

---
 packages/@vuepress/core/lib/node/App.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/packages/@vuepress/core/lib/node/App.js b/packages/@vuepress/core/lib/node/App.js
index e1897bae..629763ba 100755
--- a/packages/@vuepress/core/lib/node/App.js
+++ b/packages/@vuepress/core/lib/node/App.js
@@ -348,7 +348,14 @@ module.exports = class App {
       computed: new this.ClientComputedMixinConstructor(),
       enhancers: this.pluginAPI.getOption('extendPageData').items
     })
-    this.pages.push(page)
+    const index = this.pages.findIndex(({ path }) => path === page.path)
+    if (index >= 0) {
+      // Override a page if corresponding path already exists
+      logger.warn(`Override existing page ${chalk.yellow(page.path)}.`)
+      this.pages.splice(index, 1, page)
+    } else {
+      this.pages.push(page)
+    }
   }
 
   /**

From f47b5fa0d579f01d28dbe458edc05350fbfc8fbc Mon Sep 17 00:00:00 2001
From: Charles Villard 
Date: Sun, 14 Apr 2019 13:44:52 -0400
Subject: [PATCH 104/260] docs: add tip to explain CSS pre-processor
 installation (#1530)

---
 packages/docs/docs/config/README.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/packages/docs/docs/config/README.md b/packages/docs/docs/config/README.md
index 88600862..37785acc 100644
--- a/packages/docs/docs/config/README.md
+++ b/packages/docs/docs/config/README.md
@@ -285,6 +285,10 @@ This option is also included in [Plugin API](../plugin/option-api.md#extendmarkd
 
 ## Build Pipeline
 
+:::tip Configuring CSS Pre-processors
+VuePress comes with built-in webpack config for the CSS pre-processors listed below. For more information on installation these or pre-processors without built-in support, see [Using Pre-Processors](../guide/using-vue.md#using-pre-processors) for more information.
+:::
+
 ### postcss
 
 - Type: `Object`

From 005dd5b00253deb54063fec9497a6b9b5cd23bce Mon Sep 17 00:00:00 2001
From: RogerIF 
Date: Mon, 15 Apr 2019 01:45:49 +0800
Subject: [PATCH 105/260] chore: fix typo (#1528)

---
 .../markdown/__tests__/__snapshots__/snippet.spec.js.snap       | 2 +-
 packages/@vuepress/markdown/__tests__/snippet.spec.js           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap b/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap
index d62e8722..65148982 100644
--- a/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap
+++ b/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap
@@ -1,6 +1,6 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`snippet import snipets when the file has a space in the file path 1`] = `
+exports[`snippet import snippets when the file has a space in the file path 1`] = `
 
 
 
diff --git a/packages/@vuepress/markdown/__tests__/snippet.spec.js b/packages/@vuepress/markdown/__tests__/snippet.spec.js index 4a2c65f8..e8e25ea7 100644 --- a/packages/@vuepress/markdown/__tests__/snippet.spec.js +++ b/packages/@vuepress/markdown/__tests__/snippet.spec.js @@ -25,7 +25,7 @@ describe('snippet', () => { expect(output).toMatchSnapshot() }) - test('import snipets when the file has a space in the file path', () => { + test('import snippets when the file has a space in the file path', () => { const input = getFragment(__dirname, 'code-snippet-with-space-in-path.md') const output = mdH.render(input) expect(output).toMatchSnapshot() From d6040f645812cc252734ced61f047f825710c77b Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 15 Apr 2019 02:03:46 +0800 Subject: [PATCH 106/260] chore: bump jest, babel-jest, jest-serializer-vue, ts-jest --- packages/@vuepress/test-utils/package.json | 8 +- yarn.lock | 723 ++++++++++++++------- 2 files changed, 475 insertions(+), 256 deletions(-) diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json index d66fb686..81a769c2 100644 --- a/packages/@vuepress/test-utils/package.json +++ b/packages/@vuepress/test-utils/package.json @@ -24,11 +24,11 @@ "@vue/test-utils": "^1.0.0-beta.29", "@vuepress/core": "^1.0.0-alpha.47", "@vuepress/shared-utils": "^1.0.0-alpha.47", - "babel-jest": "^24.1.0", + "babel-jest": "^24.7.1", "execa": "^0.10.0", - "jest": "^24.1.0", - "jest-serializer-vue": "^1.0.0", - "ts-jest": "^23.10.5", + "jest": "^24.7.1", + "jest-serializer-vue": "^2.0.2", + "ts-jest": "^24.0.2", "vue": "^2.5.16", "vue-jest": "^4.0.0-beta.1", "vue-template-compiler": "^2.5.16" diff --git a/yarn.lock b/yarn.lock index 5d7d6520..b29d8045 100644 --- a/yarn.lock +++ b/yarn.lock @@ -248,6 +248,10 @@ version "7.3.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.4.tgz#a43357e4bbf4b92a437fb9e465c192848287f27c" +"@babel/parser@^7.1.0": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b" + "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" @@ -668,6 +672,147 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" +"@cnakazawa/watch@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@jest/console@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" + dependencies: + "@jest/source-map" "^24.3.0" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.7.1.tgz#6707f50db238d0c5988860680e2e414df0032024" + dependencies: + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-changed-files "^24.7.0" + jest-config "^24.7.1" + jest-haste-map "^24.7.1" + jest-message-util "^24.7.1" + jest-regex-util "^24.3.0" + jest-resolve-dependencies "^24.7.1" + jest-runner "^24.7.1" + jest-runtime "^24.7.1" + jest-snapshot "^24.7.1" + jest-util "^24.7.1" + jest-validate "^24.7.0" + jest-watcher "^24.7.1" + micromatch "^3.1.10" + p-each-series "^1.0.0" + pirates "^4.0.1" + realpath-native "^1.1.0" + rimraf "^2.5.4" + strip-ansi "^5.0.0" + +"@jest/environment@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.7.1.tgz#9b9196bc737561f67ac07817d4c5ece772e33135" + dependencies: + "@jest/fake-timers" "^24.7.1" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" + jest-mock "^24.7.0" + +"@jest/fake-timers@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.7.1.tgz#56e5d09bdec09ee81050eaff2794b26c71d19db2" + dependencies: + "@jest/types" "^24.7.0" + jest-message-util "^24.7.1" + jest-mock "^24.7.0" + +"@jest/reporters@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.7.1.tgz#38ac0b096cd691bbbe3051ddc25988d42e37773a" + dependencies: + "@jest/environment" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + istanbul-api "^2.1.1" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-source-maps "^3.0.1" + jest-haste-map "^24.7.1" + jest-resolve "^24.7.1" + jest-runtime "^24.7.1" + jest-util "^24.7.1" + jest-worker "^24.6.0" + node-notifier "^5.2.1" + slash "^2.0.0" + source-map "^0.6.0" + string-length "^2.0.0" + +"@jest/source-map@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28" + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.7.1.tgz#19eacdb29a114300aed24db651e5d975f08b6bbe" + dependencies: + "@jest/console" "^24.7.1" + "@jest/types" "^24.7.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.7.1.tgz#9c18e428e1ad945fa74f6233a9d35745ca0e63e0" + dependencies: + "@jest/test-result" "^24.7.1" + jest-haste-map "^24.7.1" + jest-runner "^24.7.1" + jest-runtime "^24.7.1" + +"@jest/transform@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.7.1.tgz#872318f125bcfab2de11f53b465ab1aa780789c2" + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.7.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.7.1" + jest-regex-util "^24.3.0" + jest-util "^24.7.1" + micromatch "^3.1.10" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + +"@jest/types@^24.7.0": + version "24.7.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.7.0.tgz#c4ec8d1828cdf23234d9b4ee31f5482a3f04f48b" + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/yargs" "^12.0.9" + "@lerna/add@3.13.1": version "3.13.1" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.13.1.tgz#2cd7838857edb3b43ed73e3c21f69a20beb9b702" @@ -1288,6 +1433,35 @@ dependencies: any-observable "^0.3.0" +"@types/babel__core@^7.1.0": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.1.tgz#ce9a9e5d92b7031421e1d0d74ae59f572ba48be6" + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2" + dependencies: + "@babel/types" "^7.3.0" + "@types/escape-html@^0.0.20": version "0.0.20" resolved "https://registry.yarnpkg.com/@types/escape-html/-/escape-html-0.0.20.tgz#cae698714dd61ebee5ab3f2aeb9a34ba1011735a" @@ -1321,6 +1495,10 @@ version "1.0.0" resolved "https://registry.yarnpkg.com/@types/hash-sum/-/hash-sum-1.0.0.tgz#838f4e8627887d42b162d05f3d96ca636c2bc504" +"@types/istanbul-lib-coverage@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz#1eb8c033e98cf4e1a4cedcaf8bcafe8cb7591e85" + "@types/jest-diff@*": version "20.0.1" resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-20.0.1.tgz#35cc15b9c4f30a18ef21852e255fdb02f6d59b89" @@ -1355,6 +1533,14 @@ version "5.5.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.5.0.tgz#146c2a29ee7d3bae4bf2fcb274636e264c813c45" +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + +"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": + version "12.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" + "@vue/babel-helper-vue-jsx-merge-props@^1.0.0-beta.2": version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0-beta.2.tgz#f3e20d77b89ddb7a4b9b7a75372f05cd3ac22d92" @@ -1967,12 +2153,15 @@ babel-extract-comments@^1.0.0: dependencies: babylon "^6.18.0" -babel-jest@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.1.0.tgz#441e23ef75ded3bd547e300ac3194cef87b55190" +babel-jest@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.7.1.tgz#73902c9ff15a7dfbdc9994b0b17fcefd96042178" dependencies: + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" + "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.1.0" + babel-preset-jest "^24.6.0" chalk "^2.4.2" slash "^2.0.0" @@ -1999,9 +2188,11 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.0.0" test-exclude "^5.0.0" -babel-plugin-jest-hoist@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.1.0.tgz#dfecc491fb15e2668abbd690a697a8fd1411a7f8" +babel-plugin-jest-hoist@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019" + dependencies: + "@types/babel__traverse" "^7.0.6" babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" @@ -2014,12 +2205,12 @@ babel-plugin-transform-object-rest-spread@^6.26.0: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.26.0" -babel-preset-jest@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.1.0.tgz#83bc564fdcd4903641af65ec63f2f5de6b04132e" +babel-preset-jest@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.1.0" + babel-plugin-jest-hoist "^24.6.0" babel-runtime@^6.26.0: version "6.26.0" @@ -2467,11 +2658,11 @@ caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.300009 version "1.0.30000939" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000939.tgz#b9ab7ac9e861bf78840b80c5dfbc471a5cd7e679" -capture-exit@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" dependencies: - rsvp "^3.3.3" + rsvp "^4.8.4" caseless@~0.12.0: version "0.12.0" @@ -3644,9 +3835,9 @@ diacritics@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/diacritics/-/diacritics-1.3.0.tgz#3efa87323ebb863e6696cebb0082d48ff3d6f7a1" -diff-sequences@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.0.0.tgz#cdf8e27ed20d8b8d3caccb4e0c0d8fe31a173013" +diff-sequences@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" diffie-hellman@^5.0.0: version "5.0.3" @@ -4090,11 +4281,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-sh@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - dependencies: - merge "^1.2.0" +exec-sh@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" execa@^0.10.0: version "0.10.0" @@ -4160,15 +4349,16 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.1.0.tgz#88e73301c4c785cde5f16da130ab407bdaf8c0f2" +expect@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.7.1.tgz#d91defbab4e627470a152feaf35b3c31aa1c7c14" dependencies: + "@jest/types" "^24.7.0" ansi-styles "^3.2.0" - jest-get-type "^24.0.0" - jest-matcher-utils "^24.0.0" - jest-message-util "^24.0.0" - jest-regex-util "^24.0.0" + jest-get-type "^24.3.0" + jest-matcher-utils "^24.7.0" + jest-message-util "^24.7.1" + jest-regex-util "^24.3.0" express@^4.16.2: version "4.16.4" @@ -4528,7 +4718,7 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.2.3, fsevents@^1.2.7: +fsevents@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" dependencies: @@ -5526,7 +5716,7 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-api@^2.0.8: +istanbul-api@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0" dependencies: @@ -5594,281 +5784,299 @@ javascript-stringify@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" -jest-changed-files@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.0.0.tgz#c02c09a8cc9ca93f513166bc773741bd39898ff7" +jest-changed-files@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.7.0.tgz#39d723a11b16ed7b373ac83adc76a69464b0c4fa" dependencies: + "@jest/types" "^24.7.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.1.0.tgz#f7cc98995f36e7210cce3cbb12974cbf60940843" +jest-cli@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.7.1.tgz#6093a539073b6f4953145abeeb9709cd621044f1" dependencies: - ansi-escapes "^3.0.0" + "@jest/core" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" chalk "^2.0.1" exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.1.15" import-local "^2.0.0" is-ci "^2.0.0" - istanbul-api "^2.0.8" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-source-maps "^3.0.1" - jest-changed-files "^24.0.0" - jest-config "^24.1.0" - jest-environment-jsdom "^24.0.0" - jest-get-type "^24.0.0" - jest-haste-map "^24.0.0" - jest-message-util "^24.0.0" - jest-regex-util "^24.0.0" - jest-resolve-dependencies "^24.1.0" - jest-runner "^24.1.0" - jest-runtime "^24.1.0" - jest-snapshot "^24.1.0" - jest-util "^24.0.0" - jest-validate "^24.0.0" - jest-watcher "^24.0.0" - jest-worker "^24.0.0" - micromatch "^3.1.10" - node-notifier "^5.2.1" - p-each-series "^1.0.0" - pirates "^4.0.0" + jest-config "^24.7.1" + jest-util "^24.7.1" + jest-validate "^24.7.0" prompts "^2.0.1" - realpath-native "^1.0.0" - rimraf "^2.5.4" - slash "^2.0.0" - string-length "^2.0.0" - strip-ansi "^5.0.0" - which "^1.2.12" + realpath-native "^1.1.0" yargs "^12.0.2" -jest-config@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.1.0.tgz#6ea6881cfdd299bc86cc144ee36d937c97c3850c" +jest-config@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.7.1.tgz#6c1dd4db82a89710a3cf66bdba97827c9a1cf052" dependencies: "@babel/core" "^7.1.0" - babel-jest "^24.1.0" + "@jest/test-sequencer" "^24.7.1" + "@jest/types" "^24.7.0" + babel-jest "^24.7.1" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.0.0" - jest-environment-node "^24.0.0" - jest-get-type "^24.0.0" - jest-jasmine2 "^24.1.0" - jest-regex-util "^24.0.0" - jest-resolve "^24.1.0" - jest-util "^24.0.0" - jest-validate "^24.0.0" + jest-environment-jsdom "^24.7.1" + jest-environment-node "^24.7.1" + jest-get-type "^24.3.0" + jest-jasmine2 "^24.7.1" + jest-regex-util "^24.3.0" + jest-resolve "^24.7.1" + jest-util "^24.7.1" + jest-validate "^24.7.0" micromatch "^3.1.10" - pretty-format "^24.0.0" - realpath-native "^1.0.2" + pretty-format "^24.7.0" + realpath-native "^1.1.0" -jest-diff@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.0.0.tgz#a3e5f573dbac482f7d9513ac9cfa21644d3d6b34" +jest-diff@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.7.0.tgz#5d862899be46249754806f66e5729c07fcb3580f" dependencies: chalk "^2.0.1" - diff-sequences "^24.0.0" - jest-get-type "^24.0.0" - pretty-format "^24.0.0" + diff-sequences "^24.3.0" + jest-get-type "^24.3.0" + pretty-format "^24.7.0" -jest-docblock@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.0.0.tgz#54d77a188743e37f62181a91a01eb9222289f94e" +jest-docblock@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" dependencies: detect-newline "^2.1.0" -jest-each@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.0.0.tgz#10987a06b21c7ffbfb7706c89d24c52ed864be55" +jest-each@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.7.1.tgz#fcc7dda4147c28430ad9fb6dc7211cd17ab54e74" dependencies: + "@jest/types" "^24.7.0" chalk "^2.0.1" - jest-get-type "^24.0.0" - jest-util "^24.0.0" - pretty-format "^24.0.0" + jest-get-type "^24.3.0" + jest-util "^24.7.1" + pretty-format "^24.7.0" -jest-environment-jsdom@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.0.0.tgz#5affa0654d6e44cd798003daa1a8701dbd6e4d11" +jest-environment-jsdom@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.7.1.tgz#a40e004b4458ebeb8a98082df135fd501b9fbbd6" dependencies: - jest-mock "^24.0.0" - jest-util "^24.0.0" + "@jest/environment" "^24.7.1" + "@jest/fake-timers" "^24.7.1" + "@jest/types" "^24.7.0" + jest-mock "^24.7.0" + jest-util "^24.7.1" jsdom "^11.5.1" -jest-environment-node@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.0.0.tgz#330948980656ed8773ce2e04eb597ed91e3c7190" +jest-environment-node@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.7.1.tgz#fa2c047a31522a48038d26ee4f7c8fd9c1ecfe12" dependencies: - jest-mock "^24.0.0" - jest-util "^24.0.0" + "@jest/environment" "^24.7.1" + "@jest/fake-timers" "^24.7.1" + "@jest/types" "^24.7.0" + jest-mock "^24.7.0" + jest-util "^24.7.1" jest-get-type@^22.1.0: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" -jest-get-type@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.0.0.tgz#36e72930b78e33da59a4f63d44d332188278940b" +jest-get-type@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" -jest-haste-map@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.0.0.tgz#e9ef51b2c9257384b4d6beb83bd48c65b37b5e6e" +jest-haste-map@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.7.1.tgz#772e215cd84080d4bbcb759cfb668ad649a21471" dependencies: + "@jest/types" "^24.7.0" + anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" - jest-serializer "^24.0.0" - jest-util "^24.0.0" - jest-worker "^24.0.0" + jest-serializer "^24.4.0" + jest-util "^24.7.1" + jest-worker "^24.6.0" micromatch "^3.1.10" - sane "^3.0.0" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" -jest-jasmine2@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.1.0.tgz#8377324b967037c440f0a549ee0bbd9912055db6" +jest-jasmine2@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.7.1.tgz#01398686dabe46553716303993f3be62e5d9d818" dependencies: "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.1.0" + expect "^24.7.1" is-generator-fn "^2.0.0" - jest-each "^24.0.0" - jest-matcher-utils "^24.0.0" - jest-message-util "^24.0.0" - jest-snapshot "^24.1.0" - jest-util "^24.0.0" - pretty-format "^24.0.0" + jest-each "^24.7.1" + jest-matcher-utils "^24.7.0" + jest-message-util "^24.7.1" + jest-runtime "^24.7.1" + jest-snapshot "^24.7.1" + jest-util "^24.7.1" + pretty-format "^24.7.0" throat "^4.0.0" -jest-leak-detector@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.0.0.tgz#78280119fd05ee98317daee62cddb3aa537a31c6" +jest-leak-detector@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.7.0.tgz#323ff93ed69be12e898f5b040952f08a94288ff9" dependencies: - pretty-format "^24.0.0" + pretty-format "^24.7.0" -jest-matcher-utils@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.0.0.tgz#fc9c41cfc49b2c3ec14e576f53d519c37729d579" +jest-matcher-utils@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.7.0.tgz#bbee1ff37bc8b2e4afcaabc91617c1526af4bcd4" dependencies: chalk "^2.0.1" - jest-diff "^24.0.0" - jest-get-type "^24.0.0" - pretty-format "^24.0.0" + jest-diff "^24.7.0" + jest-get-type "^24.3.0" + pretty-format "^24.7.0" -jest-message-util@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.0.0.tgz#a07a141433b2c992dbaec68d4cbfe470ba289619" +jest-message-util@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.7.1.tgz#f1dc3a6c195647096a99d0f1dadbc447ae547018" dependencies: "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" + "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.0.0.tgz#9a4b53e01d66a0e780f7d857462d063e024c617d" - -jest-regex-util@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.0.0.tgz#4feee8ec4a358f5bee0a654e94eb26163cb9089a" - -jest-resolve-dependencies@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.1.0.tgz#78f738a2ec59ff4d00751d9da56f176e3f589f6c" +jest-mock@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.7.0.tgz#e49ce7262c12d7f5897b0d8af77f6db8e538023b" dependencies: - jest-regex-util "^24.0.0" - jest-snapshot "^24.1.0" + "@jest/types" "^24.7.0" -jest-resolve@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.1.0.tgz#42ff0169b0ea47bfdbd0c52a0067ca7d022c7688" +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + +jest-regex-util@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" + +jest-resolve-dependencies@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.7.1.tgz#cf93bbef26999488a96a2b2012f9fe7375aa378f" dependencies: + "@jest/types" "^24.7.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.7.1" + +jest-resolve@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.7.1.tgz#e4150198299298380a75a9fd55043fa3b9b17fde" + dependencies: + "@jest/types" "^24.7.0" browser-resolve "^1.11.3" chalk "^2.0.1" - realpath-native "^1.0.0" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" -jest-runner@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.1.0.tgz#3686a2bb89ce62800da23d7fdc3da2c32792943b" +jest-runner@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.7.1.tgz#41c8a02a06aa23ea82d8bffd69d7fa98d32f85bf" dependencies: + "@jest/console" "^24.7.1" + "@jest/environment" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.1.0" - jest-docblock "^24.0.0" - jest-haste-map "^24.0.0" - jest-jasmine2 "^24.1.0" - jest-leak-detector "^24.0.0" - jest-message-util "^24.0.0" - jest-runtime "^24.1.0" - jest-util "^24.0.0" - jest-worker "^24.0.0" + jest-config "^24.7.1" + jest-docblock "^24.3.0" + jest-haste-map "^24.7.1" + jest-jasmine2 "^24.7.1" + jest-leak-detector "^24.7.0" + jest-message-util "^24.7.1" + jest-resolve "^24.7.1" + jest-runtime "^24.7.1" + jest-util "^24.7.1" + jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.1.0.tgz#7c157a2e776609e8cf552f956a5a19ec9c985214" +jest-runtime@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.7.1.tgz#2ffd70b22dd03a5988c0ab9465c85cdf5d25c597" dependencies: - "@babel/core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.7.1" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" + "@types/yargs" "^12.0.2" chalk "^2.0.1" - convert-source-map "^1.4.0" exit "^0.1.2" - fast-json-stable-stringify "^2.0.0" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.1.0" - jest-haste-map "^24.0.0" - jest-message-util "^24.0.0" - jest-regex-util "^24.0.0" - jest-resolve "^24.1.0" - jest-snapshot "^24.1.0" - jest-util "^24.0.0" - jest-validate "^24.0.0" - micromatch "^3.1.10" - realpath-native "^1.0.0" + jest-config "^24.7.1" + jest-haste-map "^24.7.1" + jest-message-util "^24.7.1" + jest-mock "^24.7.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.7.1" + jest-snapshot "^24.7.1" + jest-util "^24.7.1" + jest-validate "^24.7.0" + realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" - write-file-atomic "2.4.1" yargs "^12.0.2" -jest-serializer-vue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/jest-serializer-vue/-/jest-serializer-vue-1.0.0.tgz#82514e9b3d94a17fe618df3ede84046090f94815" +jest-serializer-vue@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz#b238ef286357ec6b480421bd47145050987d59b3" dependencies: pretty "2.0.0" -jest-serializer@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.0.0.tgz#522c44a332cdd194d8c0531eb06a1ee5afb4256b" +jest-serializer@^24.4.0: + version "24.4.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" -jest-snapshot@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.1.0.tgz#85e22f810357aa5994ab61f236617dc2205f2f5b" +jest-snapshot@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.7.1.tgz#bd5a35f74aedff070975e9e9c90024f082099568" dependencies: "@babel/types" "^7.0.0" + "@jest/types" "^24.7.0" chalk "^2.0.1" - jest-diff "^24.0.0" - jest-matcher-utils "^24.0.0" - jest-message-util "^24.0.0" - jest-resolve "^24.1.0" + expect "^24.7.1" + jest-diff "^24.7.0" + jest-matcher-utils "^24.7.0" + jest-message-util "^24.7.1" + jest-resolve "^24.7.1" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.0.0" + pretty-format "^24.7.0" semver "^5.5.0" -jest-util@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.0.0.tgz#fd38fcafd6dedbd0af2944d7a227c0d91b68f7d6" +jest-util@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.7.1.tgz#b4043df57b32a23be27c75a2763d8faf242038ff" dependencies: + "@jest/console" "^24.7.1" + "@jest/fake-timers" "^24.7.1" + "@jest/source-map" "^24.3.0" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" is-ci "^2.0.0" - jest-message-util "^24.0.0" mkdirp "^0.5.1" slash "^2.0.0" source-map "^0.6.0" @@ -5882,38 +6090,42 @@ jest-validate@^23.5.0: leven "^2.1.0" pretty-format "^23.6.0" -jest-validate@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.0.0.tgz#aa8571a46983a6538328fef20406b4a496b6c020" +jest-validate@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.7.0.tgz#70007076f338528ee1b1c8a8258b1b0bb982508d" dependencies: + "@jest/types" "^24.7.0" camelcase "^5.0.0" chalk "^2.0.1" - jest-get-type "^24.0.0" + jest-get-type "^24.3.0" leven "^2.1.0" - pretty-format "^24.0.0" + pretty-format "^24.7.0" -jest-watcher@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.0.0.tgz#20d44244d10b0b7312410aefd256c1c1eef68890" +jest-watcher@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.7.1.tgz#e161363d7f3f4e1ef3d389b7b3a0aad247b673f5" dependencies: + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" + "@types/yargs" "^12.0.9" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.0.0" + jest-util "^24.7.1" string-length "^2.0.0" -jest-worker@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.0.0.tgz#3d3483b077bf04f412f47654a27bba7e947f8b6d" +jest-worker@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" dependencies: merge-stream "^1.0.1" supports-color "^6.1.0" -jest@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.1.0.tgz#b1e1135caefcf2397950ecf7f90e395fde866fd2" +jest@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.7.1.tgz#0d94331cf510c75893ee32f87d7321d5bf8f2501" dependencies: import-local "^2.0.0" - jest-cli "^24.1.0" + jest-cli "^24.7.1" joi@^11.1.1: version "11.4.0" @@ -6607,10 +6819,6 @@ merge2@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" -merge@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -7564,7 +7772,7 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pirates@^4.0.0: +pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" dependencies: @@ -8150,12 +8358,14 @@ pretty-format@^23.6.0: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -pretty-format@^24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.0.0.tgz#cb6599fd73ac088e37ed682f61291e4678f48591" +pretty-format@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.7.0.tgz#d23106bc2edcd776079c2daa5da02bcb12ed0c10" dependencies: + "@jest/types" "^24.7.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" + react-is "^16.8.4" pretty-time@^1.1.0: version "1.1.0" @@ -8369,6 +8579,10 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-is@^16.8.4: + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + read-cmd-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b" @@ -8476,7 +8690,7 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -realpath-native@^1.0.0, realpath-native@^1.0.2: +realpath-native@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" dependencies: @@ -8760,9 +8974,9 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rsvp@^3.3.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" +rsvp@^4.8.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz#b50e6b34583f3dd89329a2f23a8a2be072845911" run-async@^2.2.0: version "2.3.0" @@ -8806,21 +9020,19 @@ safe-regex@^1.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" -sane@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-3.1.0.tgz#995193b7dc1445ef1fe41ddfca2faf9f111854c6" +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" dependencies: + "@cnakazawa/watch" "^1.0.3" anymatch "^2.0.0" - capture-exit "^1.2.0" - exec-sh "^0.2.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" execa "^1.0.0" fb-watchman "^2.0.0" micromatch "^3.1.4" minimist "^1.1.1" walker "~1.0.5" - watch "~0.18.0" - optionalDependencies: - fsevents "^1.2.3" sax@0.5.x: version "0.5.8" @@ -9740,6 +9952,20 @@ ts-jest@^23.10.5: semver "^5.5" yargs-parser "10.x" +ts-jest@^24.0.2: + version "24.0.2" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.2.tgz#8dde6cece97c31c03e80e474c749753ffd27194d" + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + make-error "1.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "10.x" + tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" @@ -10102,19 +10328,12 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" -walker@~1.0.5: +walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" dependencies: makeerror "1.0.x" -watch@~0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" @@ -10303,7 +10522,7 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@1, which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@1, which@^1.2.10, which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" dependencies: From 5d2fc90016a2c4738b386216f1917db8f57b42d2 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 15 Apr 2019 02:27:02 +0800 Subject: [PATCH 107/260] test: remove mock hack of `require.reesolve` ref: https://github.com/facebook/jest/pull/7687 --- .../__tests__/moduleResolver.spec.ts | 22 +++++++++++-------- .../shared-utils/src/moduleLoader.ts | 14 +++--------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/packages/@vuepress/shared-utils/__tests__/moduleResolver.spec.ts b/packages/@vuepress/shared-utils/__tests__/moduleResolver.spec.ts index 5f3e9dad..a792c3e0 100644 --- a/packages/@vuepress/shared-utils/__tests__/moduleResolver.spec.ts +++ b/packages/@vuepress/shared-utils/__tests__/moduleResolver.spec.ts @@ -21,7 +21,7 @@ function loadMockModule (name: string) { } function resolveMockModule (name: string) { - return path.resolve(__dirname, `${MOCK_RELATIVE}/${name}`) + return require.resolve(path.resolve(__dirname, `${MOCK_RELATIVE}/${name}/`)) } const fixturesDir = path.resolve(__dirname, 'fixtures') @@ -110,12 +110,14 @@ describe('resolvePlugin', () => { expect(resolved.fromDep).toBe(false) }) - test('from dep', () => { + describe('from dep', () => { const asserts = getBaseAsserts('plugin') for (const { input, output } of asserts) { - const [, name] = output - const resolved = resolvePlugin(input) - expect(resolved.entry).toBe(loadMockModule(name)) + test(input, () => { + const [, name] = output + const resolved = resolvePlugin(input) + expect(resolved.entry).toBe(loadMockModule(name)) + }) } }) @@ -137,12 +139,14 @@ describe('resolvePlugin', () => { describe('resolveTheme', () => { const resolveTheme = themeResolver.resolve.bind(themeResolver) - test('from dep', () => { + describe('from dep', () => { const asserts = getBaseAsserts('theme') for (const { input, output } of asserts) { - const [, name] = output - const resolved = resolveTheme(input) - expect(resolved.entry).toBe(resolveMockModule(name)) + test(input, () => { + const [, name] = output + const resolved = resolveTheme(input) + expect(resolved.entry).toBe(resolveMockModule(name)) + }) } }) diff --git a/packages/@vuepress/shared-utils/src/moduleLoader.ts b/packages/@vuepress/shared-utils/src/moduleLoader.ts index b87d1875..911ac963 100644 --- a/packages/@vuepress/shared-utils/src/moduleLoader.ts +++ b/packages/@vuepress/shared-utils/src/moduleLoader.ts @@ -1,8 +1,6 @@ // Midified from https://github.com/vuejs/vue-cli/blob/dev/packages/@0vue/cli-shared-utils/lib/module.js import semver from 'semver' -import path from 'upath' -import fs from 'fs-extra' import env from './env' function resolveFallback (request: string, options: { paths: string[] }) { @@ -40,15 +38,9 @@ const resolve = semver.satisfies(process.version, '>=10.0.0') export function resolveModule (request: string, context: string): string { let resolvedPath - // TODO - // Temporary workaround for jest cannot resolve module path from '__mocks__' - // when using 'require.resolve'. - if (env.isTest && request !== '@vuepress/theme-default') { - resolvedPath = path.resolve(__dirname, '../../../../__mocks__', request) - if (!fs.existsSync(`${resolvedPath}.js`) && !fs.existsSync(`${resolvedPath}/index.js`)) { - throw new Error(`Cannot find module '${request}'`) - } - return resolvedPath + + if (env.isTest) { + return require.resolve(request) } // module.paths is for globally install packages. From 2592af2a262eeb5fd42039fd5e62cf22a3e504a0 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 15 Apr 2019 02:39:28 +0800 Subject: [PATCH 108/260] docs: update --- packages/docs/docs/config/README.md | 5 +++-- packages/docs/docs/zh/config/README.md | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/docs/docs/config/README.md b/packages/docs/docs/config/README.md index 37785acc..5a0a7c6d 100644 --- a/packages/docs/docs/config/README.md +++ b/packages/docs/docs/config/README.md @@ -68,8 +68,9 @@ Specify the port to use for the dev server. ### temp -- Type: `number` -- Default: `@vuepress/core/.temp` +- Type: `string` +- Default: `/path/to/@vuepress/core/.temp` + Specify the temporary directory for client. diff --git a/packages/docs/docs/zh/config/README.md b/packages/docs/docs/zh/config/README.md index 20f863a3..42db142b 100644 --- a/packages/docs/docs/zh/config/README.md +++ b/packages/docs/docs/zh/config/README.md @@ -66,8 +66,8 @@ module.exports = { ### temp -- Type: `number` -- Default: `@vuepress/core/.temp` +- Type: `string` +- Default: `/path/to/@vuepress/core/.temp` 指定客户端文件的临时目录。 From 1b6c4cdcd272e2108922457128e200b58a4c2f61 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 15 Apr 2019 23:32:51 +0800 Subject: [PATCH 109/260] chore: update compatible node version --- packages/docs/docs/README.md | 2 +- packages/docs/docs/zh/README.md | 2 +- packages/vuepress/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/docs/docs/README.md b/packages/docs/docs/README.md index f87e1573..ac3f1029 100644 --- a/packages/docs/docs/README.md +++ b/packages/docs/docs/README.md @@ -43,5 +43,5 @@ vuepress build ``` ::: warning COMPATIBILITY NOTE -VuePress requires Node.js >= 8. +VuePress requires Node.js >= 8.6. ::: diff --git a/packages/docs/docs/zh/README.md b/packages/docs/docs/zh/README.md index ac13b6ab..a4c5edba 100644 --- a/packages/docs/docs/zh/README.md +++ b/packages/docs/docs/zh/README.md @@ -30,5 +30,5 @@ vuepress build . ``` ::: warning 注意 -请确保你的 Node.js 版本 >= 8。 +请确保你的 Node.js 版本 >= 8.6。 ::: diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json index 60c0bd11..9048abe9 100644 --- a/packages/vuepress/package.json +++ b/packages/vuepress/package.json @@ -34,7 +34,7 @@ "cac": "^6.3.9" }, "engines": { - "node": ">=8" + "node": ">=8.6" }, "browserslist": [ ">1%" From 141bd11e4b7e1b4d1bee53a49c232b11a36516cd Mon Sep 17 00:00:00 2001 From: Anton Wilhelm Date: Tue, 16 Apr 2019 17:16:37 +0200 Subject: [PATCH 110/260] feat($theme-default): support external links in sidebar (close: #764)(#1534) --- .../theme-default/components/SidebarLink.vue | 17 ++++++++++++++++- packages/@vuepress/theme-default/util/index.js | 6 ++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/@vuepress/theme-default/components/SidebarLink.vue b/packages/@vuepress/theme-default/components/SidebarLink.vue index 7d128b4a..243ce763 100644 --- a/packages/@vuepress/theme-default/components/SidebarLink.vue +++ b/packages/@vuepress/theme-default/components/SidebarLink.vue @@ -28,7 +28,9 @@ export default { const active = item.type === 'auto' ? selfActive || item.children.some(c => isActive($route, item.basePath + '#' + c.slug)) : selfActive - const link = renderLink(h, item.path, item.title || item.path, active) + const link = item.type === 'external' + ? renderExternal(h, item.path, item.title || item.path) + : renderLink(h, item.path, item.title || item.path, active) const configDepth = $page.frontmatter.sidebarDepth || sidebarDepth @@ -75,6 +77,19 @@ function renderChildren (h, children, path, route, maxDepth, depth = 1) { ]) })) } + +function renderExternal (h, to, text) { + return h('a', { + attrs: { + href: to, + target: '_blank', + rel: 'noopener noreferrer' + }, + class: { + 'sidebar-link': true + } + }, [text, h('OutboundLink')]) +} diff --git a/packages/@vuepress/theme-default/styles/code.styl b/packages/@vuepress/theme-default/styles/code.styl index 0bf5849e..9d3aa9a5 100644 --- a/packages/@vuepress/theme-default/styles/code.styl +++ b/packages/@vuepress/theme-default/styles/code.styl @@ -133,3 +133,5 @@ div[class~="language-bash"]:before div[class~="language-php"]:before content "php" + +@import '~prismjs/themes/prism-tomorrow.css' From abad4c5b3d08ba7e2e2a5b4b86bcbcba7dd639cf Mon Sep 17 00:00:00 2001 From: Drake Costa Date: Sat, 20 Jul 2019 00:13:33 -0700 Subject: [PATCH 210/260] ui: add vector brand icons (#1627) * Add Vector Brand Icons Re-created the VuePress icon in Adobe Illustrator. Here's the raw Illustrator file to tweak as you wish, plus an SVG version which we will be using over at CodeSandbox. * Update vuepress-icon.svg --- art/VuePress-Icon.ai | 1359 +++++++++++++++++++++++++++++++++++++++++ art/vuepress-icon.svg | 46 ++ 2 files changed, 1405 insertions(+) create mode 100644 art/VuePress-Icon.ai create mode 100644 art/vuepress-icon.svg diff --git a/art/VuePress-Icon.ai b/art/VuePress-Icon.ai new file mode 100644 index 00000000..63ec74af --- /dev/null +++ b/art/VuePress-Icon.ai @@ -0,0 +1,1359 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R 62 0 R 148 0 R 221 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator CC 23.0 (Windows) + 2019-05-29T13:53:31-07:00 + 2019-05-29T14:12:32-07:00 + 2019-05-29T14:12:32-07:00 + + + + 228 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADkAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq0WUd8VcHU9DireKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuqMVa5L4jFWvUTxriruR7A4q6snYU+eKupIe4H44q7g3dj9FMVb4DvviruK+AxVbJHyUg bN+yffFVCyufVWjfbGzDwI64qisVdirsVdirsVdirsVdirsVdirsVdiriQMVW+ovzxV3M9lOKurJ /LT5nFXUkPUgfLfFXcD3Y/RirvTXvU/TirYRB2GKt4q7FXYq7FXYq7FXYq7FUsP+j6qV/YmHMfPo fxxVMwajFXYq7FXYq7FXYq7FXYq7FXYq7FVK5l9OIkMFY7KzdOR2Hh3xVUVAFAPxEftGlT92Kt4q 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqgdWjPCK4XrA2/+q2x/GmKom2kDxBhviqrirsVdirs VdirsVdirsVdirsVQerF1sZnRS7qjMqDqSBUAYqiLeUSwRyj9tQfvGKqmKuxV2KuxV2KuxV2KuxV 2KuxVTnubeBeU8qRKf2nYKPxxQSBzSy683+WrWvq6jCSOojJlP8AyTDZA5Ijq48tXijzkHaL5o0v WZ5orD1HEChpJWXinxGgG5rU0PbGMweScOqjkJEeib5NyHYqtljWSNo2+y4Kn5HbFUBpEjBGhf7c bFG+Y2xVMcVdirsVdirsVdirsVdirsVSbVfMkFpK1vEvqzoQJBWgUkBhXx2OUZc4jt1cPU6sYzQ3 KS3XmfUZY2CiNAR2Ff1k5jHUycE9oZD3BNfJl99Z0f0mI9W1kaF1UGgH2k6/5DDMzFPijbtNPk44 Ap9ljc7FXYq4kAVOwHU4qhJ9Y0m3r697BGR2aRQfurkTIDq1SzQHMhj+s/mj5J0ghbq/JkYEokUU r1p4MF4f8NlmOPHyWGeEuRtjF9/zkJ5ViqLOxvLlh3cRxKfp5O3/AAuXDTllxhl3knz7ovm2xM1k 3o3cX+9NjIR6kfuKfaTwYZVPGYsgbZDcTxW8ElxMwSGFGkkc9AqipP3DIJfKmv8A5l+bdUv7mYar dW9rLI7RWsUrxokZYlUohFeI23zYRxxA5NJkUL5WM15qr3dw7StAtebks3JthufpzG1s6hXe4HaG SoV3suaXNVTpHrn5Zad9W8uC6YfvL2RpPfgvwKPwJ+nMnEKD0HZuPhx3/OZdlrsHYq7FUsnH1fUe daJcDl/slAB/hiqZg1GKuxV2KuxV2KuxV2KuxVpvsnFXnOq3JbzDqcR6xvEfoaFP6ZrtQPW6LXf3 pUS22UOGnXkaaRL68gLfupFRkSg2ccqmvuP1ZnaU7EO37OlsQzPMp2TsVdiqV+YNAtdZs/RlJSVK mGYdVb3HceIyE4CQcfUacZY0Xker6dfaVeNaXicJBupG6svZlPcZhyiQd3ncuKWOVSSi/tra9t2g uFDIeh7g+IPY5LHkMDYRjyygbDAdZ0qfTZqN8cDH91L2PsfA5usOcZB5u8waiOQbc1DSde1LRtQi 1DTbhre7hNUkX8QQdiD3By2QBFFyA9Y8yfndY61+W95bKv1XX7rjaXFsKlTHJUySxn+RkUrQ7gnv 1OPHDUvJmZbPEmmzIYM08pwmDShKwo1wxf8A2I2X9Vc1esnc67nR9oZLyV3J5bRy3V1Dawiss7rF GPFnIUficxQHCiDIgDq+i7G0js7KC0i/u7eNYk+SAD+GZYFPXQiIxAHRWwsnYq7FUDrEZa09VR8U BD/R0b8MVRNtIJIgcVVcVdirsVdirsVdirsVY9qv5geTNLleG91aBJoyVkiQmV1I6hliDkH2yYxy PIIMg88ufNnl3WPNs0mjzmRZoF9bkroWdP2grgGnEAZiazCY0S6ntGN1IJjzzAdYq6VfCx12yuCQ sbv6MjGp+GWgFAO5bj1zI08ql73O0GSp13vTsz3eOxV2KuxVLde0Cw1qyNtdLRxUwzgfHGx7j+I7 5GUQQ0Z8EcsaLxjzDomoaHfG1u12O8My/YkXxX+I7ZiygQXnM+CWKVFJLpIbiFoZlDxuKFTjGRib DVDIYmxzYHr2jTac/qJWS0Y0V+49mzbYNQJjzd7pdUMo/pJK02XuW1HzmmSJPtyMFX5saDATQtEi ALL0mEJBBHCmyRqFA9gKZpZGzby058UiT1Zl+Vem/X/NcczLWGwRp2Pbl9lB97V+jJ4xu5vZuPiy 3/N3e4Ze9I7FXYq7FWnRXRkYVVgQw9jiqX6Y7RySW7n4oyV+gdDiqY4q7FXYq7FXYq7FWJfmtrd7 o3kXUbyyYx3DelbrKvVBPKsTMCOho+x7HLMQuQRLk+YuWbFoR/ly/wDqPmCznL8I2cRybVqH2A+l qZh62HFjPk0amHFAvYuWaB0ijcs4UOjcXU8lYUNCNwd6jJRNG2UJGJBD1PR7369pVpecSpniR2U9 QSNx9BzZg29NGVgFGYWTsVdirsVQGt6JYazYPZXqco23Rxs6N2ZT2IwSjbVmwxyR4ZPDvNfljUvL t6YbgF7aQn6tdAfC4/gw7jMaUKea1OmlilR5d7HpjHLG0cgDo4IZTuCDiDW4ceMiDYYN5h0GSxLX FtV7Q9R1ZPn7e+bHDn4tjzd7pNaMmx+r71DypD6+rLIRVLdTIfCvRf11w6iVR97LtDJw4j57M3aX NdTztvaPyX0n6v5fn1J1pJfy0QnvFDVRT/ZlsuxjZ6HsrFWMy/nfoehZN2jsVdirsVdiqW3SmHUk mA+GZaMf8pafwxVMVNVBxVvFXYq7FXYq7FWPfmFpTar5I1uxReUslpK8C+MsS+pF/wAOgyUDRQXy ikgZFYdGAI+nNk0NrOIZY5yOQiZX4jqeJrTIZI3EjyYzFgh7Pp9x61lDJWpKCp9xsfxzmiHn5bFX c1UjAhnH5e3ML6I9qhq1rM4cb7GQ+p3/ANaubDCfSHodFK8QZRlrlOxV2KuxV2KoTVtJ0/VrGSxv 4hNbydVPUEdGU9QR44CLa8uKM48Mhs8F87+TNR8s3fx1m06ZiLa7A+ng/g9Pv7ZTKNPM6vSSwnvj 3sVeQEEHcHYg9KYA4gNJfY6baWEk7244icglf5adh7ZZPIZVbfn1UsgAl0RkfqSypFGpaSRgqKOp ZjQDIU443NPqXQtLTStGstOTcWsKRlh3YD4m+lqnLgHssOPggI9wR2FsdirsVdirsVQupxepaMwF Wi/eL/sev4Yq3p8wlgBGKonFXYq7FXYq7FXEV2PTFXxzrOmnSdZ1HSiKCwuprZP9SOQqh+lKHNjA 2A0HmgmNVOTQ9K8g6gtxoKRVHO2PpFRXYAfD18RvnP6qHDkLpNXDhmWScsx3GZB+X2oPFrk9iamK 4iMi9KB0IB7V+IH8My9PLmHb9m5Ocfi9FzJdq7FXYq7FXYq7FUPqGn2Wo2ctnewrPbTLxkjYbEfw PgRiwnASFEWHgH5gfl5f+Wbg3EHK50eU/urim8ZJ2SWnQ+B6HKjGnmdbopYTY3iwzIuAy78q9G/S nnSyDLyhsq3cv/PKnD/koVyURu53Z2LjzDy3fRmWvVOxV2KuxV2KuxV2KpXptYJprY9I3IX/AFTu PwxVNMVdirsVdirsVdir5k/O3TP0f+Y19IBxj1GGC8TwqV9Bv+GgqfnmbgPpap82CVy5iy38t7p0 u7y3J/duFZV/y96mvyXNX2hHcF1naEeRZ9yzWusVdMupLXW7C6jClo50B5fyueD9O/BjTLMRqQcr Rz4cgezZnvRuxV2KuxV2KuxV2KqV1a213bSW1zGs1vMpSWJxVWU9QRixlESFHk8G/MX8tLny/K+o 6crTaK53/aeAk/ZfuV8G+g+9co083rtAcR4o/R9zLfyK0b0tLv8AV5Fo91IIIWP8kQqxHsWan0YY BzuyMVRM+96jk3cOxV2KuxV2KuxV2KpZqKiG7iuAKCT4HPuNx+GKpkjAqDireKuxV2KuxV2KvEP+ cktLo+hauopvPZTHxLBZYvu4SZkac70wm8V5ZltaZ+V70WmvW7saLJWMmtAK0Nfwp9OYethcL7nE 1kLh7nqvPNM6NTmZuBZGKON1ZeoI6EYRsWcJEEEPZPLmorqOh2V4u3qxKWWtSGAoQfcEZsAbephL iAITHCydirsVdirsVdirsVWyxRTRPFKiyRSArJG4DKykUIIOxBxQQCKKH0vSrDSrGOxsIhBaxFjH ECSBzYuete7HFjjxxgOGPJFYs3Yq7FXYq7FXYq7FUNqUBmspFX7YHJPmu/49MVa0+cSwg1rtiqKx V2KuxV2KuxV5/wDnrpf178ub6VRWTTpYbxPkjhJD9EUj5ZiNSYy5PmKuZ7UtaR0ZZE+3GwdK+Kmo yE48QIRKNinsNhdLcWcMysGDoDyG4O3UHOeIeakKNKzNVSMUPQfys1FZdMutOJHOzl5qoBB9OapB J6H41bpmZhNxeg7PycWOu5m+Wuc7FXYq7FXYq7FXYqsmuIIE5zyJEn8zsFH3nFUsufNnly3PF76N j4R1l/5NhslwlFpfL59077NraXNw/wCz8ART9JNfww+GVtT/AMRearqn1LRxEP5p2Zh+AjH44eEd 621JD+YEqPL9ZhtyBUQoiNX2FQ/68fSjdNPLGsS6ppvqXAC3ULmKcLsCy0IYD3ByMhRSCm+RS7FX Yq7FUrs/9Hv5relFryT/AFW3GKppirsVdirsVdiqA1/S01bQtR0qTZL+2mtmPgJYylfxwgq+LELh QJAVkGzqeoYbEH5HNgC0OY1GFXpPk28WbQ4VFR6Q4UP+T8P6wc0eojUz73QauNZCnnLKXGZR+Wmo pb+YZLRhT65EaMTtWM14/M8syMB5u27LkLkHqtcyHcurirq4q6uKobUb5bKxmuihk9JahBsSTsBX tucIFqxeDVPOuqJ6lokFvDUgSIobp2rIaGnsMnwxDGyqf4c8z3Rre6xIgb7SxMVFD1qqBBjxBaKp B+X+lA8riWSd+5O1f+C54+ItIk6f5O00lZvq8Tr1WWQcv+BJ/hg4pFNBO4IbWNQYI0RSNuAABH0Z G0sf1vzhcadeTWsenmUxgEStIFU1WtQKEnJRhaCU/tLqO6tYbmP7EyLIvyYVGQKWN6RTTfN17Y/Z hvU9WIf5SfFQf7Fj92WS3FsRzZVXK2Tq4q6uKuriqXakpjuIbobDeNz8zVf44qj4m5Rg+OKrsVdi rsVdirsVfHn5iaX+ifPmv2AXiiXkk0S9hHc0uEA9gstMzsRuLVLmx2uWMWWfl/f0luLJj/lxgnqO 4A8B/HNZrYbguq7Rx7iTNueYLq1bTtRGnatZagSAtvKGdiCaIdnNBv8AZJyeM0XJ0mTgyAveVcMo ZTUEVB9jmY9O3XFXVxV1cVQ+oW4ubGeDvIhC/Om344QaKEi8j3bNaXVm5Ja2m5LXsk3xAf8ABBsn MboCVarrfmeC+nhW8SMROeCLEtCoNVqTybcZIRFKSm+ledLO5t5FvFFtfQoWaEn4ZKD/AHWT4+H6 8gYJtiNykdxPNPIimSZmZ2pvVjU5dTFnPlW/E+gW7SMA9sphmJ2AMXw1JP8Ak0OUSG7IJJ5sudOu bmGS2uYppQpWVY2DUANRWlfE5ZBBW+X/ADT9S0+LTfqk1xcxu0cHAAKys1VqzH3p0wShuoKN83hr S50/WEHxW0gEoHdQakV91LYIbilLJ1dWUMpqrCoI6EHK2TdcVdXFXVxVRvIvXtpI+5Hw/wCsNx+O KqelT+pbJXr3xVG4q7FXYq7FXYq+a/8AnI7Shaed7TUFFE1KyXkfGW3cox/4B48ysB2prm8r5Zew TLyxdNb69bsKUfkjk/y0qaf8DmNq43D3OLrYXjPk9N5ZqXn1k3xIRikF7d5PvDc+WdNkaQyyLAiS SE8iWRQDyPj45mx5PV4ZXAHyCc1wtjq4q6uKurirEbH/AHH+c5IOkV2rqB2r/er/ABGWneKOq3zf bcL+OcDadNz/AJSbH8KYcZ2UpdbaNJd6VFqEA9WWMslxFT4ldCQSvjUUNMPFvSKTFdH4+WZLgr++ ZlmHjwXYfgxODi9Sa2b8k3XC7vLFj8MircRr2qPgf/jXBkChH6n5Us5uUtiq28x3KAURvoHTBGak KHlrRZ4buS4uoyjQ/BGrd2I3YfRhnJQE31+0F5pNxDSp4ll+a7/iNshE7pKG8pXrXOhwq5rLbVt5 PnHsv/CUxkN1Cc1yKurirq4q6uKpfbn6vfvFX4XPNPkxqfxxSmuKuxV2KuxV2KvHf+cmdKE3ljSt VVavY3hhY+EVzGan/kZEgy7Ad2M+T515ZltS6Gf0LiKapAjdWbj1Kg7jt1GV5Y8USGGSPFEh6vbT +pbxvXdlFfn3zSvMyFFULVGBi9K/KXVFl02700kepaSc1UAg8JSTUk7VLcumZWI7PRdnZOLHXcz2 uWue6uKurirq4qxTzkrW11Z6lGKtCyt9MTct/mpOWQ5Ugprr1i+o2EZtgJHDB49wKqw33PzrkYmi pU/LOlX2mpcpcMnpzOskaKSSGpR67U3oMZEFQnEqJLG8biqOCrD2IocilAw6Zo+nsLlUSF0BX1nY 7Buu7H2wkkqp3PmnQLc0e9jY+EdZP+IBseEraXyeeLVvhtLO4uH/AGagRqfpJJ/DJcBRaw6x5tvK rbaclsjCnKUlmFe4J4LjwhUx8u6TJpttKJWBlnf1GUdF+ELT8MEjahNq5FLq4q6uKuriqC1EFXgu B+w4Vvk39uBUyifmgOKV+KuxV2KuxVh/5vaR+lfy3163C8pIrY3cQAqedoRcCnufTpkoGig8nx+G qK5ntTTGqnFXoPk699fRIlJHKAmMhewX7Nfem+afPGpl53Ww4chTznlLiMj/AC21F7TzdDFVvTvY 3hZQaLyA5qxHenCg+eXYju7TszJU+HvezVzId86uKurirq4qlnmKza70uRFXm6EOqjqabH8CclE0 UFItL81XdvYw2X6PkuLi3Hp8gwVWVdlPQnpkjBbRf6S85XVfQsorVD0MlS4/4IqPwwUFd+hfNNyQ bvVmiHhB8B/4QL+vGwq6LyPpvLndTS3D92Y9fv5Y8a0mVt5f0a3A9O1Q/wCt8X4HbBxFaR8cUUQ4 xoqDwUAD8MildXFXVxV1cVdXFXVxV1cVWTxiWJoz+0Nj4HscVW6TPzj4n7S7Ee4wJTDFXYq7FXYq snhinhkgmUPFKpSRD0KsKEH5jFXwtqNhLpuo3emy19WwnltZK9eUDmM/8RzPibDSUPXCrKPIVy6y 3cB/uzxdf9Y1B/AZgayO4LqO1I8izLlmE6lE6TqY03VrS/JCrBIDIzAkBG+FzRd9lJIycDRcnSZO DIC+go5BJGrjowDD5EVzKepXVxV1cVdXFXVxV2w7deuKurirq4q6uKurirq4q6uKurirq4q6uKur irq4q6uKoKymA1W4jT7IIJ+ZAJ/HAlOhirsVdirsVdir5C/PDSf0Z+Z2sKo4xXpivYv+e0Y5n/ka r5l4j6WuXNgnLLWKa+V71rfWYl34TVUjtsK1P0VzF1Ubjfc4Ovx8WO+56HzzXPPrJDVCMVD3D8vN UTUPKViwNZLZPq0wLBmDRfD8VOnJaN8jmXE2Hq9Nk48YLI64W91cVdXFXVxV1cVdXFXVxV1cVdXF XVxV1cVdXFXVxVRnvbSBWaaZI1UEsWYCgHUnFWOah+Z/kixYJJqaSsRWkAab7ygamAyDTPUQjzKn on5iWmuwtJp1pKqqxQ+txBqKdlLePjiJWyw5Y5BYRpn8y3SqFMdsGqH4AuaHpxYgU+7FupNtE0k2 gq25NSSSSSSakknqTiqdYq7FXYq7FXYq+dv+cptJ9PVtB1lV2uIJrOVvAwuJYx9PrPmRgLCbwyuX sHLKYpY5QKmNg4HuprkZixTGceIEd71G1uVntoplPJZFDA+NRmoIeUnGiQqFtsWL0/8AJq9h+oah ZBv3yzCdk32V0VVNem5Q/dl+Lk9D2XK8ZHm9GrlrsnVxV1cVdXFXVxV1cVdXFXVxVTkuYI/7yRV+ ZAwKk+qed/K+lh/rmoRRugBaLkPU36UT7R+gYksJZIx5mmLan+d3lu3BWxhmvnKkqVXggYdFYycT v4gHImYcaeuxx82L3v52+Z55B9Rsbe1ipusnOVid96gx07dsgcjiT7TPQJVf/mJ52vzveC1QrxZI EFD13rJ6jA79jkTkLRPtLIeVBILlL29cPfXU10y7KZnZ6D25E0yJkXDnqZS5m3JYQr2wNRyFn35T XUFvrctlJ9i5TlGP8tN/xWv3ZPGd3Z9lZvWYnq9vhhi4AgZc75WAA6Yq7FXYq7FXYq7FXln/ADkl pH138tnvAtX0q7guajrxdjbt9H7+p+WWYj6mMuT5S5ZltbiajFWf+WblZdHgC9I1CU/1dj+IOarK KkXmtbGspTXlkHEZL+W2qx2HnC3EjcY7xGtqlgqhmoyk161K8R7nLMZ3dn2XlrJXe9yrl70Lq4q6 uKrHmij+26r8yBiqR6p598o6XyF3qcKyI3FokPOQH3Rat+GAkNc8sY8yGM3n54+VopjHbW91dKOk yIqqdq9JGRvbpkTMONLtDGO8pJqf54X8nNNL04L09Oa4b5V5Rry9x9v39sicjRPtOI5BjN9+Ynny /aTlqAtopBxMUCKoAIoeLMGcHvXlkTMuJPtKZ5bMfngu7uX1ryeS5l6epK7SNQe7EnIEuHPUGXM2 vSxjXwxajkVlhRe2BjxKgCjFFt8hihvlirTSKoqxAHicUsp/LS2kuvMcV1GrmG2V29ZVJjLkBOHP pWklaZOA3dp2ZgkcnERsHv8Aa19Ba9aZc9Cq4q7FXYq7FXYq7FUk876Mdb8n61pKrykvbKeKEf8A FpjPpn6HocINFS+FlfkobxFczWlvlhVk3km7A+sWxO9RIN/HbYe1MwdTHe3Tdq49xJlfPMZ07knm hmiuIW4TQuskT0BoymqmhqOoxDZjmYkEcw9G0z87beGxjj1SxuJLtFCvJCEZXIoOW7JSvWlNvHLh kd9j7TgY+q7S7U/z01eTkml6WkIDHjLcMXJTelY140PT9o/xxORjPtMfwhjs35lfmDcys51H0kYk iKOKLgoJrQclY7e5yPGXEl2lk6Gkq1DVNe1RmN/fTTKxBMXIrHVRQERpxQH6MiZFx56zJLmShEsI V/ZyLjnIVZbeJe2LEzKoFQdBixtdUYrbfPFXc6dcVUnvbdPtSD6DX9WLIQJS2582aNb7NOGNaUX4 vvC1OTGOR6OTDRZJdEsbz/aE0SCUDxIU/wDGwyz8vJyh2VLqQhofOk819brMhiszKguWVvj9IsOR Wg2bjXxyY03m5MOzIDmX0hpP5Q6FEiStELsmjLLMxk5Dtt9gj6Mr4Q58NJjjyDONJ8uQWIVY0VEU UVVFAPkBknJTxV4qB4Yq3irsVdirsVdirsVdir4U896R+hfOuuaWF4R2t9OsK9P3LOXi/wCSbLmZ A2GopHyySEx8t3LQ61CRSkgZGJ8KV/hlGojcXC7QhxYj5M+55gvNO54pWkKeuK24BRitt1GKt8sV dzxQse5hT7Tge1cWQiSgX8x6OpoLqNj7Ov8AE5LgPc3jSZD/AAlLrnzvp0ZpEGlO/wBgE0+/jkxh kXKh2ZM89kpn88ajItIIFjNerHkKfIBT+OWjTd5cyHZcRzKXtr+uSNVrk79uKmn3g5YMEXKGixDo hJWuJ6evK8tOnNiafKuWCAHJvjjjHkKWrCg7ZKma8Io7YVXbYq+0fyW1uXWvy00S6nB9eKI2rsf2 vqzmFWr7qgr75iZBRbByZvkEuxV2KuxV2KuxV2KuxV2Kvkz/AJyY0c2H5lG9VaR6rZw3BYDYyRVg YfMLEh+nMnEdmEnk/LLWKpbXJt7mKcE0RgWpQnj0alfbIZI3EhqzQ4oEPRoZhJGrA9Rv881zyUhR pfyxQtaZF+0wX5mmKQCUNcaxYW4HqzqlenIgVp4VpiAS2wwTlyCVXHnbS49o+Ux/yR/Wg/HLBhkX Mh2ZkPPZLn893LE8bWi9jz3/AOInLBp/Nyo9kjqUBc+ZtYnJ4uIlrsAORp4HlUfhkxpw5OPs/HHn ul0z3NwQZ5nkp0DEkCvgMtEAOTlwxxjyFLVhUZOma8IoxVcKYVbriruWKu5YqqWkFzeTi3s4ZLqd vswwI0rn/YoCcBIWmbeX/wAkvzO1qeNU0SawgcgPc6hS2VB4mN/3p+SocgcgCeEvrnyf5Zs/LHln T9BtDyisYghkIoXkYl5JCKmnN2LU7VzGkbNtgCcYFdirsVdirsVdirsVdirsVeCf85ZaNz0bQdaV d7a5ls5CPC4j9Ra/I25+/LsJ3YyfNfLL2DiajFUdp/mC/sV9MD1YuwJII2oADuKD5ZRPCDycLPoY ZDfIun8063MvEOsXug3+XxEj8MAwBjDs7FHzQP1zUmJJupanrR2H6jlgxjucoYMY/hHyURCOp3OT AbV4RR2wquAA7Yq3UYq6uKu5Yq0ZFBoSK+GNqyLRvy+8962FbS9AvrmN6cZ/RaOI1/4tk4J+ORMw E0zvRv8AnGP8yr0K181jpKH7SzTGaQf7GBXQ/wDB5A5gnhZ1o3/OJuhRcW1rXrq7PVktI47ZflV/ rDH8MgcpTws70b8ifyq0oq0egw3co6yXzPdV+aTM0f3LkDMlNM2stP0+whEFjbRWkA6RQIsaD/Yq AMilEYq7FXYq7FXYq7FXYq7FXYq7FXYq8+/PvRTqv5Va2qLWWyRL6M+AtnEkh/5FB8nA0UF8W8sy mt3LFXVxV1RiruWKu5Yq4uB1NMVRulaNrWryenpOnXWoyVoVtIZJj9PphsBkAtM60X/nH381tUox 0ldOibpLfTRxffGhkl/4TIHKE8LO9F/5xK1BuL655hii/nhsYGkr8pZSn/JvIHMy4Wd6L/zjP+V+ ngG7t7rVpBvyvLhgK/6lv6C/eDkDkKeFnui+S/KOh0/Q+jWVgy/7sggjSQ/NwOR+k5EkpTnArsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVQ2qafBqWmXenXG8F7BJbyjr8EqFG/A4q/Pm/sbvTr+ 5069jMV5ZyvBcxHqskbFWH3jMwG2pD8sKroVeaVYYVaWZzRIowWYnwCipOC1Zdov5Q/mdrPE2Ply 8CN0luVFolPENcGKv0ZE5Amme6L/AM4peeLoq2ralY6ZEeqx+pdSj/YgRJ/w+QOVPCzzRf8AnFHy VbcX1bU77U5B1RCltCf9ioeT/kpkDlKeFnui/k9+WOjUNl5cs2kXpLcp9acEdw1wZSD8siZFNMvi iihjWKJFjjUUVEAVQPYDIpXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqw Lzx+SPkDzjf/AKS1K1kt9SIAlvLN/RklAFB6goyMQNqla++SEyEEIPRf+cd/yo0sq7aSdQmX/dl9 NJNX5x1WL/hMJmVpnelaDoekRelpWnW2nx0oUtYY4RQeyBchaUdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVf/9k= + + + + 3 + sRGB IEC61966-2.1 + + + xmp.did:A77706D087AB11E3B70DEE037706C123 + + + application/pdf + uuid:a3fb1f86-fd9c-4b22-be00-d8c29ea4396f + xmp.did:248539d3-8190-4647-a7c2-f58aac979746 + xmp.did:b0ad8870-0927-4ef5-a908-c1686f1ddc69 + proof:pdf + + + + created + xmp.iid:b0ad8870-0927-4ef5-a908-c1686f1ddc69 + 2018-04-12T10:41:10-04:00 + Adobe Photoshop CC 2017 (Macintosh) + + + saved + xmp.iid:a86be286-02bd-45c3-801e-b9430b9feebc + 2018-04-12T10:46:39-04:00 + Adobe Photoshop CC 2017 (Macintosh) + / + + + saved + xmp.iid:248539d3-8190-4647-a7c2-f58aac979746 + 2019-05-29T13:53:31-07:00 + Adobe Illustrator CC 23.0 (Windows) + / + + + + + uuid:55ec20c6-343f-4a83-a806-80239a5ba58b + xmp.did:1eed275b-e294-6d41-9a25-e46e3c40af5f + xmp.did:b0ad8870-0927-4ef5-a908-c1686f1ddc69 + proof:pdf + + 1 + 3000000/10000 + 3000000/10000 + 2 + 1 + 600 + 600 + 1 + True + False + + 144.000000 + 144.000000 + Points + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + R=115 G=203 B=141 + PROCESS + 100.000000 + RGB + 115 + 203 + 141 + + + R=47 G=152 B=105 + PROCESS + 100.000000 + RGB + 47 + 152 + 105 + + + R=88 G=96 B=128 + PROCESS + 100.000000 + RGB + 88 + 96 + 128 + + + R=44 G=50 B=71 + PROCESS + 100.000000 + RGB + 44 + 50 + 71 + + + + + + + Document + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>/XObject<>>>/Thumb 228 0 R/TrimBox[0.0 0.0 144.0 144.0]/Type/Page>> endobj 223 0 obj <>stream +HwVu6PprqV*2P041c]Qw6PH/ʇ(sr5r +endstream endobj 224 0 obj <> endobj 228 0 obj <>stream +8;WRk]bQ&?%"q7hE/Rsi'c/$Q*Ksm+ND@>SXCM%7YVCFaOY:p0P^\9#hlhg,9rt!$ +\[?Z@5n\ZY"E5`kqH"^@:!R/X_kn`uS6b2U+&t$PY1QM"S;iWl'OP!ZoB5d40]s=? +W&E.[5\Q&a04[=YW-Pcge'E7C!*O^"Wr~> +endstream endobj 230 0 obj [/Indexed/DeviceRGB 255 231 0 R] endobj 231 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 227 0 obj <>/ExtGState<>/ProcSet[/PDF/ImageC/ImageI]/Shading<>/XObject<>>>/Subtype/Form>>stream +q +15.415 106.843 m +83.042 116.883 l +84.851 117.151 86.748 116.057 87.287 114.432 c +115.265 30.124 l +115.951 28.056 114.885 26.018 112.873 25.581 c +37.142 9.162 l +34.9 8.676 32.682 10.109 32.195 12.353 c +12.493 103.167 l +12.116 104.905 13.427 106.548 15.415 106.843 c +W* n +q +0 g +/GS0 gs +0 107.8557281 107.8557281 -0 63.9506111 9.0674381 cm +BX /Sh0 sh EX Q +Q +q +15.837 107.75 m +83.465 117.789 l +85.273 118.058 87.171 116.963 87.71 115.338 c +115.688 31.03 l +116.374 28.962 115.308 26.924 113.296 26.487 c +37.564 10.068 l +35.323 9.582 33.104 11.016 32.618 13.259 c +12.916 104.073 l +12.538 105.812 13.85 107.455 15.837 107.75 c +W* n +q +0 g +/GS0 gs +0 107.8557281 107.8557281 -0 64.37323 9.9737463 cm +BX /Sh1 sh EX Q +Q +q +/GS1 gs +123.3600049 0 0 136.8000054 9.0872765 1.4457679 cm +/Im0 Do +Q +q +22.673 118.746 m +89.808 128.591 l +91.608 128.855 93.515 127.752 94.073 126.122 c +122.446 43.292 l +123.128 41.301 122.098 39.348 120.137 38.936 c +46.631 23.494 l +44.465 23.039 42.275 24.411 41.747 26.551 c +19.88 115.091 l +19.452 116.824 20.705 118.458 22.673 118.746 c +W* n +q +0 g +/GS0 gs +0 105.2224884 105.2224884 -0 71.2262192 23.4073429 cm +BX /Sh2 sh EX Q +Q +q +/GS2 gs +123.1200049 0 0 133.6800053 16.3960667 14.64519 cm +/Im1 Do +Q +q +29.886 129.375 m +96.445 138.905 l +98.231 139.161 100.136 138.067 100.704 136.458 c +129.388 55.155 l +130.072 53.213 129.066 51.313 127.133 50.918 c +54.774 36.131 l +52.646 35.696 50.471 37.035 49.925 39.115 c +27.165 125.782 l +26.716 127.49 27.937 129.097 29.886 129.375 c +W* n +q +0 g +/GS0 gs +0 102.8930511 102.8930511 -0 78.3371201 36.0491562 cm +BX /Sh3 sh EX Q +Q +/CS0 cs 0.737 0.753 0.812 scn +/GS0 gs +q 1 0 0 1 93.2695 71.6797 cm +0 0 m +-1.659 5.58 l +-5.109 4.99 l +-3.359 -0.64 l +-6.46 -1.239 l +-0.09 -5.489 l +3.141 0.61 l +h +-24.126 1.463 m +-21.027 -9.416 l +-17.698 -8.657 l +-19.479 -2.394 l +-14.933 -5.954 l +-12.72 -0.943 l +-10.907 -7.306 l +-7.676 -6.613 l +-10.808 3.903 l +-14.236 3.309 l +-16.313 -1.306 l +-20.797 2.089 l +h +-29.975 2.777 m +-25.545 -13.353 l +-25.201 -14.604 -23.952 -15.379 -22.679 -15.132 c +7.423 -9.279 l +8.882 -8.996 9.766 -7.503 9.313 -6.087 c +4.344 9.446 l +3.966 10.63 2.77 11.351 1.546 11.133 c +-28.017 5.877 l +-29.455 5.622 -30.362 4.186 -29.975 2.777 c +-27.443 4.169 m +1.88 9.603 l +2.296 9.68 2.705 9.434 2.832 9.03 c +7.755 -6.612 l +7.904 -7.09 7.606 -7.592 7.115 -7.687 c +-22.628 -13.479 l +-23.057 -13.563 -23.478 -13.303 -23.596 -12.883 c +-28.098 3.117 l +-28.231 3.592 -27.928 4.079 -27.443 4.169 c +f* +Q +0.635 0.651 0.702 scn +q 1 0 0 1 74.2402 67.7002 cm +0 0 m +-0.45 1.59 l +-0.87 0.68 l +0.7 -4.82 l +1.33 -4.681 l +h +11.35 -2.63 m +10.7 -2.771 l +7.8 6.98 l +4.38 6.38 l +4.79 7.29 l +8.22 7.88 l +h +2.7 2.68 m +2.29 1.77 l +-2.19 5.16 l +-4.88 4.66 l +-5.1 5.44 l +-1.771 6.07 l +h +15.01 3.21 m +15.67 3.34 l +15.25 2.43 l +13.529 2.1 l +12.569 2.74 l +h +22.17 4.59 m +21.68 3.67 l +18.609 3.069 l +16.95 8.65 l +14.17 8.17 l +13.92 8.97 l +17.37 9.56 l +19.029 3.979 l +h +27.96 -4.34 m +28.069 -3.92 28.06 -3.46 27.92 -3.01 c +22.95 12.52 l +22.569 13.7 21.38 14.42 20.149 14.21 c +-9.41 8.95 l +-10.06 8.84 -10.61 8.48 -10.96 7.98 c +-10.76 8.91 -10.01 9.68 -8.99 9.86 c +20.58 15.11 l +21.8 15.33 23 14.61 23.37 13.43 c +28.34 -2.11 l +28.6 -2.9 28.43 -3.73 27.96 -4.34 c +26.71 -3.3 m +26.359 -4.03 l +26.25 -4.26 l +26.13 -4.44 25.939 -4.57 25.72 -4.61 c +-4.021 -10.41 l +-4.45 -10.49 -4.87 -10.23 -4.99 -9.811 c +-9.49 6.19 l +-9.54 6.38 -9.53 6.58 -9.45 6.75 c +-9.42 6.81 l +-9.39 6.87 l +-9.05 7.6 l +-9.11 7.45 -9.12 7.27 -9.07 7.1 c +-8.95 6.67 l +-4.57 -8.9 l +-4.45 -9.32 -4.03 -9.58 -3.6 -9.5 c +26.13 -3.71 l +26.14 -3.71 l +26.399 -3.66 26.6 -3.5 26.71 -3.3 c +f +Q +q +56.64 117.12 m +48 115.92 l +78.72 87.36 l +89.76 122.4 l +81.6 120.96 l +75.12 100.32 l +h +W n +q +0 g +43.4175301 -142.0123444 -142.0123444 -43.4175301 58.1532707 154.2455444 cm +BX /Sh4 sh EX Q +Q +q +56.64 117.12 m +64.56 118.32 l +71.52 112.08 l +74.16 119.76 l +81.6 120.96 l +75.12 100.32 l +h +W n +q +0 g +67.9753189 -197.4146423 -197.4146423 -67.9753189 52.600174 167.0170593 cm +BX /Sh5 sh EX Q +Q + +endstream endobj 232 0 obj <> endobj 244 0 obj <>stream +H{#Q97p̌7oϓ]'][꩚:J}vd燭},&b{l=V]z lk`#N^ ^5 ^L/Fl[$PͰ$P€kk1B[k8#I K ӟ?X +XӪ_Y&0 };6b&9N9LH +~z D)30S_c{ +8&1#lp +ӟ?23\ef +l +8:?ҁO[{Hץ_e ~v{l? `XN~+V +0Q1?6ORkOx)_OU<ӟv?]L?Bv}Hk_cau X lj~O4E05 0N־-($N*p +&НګI +rOar K`,t_@0Z 8T{0\0 < + FP@{Px +x x&CJ@)Z$,ƫ[BI;tJ%S@w +.3` @Z'` +.}; |'` + )R |]>L ( Z$MeO@*d/@'h +NUJP@w +'p @8<S@wMDP@w +? +>ItW!]$0AO)= tWON!F0A$0K&(Sg ̐:L9H;tW$s +!sAeN`y/De.@SdN`y/D'L L<_"K\N_&Hg`{0t$]B7̑ Q&o3}0 +.o; |0yP +NI;t&<7 LRo'm +Dݥ-LM$% +q^M +H ~IP, +]g`K6t>}HI 4 +&i]$0O0S@{>Н˙YQ@{9P< r 3̣О_R&R ^0Q~L%b);tPL L +.3Se/gXʘfR@w +h/{?'^/0L~I0+e־S@w +Ne,@3)X +.eg?R@ +P) +$5 +-A#p8tqY +@+WmD;Ƹ +ذk s3!n4 +@'8ndH8Ǐs '- @4fHƍ23[4z( ? +~pK?S@׿oƿmy7 +:`z`-dB6]akf6?fc-EY 0_J?H?ZG+TcH`h 0 I ;%`ɖ I +0j`uXgBOergy:7g\[^?2~! X I_Ҙ_ X 7~?G`ΝnA{C񭿦9]G/;gߞ3~{oY=c1>WUGO= +endstream endobj 245 0 obj <>stream +H9QO9Gw=O.(;޽Y.;3XrٟEG]^zY^E,/BW@#)+t)N{?ٿ}E+?Q'1I+t!nX +XX +W{yitZ^B_=4^HW ,rn|G]L_+K|p4cn|Q$wC`vhf°,),^埱m!c;`ث4;`7qg6=m=Y}Y7M_w+oZ0~կ>{՗}Vdo?m`}8{#ۧ+ר*+SQ!۟7sN %RXY+:BK `6E`N{om?'oioa^Xwuc ۏr{5m_퇳t~:g?dzt~<ۏg{nGpG'F +endstream endobj 235 0 obj [/Indexed 233 0 R 45 248 0 R] endobj 247 0 obj <>/Filter/FlateDecode/Height 557/Intent/RelativeColorimetric/Length 7774/Name/X/Subtype/Image/Type/XObject/Width 513>>stream +HZEmۄ WDT뜪|)̪8U;sRc~go){]eE@bm*P~<09T |.#onA4@+N"?>>v]Kqcju*/'yjZWk:Tp7A^?h|6fC+FH +l`)GYۭsz]U ( ='[Ͱ^Cᛒr6+@G4pt-?囓2;&iu?ߞJ~2>tO [mQM~hH x ,I~$k@6pǧ%1VN3'`O|Y&_{oЉxH)yϘ\۩pjo=%pͽ'1]$v9E=|<^'`'vO;,g +(cBqO ځtC3sO~O*9$v)]sV53_ʚ>97ї<#903 5ҞYp2j6|$Iv\ x MHϬY%h=o7#ϲYg#bp;m(v@>O{iHϰ.T/=$); d8 +?OWM,/;(k@?7Hu35z_S!R<_^/dWmt?^Zpߣ&#] \(r@*;,oN.8wyH Rt`:f c؝5UHΐn'3` @OV:]r5@ϧ͒倭^ 08649 {x(쀋A-'`[ZX+); d8z +@ve5 0 (땁$]g2QI6ˇY((Oɨ8-㕁d((PW* +Ȑ,oNp*TZcA-㕂uTsS+jπz=(r`f yx`R.9(fq@V0D0868 [>F쀋A-'#@rF@oW +^Vw$:s#8#@azymir@6i~79#@dT#ׯcȠm<E \psH["$4#@#903Tx +49 }b;Np;aY%~0,]U8wQl~ur%0eGAR`H񲚿s ؎8@$]gP0`CPazymqF0Oɨ4!Yhss J`BPi\"Yߌ(=-H2<=v + +px을-!1;f"!r8 +pPqhr%p;a¬Y%h F%;N*NF,); d8 + jV7 D?\iHug 96ˇYxMF}UB0QxJAP!F(f1xY9`$]g{bazym)qF8Oɨ$ =A) 5` 9*w@v#$Yߌ(= ϫGr@`ffhjq<PS#@r`f `u"ISv@p.A1#=(lnF>Hug`:C#@azym)pF^xMF}/"`ȣp;bx~ud"Yߌ(=#8#@#903p(@3Px!(J ;@. FY%X}Cy6Kv@W0186v@Z#ׯ71da\ RX~ F(); d8v; [`iD$:s3 +pPqhdb|r]N\;hAlKX"@\uCLL2L+v#H_z>y +Ɵ >%%4܇$,JY;@"<ޭfk[MD8ZNG ;ӲأE@P#@j}t@D@dV;2L=<%Hq@GjQx[`4`'P1P;PFJT 8 @8ju#@9]!(P1y]^7uCP"bd=$82B^ @8@"pt@0Lv^GVQ׵&[`(HT)=9UE@CjJ :wCro "ӡv'@"p@p:@e HE@t3_`vopG 0[FrD YLp'c9 Px[ @ :`:`\"@A:A\А✆_nvyq x27 +d=!(@1o@4_O"<@خD ?CX3uDy[F]׶l`CP"Sz*9@",B@tD5;@"pG ZD5YLp'e[ǤH=P B9nqvq P;AǓCp@pHqN/฀K!HBm0@8%(}0<nɀLM"<}Jph8D E:O@خD y[F]׶  ?crJ>:@e HГE@0!(@Cg*q @Om,  H= E9nquFin_QAL2:A94x-<OA"h8_JS$`>y pO`4$(c LM" +pt@!(@DVQ׵&O@4_O"Sz* @EJPE@ꆊQ)>:@e tCP",jX&8 pc+o:@"tt toe[圆_ivyq qErq 7d1@!Hw Zu %w٨VLM"Sz* !(@F y:"xdxfە *ql ᭿E[{$)t@ }JoX:@"tt  + N +4F :h8Y^"l{>{?`(Hr 7d:#;@"!(@ 8`Q:9j6꺶dp<:NG 5+@H 9 %Y:@t>:@e tCP",jX&8 pox:@"tt  f0-#=246 P%ˋeG)}0<Cc'yrFC"pt@$j6꺶d='z}}t@.|JPE@h8D%9:"v%(}t@juCE@gxdV;2+P$KD9nsDU@LkH\3cH\p0LvDMwFrD5i|q)^㲀t<9Iw@׵-np}azB!HJnhHГ@$G'z} ٨hrχD%=]xs*lW";juCE@gxp}$@ЇDߋ@8@"oY]N7ngDUqJÍ?t^-ɨ @" +ǻ?z2n`1v]Հ#`Z۽zL~~? +6WP k2|q@\~֫ nurVo, wl@ o?۹ `p{9*cv?> +JϏi-+ giGa]K6 zm׹_.Z#Q]0!BP۱{d֚HA2P*_ٷ=' @@r\!ü?r2&O)!r:~M_-C0DaO:?b|>I?忼_N> =?== rvz2`[_ly&&?c/Яo лdI?wo~s_^O{K?tsGH|i?,)A_#|a?b˒>􃀻w{['3֏{#ҽ/ZT5p/_/s.vA={0iA>CAW"X k}Q3*ݳ/GJ^}R+{Ax(n}~ Q4=:JeKr|>J[/Wa2~&ܿ|XЏO)ypϑ!n{={z_1:AC>oږEUrϡ;8!?ZH,y%#%V*#B/ q_gBQC@{Zq~{(`X,݇_{(Tx% +{ܷ WM>0!},GW CtA֎o 7pϗ>ܯ~{oږEpJ }sqTz)%}<}:9 +%}eK mܨ{CQ E{Zq>oC,yIÃ/ܽk!n9`^=c[pQVBt?_H},G~#а^o'!g:|6P!l;胾mY`pi|(#%V~!` Ep;~o/Rҏk~_D.K^Kw}flWa{7 =@ /$_>Q`N?={z9@݀N0 +}#M۲}F܀b7t/yp{V@x M+yp55)&׻w)++#0{Zq~{3Tm/蟍/ocudޅ W@vno0_=>= 9W^=c[!?˯?__"L}XЏG+b8j 8;\=<γ{xpbh>stream + +endstream endobj 249 0 obj <>stream +HyTSwoɞc [5, BHBK!aPVX=u:XKèZ\;v^N߽~w.MhaUZ>31[_& (DԬlK/jq'VOV?:OsRUzdWRab5? Ζ&VϳS7Trc3MQ]Ymc:B :Ŀ9ᝩ*UUZ<"2V[4ZLOMa?\⎽"?.KH6|zӷJ.Hǟy~Nϳ}Vdfc +n~Y&+`;A4I d|(@zPZ@;=`=v0v <\$ x +^AD W P$@P>T !-dZP C; t +@A/a<v}a1'X Mp'G}a|OY 48"BDH4)EH+ҍ "~rL"(*DQ)*E]a4zBgE#jB=0HIpp0MxJ$D1(%ˉ^Vq%],D"y"Hi$9@"m!#}FL&='dr%w{ȟ/_QXWJ%4R(cci+**FPvu? 6 Fs2hriStݓ.ҍu_џ0 7F4a`cfb|xn51)F]6{̤0]1̥& "rcIXrV+kuu5E4v}}Cq9JN')].uJ + + wG x2^9{oƜchk`>b$eJ~ :Eb~,m,-Uݖ,Y¬*6X[ݱF=3뭷Y~dó Qti zf6~`{v.Ng#{}}c1X%6fmFN9NN8SΥ'g\\R]Z\t]\7u}&ps[6v_`) {Q5W=b +_zžAe#``/VKPo !]#N}R|:|}n=/ȯo#JuW_ `$ 6+P-AܠԠUA' %8佐b8]+<q苰0C +_ XZ0nSPEUJ#JK#ʢi$aͷ**>2@ꨖОnu&kj6;k%G PApѳqM㽦5͊---SbhZKZO9uM/O\^W8i׹ĕ{̺]7Vھ]Y=&`͖5_ Ыbhו ۶^ Mw7n<< t|hӹ훩' ZL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km  +endstream endobj 234 0 obj [/Indexed 233 0 R 126 250 0 R] endobj 246 0 obj <>/Filter/FlateDecode/Height 570/Intent/RelativeColorimetric/Length 6289/Name/X/Subtype/Image/Type/XObject/Width 514>>stream +HBEm 6A4Q Zq9[XXAy?2kϽ#6!6^}^s G d]cş=\=Շ7rr8N!qNN `ϭݛ/]-EnXpm ? l_eT*+JRV[, vz'իVkzFVo fGٯl~ik6jz &˾z͏wm<L;ud׫9uN'~ZM  Ho_~Y&/&vV/W\z@A <$];oKnjcxQ-U8mt󳝷* >QMj( aF^n.:^<iYVةeEQ-47eՠ##߾zrobxsW?i@{?e|w=J-#;>ۆH=*--;>ۂ@=Ws lۆA}b_3`two7M B~oA7iA, fc.,~ ӂJ%hW^Pxv yb^OO_6d/a12 ({F]h m Zk`_g#2m>2@+{ة2.( #br5Pȋ_>r>ZӀ ].k^O V݂nomt<H\>:o'EOon=:oKt $ o<^|\W@8n i z?|sm &wWgf-@/WfJ]ӂ J5㔈o4ZP)iX i@/H4`4`ZP'@?4:4:@ #Bryit59 /I'؟Tk#LF p7F].JXh/LFGxl R +O/ H@,b9Z4/@K @ D (i^6d.@)XAi]FX׀ PVg i``VK\> Mo,4n.,C h ZVXnc xscǭ4i]FXL_jZy 'J4hM'/@}>4 }tAkzh @ +Zc>z^h IRDL" P#K( $ @5!``|wunV݂ !DXm40-{IT[Fh!`D%9@Dih #  ]4?~@GV18zu1@Xh/JB@EkRUDi!@< "NB.=h[EC}pO ^ +5j!`I@P 5ВCW@!nc HxYL_jZy Be|B)h`-xx;h \: 3=/zb4G&@*i[PI4{绫v$h tR(y* tL 2_ B&рjACH 4Qx00-G:[H#B:jTB>4 `j%D(  XL_jZy @P4v*X B +A'D (J7rl5 #<]U_fJ]ӂ7P-(A Xk!@рiA @# w HXHB! Ob4`1HBWF}@!I +i!@ (4 a]\'C|  r4aj%Anc },/Z5< YGk9!J|[!@Bqxѓ DDBD9@PLͪ[` oWրiA @ d J|5Dih  HǑ\T,h!@'@j tk!@y׫B>k HR4 CkRD@ǭ"0iWHAB@в84pU}ZYDd| nǕEk ^ + 4px;Z5Ci6G,!@br5Ps]IA hM&p +vڧI*Nh \:o N +:Bqx㭁0j s !DP D** J7rL5B@` !@A0y:k7ntx +fJ]ӂL7P-Z: k!@рiA @P# K YB!w (O4c1BWg!F}@P"C:k!@%w %24 B @v@\r>jB@ 5b=J>Rӗ{@,5 0B`-Gkz8k!@|8qB`_Jxk!( $ȱB`|wunVS hy* tL [Bh@ G ~D%@4`4`ZgLH(쫀n(ld2KifQ{ >nj!`d PB,vCv50u.Zy@E ̢4P50x L#_HB@dB@ŭ9'`AiƖRr50 ifaBaNi 4p$,[4 , ւlR<<j+@fqk!`@$ xto+L":iF&i 4[P i \HBրnAI`߶5 + +B) Dd](B,; H9T$fL5 u( T٤D PP +fyn=JWB5B 0ˠ#R6Dk!ihP, :B& BQI) uZԂ58 X k um[  +BL xb5`U +B\2&P5ABL X5`AB@0^BN!H qk@ 5`ali %JNH7 zL OwJQ#Iaz'd0ՀDp4P-f4`P+]BAG>R!IZp,_=5sn54J_eSX"C@ >_;#w/dϏ?YNyxKߑ5ӷo/ YhGӧ~__w߬w_O?}g}5d0`(H;^ߞ_ޅ@~ͳT^ŧǷb^jW|ﹾ!4+K]|gK>7]/{B^֖?e/CVlmmzoP| +=-(;=I[ϗo_y] Պr_;n~I߃42^Hw=Ho8'}{aelC\+=ND7w)^_a] +6:.O@8e!Hߣݟ?ݟJքgPY|LC !ZAE!O!b+B`}/C`}_ !oɻ?G}q!_WKOB)*>+#$oe>a!.kHɦBGѻ??">4\!-+CLC 2 ҀpKߧ }^8&GCL8!1NI߷ }&tv|sI߯ }.fB47Ha嫿totOQ|Ϗ_P|xP!`k_ҟ)B6=2zV+>H_,T ?4̻S|kHs3рj5E[( c P G|->H_$G H_jKW|KM%@PV(mC_~TN~~הӗ_D\\k_Sû/UD^SGb_W(!`{>RV=^w2>G@y@@*/7wǧfh?%}/'3uZ9Gm勥rZjen|Hװb:p4HeWBxM=~6Z_՘Ip4Hҙl6Gd6 8g tDcD"IhC}8 \\#&: 8"d=np: }3oc|w3p |?;Xg00d* 8 09% +endstream endobj 250 0 obj <>stream +yxxwwvvuu~s~s~s}r}r}q|q|p|p|n|nzmzmzlzlyjyjyjxixiwhwhwhvhvfvfveucucububs`s`s`r_r_q_q]q]p\p\pZpXnXnXnXmVmVmVlVlUlUjUjSjSjSjQjQiQiOiOhMhMhMhKhKfKfIfIeIeIcIcGcGcGcEbEbE`B`B`B`@`@`@_@_=_=_=];];\;\8\8\8\8Z8Z5Z5X5X5X2X2V2~V2}V.}V.|U.zU*zU*zS*yS*xS*wS&wQ&vQ&vO&uO +endstream endobj 238 0 obj <> endobj 239 0 obj <> endobj 240 0 obj <> endobj 241 0 obj <> endobj 242 0 obj <> endobj 243 0 obj <> endobj 256 0 obj <> endobj 257 0 obj <> endobj 258 0 obj <> endobj 259 0 obj <> endobj 255 0 obj <> endobj 260 0 obj <> endobj 261 0 obj <> endobj 262 0 obj <> endobj 254 0 obj <> endobj 263 0 obj <> endobj 264 0 obj <> endobj 253 0 obj <> endobj 265 0 obj <> endobj 252 0 obj <> endobj 266 0 obj <> endobj 251 0 obj <> endobj 267 0 obj <> endobj 226 0 obj <> endobj 236 0 obj <> endobj 237 0 obj <> endobj 269 0 obj <> endobj 270 0 obj [0.0 0.0 0.0] endobj 271 0 obj <>/ProcSet[/PDF/ImageB]/XObject<>>>/Subtype/Form>>stream +q +/GS0 gs +123.1200049 0 0 133.6800053 16.3960667 14.64519 cm +/Im0 Do +Q + +endstream endobj 272 0 obj <> endobj 274 0 obj <>/Filter/FlateDecode/Height 557/Intent/RelativeColorimetric/Length 7774/Name/X/Subtype/Image/Type/XObject/Width 513>>stream +HZEmۄ WDT뜪|)̪8U;sRc~go){]eE@bm*P~<09T |.#onA4@+N"?>>v]Kqcju*/'yjZWk:Tp7A^?h|6fC+FH +l`)GYۭsz]U ( ='[Ͱ^Cᛒr6+@G4pt-?囓2;&iu?ߞJ~2>tO [mQM~hH x ,I~$k@6pǧ%1VN3'`O|Y&_{oЉxH)yϘ\۩pjo=%pͽ'1]$v9E=|<^'`'vO;,g +(cBqO ځtC3sO~O*9$v)]sV53_ʚ>97ї<#903 5ҞYp2j6|$Iv\ x MHϬY%h=o7#ϲYg#bp;m(v@>O{iHϰ.T/=$); d8 +?OWM,/;(k@?7Hu35z_S!R<_^/dWmt?^Zpߣ&#] \(r@*;,oN.8wyH Rt`:f c؝5UHΐn'3` @OV:]r5@ϧ͒倭^ 08649 {x(쀋A-'`[ZX+); d8z +@ve5 0 (땁$]g2QI6ˇY((Oɨ8-㕁d((PW* +Ȑ,oNp*TZcA-㕂uTsS+jπz=(r`f yx`R.9(fq@V0D0868 [>F쀋A-'#@rF@oW +^Vw$:s#8#@azymir@6i~79#@dT#ׯcȠm<E \psH["$4#@#903Tx +49 }b;Np;aY%~0,]U8wQl~ur%0eGAR`H񲚿s ؎8@$]gP0`CPazymqF0Oɨ4!Yhss J`BPi\"Yߌ(=-H2<=v + +px을-!1;f"!r8 +pPqhr%p;a¬Y%h F%;N*NF,); d8 + jV7 D?\iHug 96ˇYxMF}UB0QxJAP!F(f1xY9`$]g{bazym)qF8Oɨ$ =A) 5` 9*w@v#$Yߌ(= ϫGr@`ffhjq<PS#@r`f `u"ISv@p.A1#=(lnF>Hug`:C#@azym)pF^xMF}/"`ȣp;bx~ud"Yߌ(=#8#@#903p(@3Px!(J ;@. FY%X}Cy6Kv@W0186v@Z#ׯ71da\ RX~ F(); d8v; [`iD$:s3 +pPqhdb|r]N\;hAlKX"@\uCLL2L+v#H_z>y +Ɵ >%%4܇$,JY;@"<ޭfk[MD8ZNG ;ӲأE@P#@j}t@D@dV;2L=<%Hq@GjQx[`4`'P1P;PFJT 8 @8ju#@9]!(P1y]^7uCP"bd=$82B^ @8@"pt@0Lv^GVQ׵&[`(HT)=9UE@CjJ :wCro "ӡv'@"p@p:@e HE@t3_`vopG 0[FrD YLp'c9 Px[ @ :`:`\"@A:A\А✆_nvyq x27 +d=!(@1o@4_O"<@خD ?CX3uDy[F]׶l`CP"Sz*9@",B@tD5;@"pG ZD5YLp'e[ǤH=P B9nqvq P;AǓCp@pHqN/฀K!HBm0@8%(}0<nɀLM"<}Jph8D E:O@خD y[F]׶  ?crJ>:@e HГE@0!(@Cg*q @Om,  H= E9nquFin_QAL2:A94x-<OA"h8_JS$`>y pO`4$(c LM" +pt@!(@DVQ׵&O@4_O"Sz* @EJPE@ꆊQ)>:@e tCP",jX&8 pc+o:@"tt toe[圆_ivyq qErq 7d1@!Hw Zu %w٨VLM"Sz* !(@F y:"xdxfە *ql ᭿E[{$)t@ }JoX:@"tt  + N +4F :h8Y^"l{>{?`(Hr 7d:#;@"!(@ 8`Q:9j6꺶dp<:NG 5+@H 9 %Y:@t>:@e tCP",jX&8 pox:@"tt  f0-#=246 P%ˋeG)}0<Cc'yrFC"pt@$j6꺶d='z}}t@.|JPE@h8D%9:"v%(}t@juCE@gxdV;2+P$KD9nsDU@LkH\3cH\p0LvDMwFrD5i|q)^㲀t<9Iw@׵-np}azB!HJnhHГ@$G'z} ٨hrχD%=]xs*lW";juCE@gxp}$@ЇDߋ@8@"oY]N7ngDUqJÍ?t^-ɨ @" +ǻ?z2n`1v]Հ#`Z۽zL~~? +6WP k2|q@\~֫ nurVo, wl@ o?۹ `p{9*cv?> +JϏi-+ giGa]K6 zm׹_.Z#Q]0!BP۱{d֚HA2P*_ٷ=' @@r\!ü?r2&O)!r:~M_-C0DaO:?b|>I?忼_N> =?== rvz2`[_ly&&?c/Яo лdI?wo~s_^O{K?tsGH|i?,)A_#|a?b˒>􃀻w{['3֏{#ҽ/ZT5p/_/s.vA={0iA>CAW"X k}Q3*ݳ/GJ^}R+{Ax(n}~ Q4=:JeKr|>J[/Wa2~&ܿ|XЏO)ypϑ!n{={z_1:AC>oږEUrϡ;8!?ZH,y%#%V*#B/ q_gBQC@{Zq~{(`X,݇_{(Tx% +{ܷ WM>0!},GW CtA֎o 7pϗ>ܯ~{oږEpJ }sqTz)%}<}:9 +%}eK mܨ{CQ E{Zq>oC,yIÃ/ܽk!n9`^=c[pQVBt?_H},G~#а^o'!g:|6P!l;胾mY`pi|(#%V~!` Ep;~o/Rҏk~_D.K^Kw}flWa{7 =@ /$_>Q`N?={z9@݀N0 +}#M۲}F܀b7t/yp{V@x M+yp55)&׻w)++#0{Zq~{3Tm/蟍/ocudޅ W@vno0_=>= 9W^=c[!?˯?__"L}XЏG+b8j 8;\=<γ{xpbh> endobj 268 0 obj <> endobj 275 0 obj [0.0 0.0 0.0] endobj 276 0 obj <>/ProcSet[/PDF/ImageB]/XObject<>>>/Subtype/Form>>stream +q +/GS0 gs +123.3600049 0 0 136.8000054 9.0872765 1.4457679 cm +/Im0 Do +Q + +endstream endobj 277 0 obj <> endobj 278 0 obj <>/Filter/FlateDecode/Height 570/Intent/RelativeColorimetric/Length 6289/Name/X/Subtype/Image/Type/XObject/Width 514>>stream +HBEm 6A4Q Zq9[XXAy?2kϽ#6!6^}^s G d]cş=\=Շ7rr8N!qNN `ϭݛ/]-EnXpm ? l_eT*+JRV[, vz'իVkzFVo fGٯl~ik6jz &˾z͏wm<L;ud׫9uN'~ZM  Ho_~Y&/&vV/W\z@A <$];oKnjcxQ-U8mt󳝷* >QMj( aF^n.:^<iYVةeEQ-47eՠ##߾zrobxsW?i@{?e|w=J-#;>ۆH=*--;>ۂ@=Ws lۆA}b_3`two7M B~oA7iA, fc.,~ ӂJ%hW^Pxv yb^OO_6d/a12 ({F]h m Zk`_g#2m>2@+{ة2.( #br5Pȋ_>r>ZӀ ].k^O V݂nomt<H\>:o'EOon=:oKt $ o<^|\W@8n i z?|sm &wWgf-@/WfJ]ӂ J5㔈o4ZP)iX i@/H4`4`ZP'@?4:4:@ #Bryit59 /I'؟Tk#LF p7F].JXh/LFGxl R +O/ H@,b9Z4/@K @ D (i^6d.@)XAi]FX׀ PVg i``VK\> Mo,4n.,C h ZVXnc xscǭ4i]FXL_jZy 'J4hM'/@}>4 }tAkzh @ +Zc>z^h IRDL" P#K( $ @5!``|wunV݂ !DXm40-{IT[Fh!`D%9@Dih #  ]4?~@GV18zu1@Xh/JB@EkRUDi!@< "NB.=h[EC}pO ^ +5j!`I@P 5ВCW@!nc HxYL_jZy Be|B)h`-xx;h \: 3=/zb4G&@*i[PI4{绫v$h tR(y* tL 2_ B&рjACH 4Qx00-G:[H#B:jTB>4 `j%D(  XL_jZy @P4v*X B +A'D (J7rl5 #<]U_fJ]ӂ7P-(A Xk!@рiA @# w HXHB! Ob4`1HBWF}@!I +i!@ (4 a]\'C|  r4aj%Anc },/Z5< YGk9!J|[!@Bqxѓ DDBD9@PLͪ[` oWրiA @ d J|5Dih  HǑ\T,h!@'@j tk!@y׫B>k HR4 CkRD@ǭ"0iWHAB@в84pU}ZYDd| nǕEk ^ + 4px;Z5Ci6G,!@br5Ps]IA hM&p +vڧI*Nh \:o N +:Bqx㭁0j s !DP D** J7rL5B@` !@A0y:k7ntx +fJ]ӂL7P-Z: k!@рiA @P# K YB!w (O4c1BWg!F}@P"C:k!@%w %24 B @v@\r>jB@ 5b=J>Rӗ{@,5 0B`-Gkz8k!@|8qB`_Jxk!( $ȱB`|wunVS hy* tL [Bh@ G ~D%@4`4`ZgLH(쫀n(ld2KifQ{ >nj!`d PB,vCv50u.Zy@E ̢4P50x L#_HB@dB@ŭ9'`AiƖRr50 ifaBaNi 4p$,[4 , ւlR<<j+@fqk!`@$ xto+L":iF&i 4[P i \HBրnAI`߶5 + +B) Dd](B,; H9T$fL5 u( T٤D PP +fyn=JWB5B 0ˠ#R6Dk!ihP, :B& BQI) uZԂ58 X k um[  +BL xb5`U +B\2&P5ABL X5`AB@0^BN!H qk@ 5`ali %JNH7 zL OwJQ#Iaz'd0ՀDp4P-f4`P+]BAG>R!IZp,_=5sn54J_eSX"C@ >_;#w/dϏ?YNyxKߑ5ӷo/ YhGӧ~__w߬w_O?}g}5d0`(H;^ߞ_ޅ@~ͳT^ŧǷb^jW|ﹾ!4+K]|gK>7]/{B^֖?e/CVlmmzoP| +=-(;=I[ϗo_y] Պr_;n~I߃42^Hw=Ho8'}{aelC\+=ND7w)^_a] +6:.O@8e!Hߣݟ?ݟJքgPY|LC !ZAE!O!b+B`}/C`}_ !oɻ?G}q!_WKOB)*>+#$oe>a!.kHɦBGѻ??">4\!-+CLC 2 ҀpKߧ }^8&GCL8!1NI߷ }&tv|sI߯ }.fB47Ha嫿totOQ|Ϗ_P|xP!`k_ҟ)B6=2zV+>H_,T ?4̻S|kHs3рj5E[( c P G|->H_$G H_jKW|KM%@PV(mC_~TN~~הӗ_D\\k_Sû/UD^SGb_W(!`{>RV=^w2>G@y@@*/7wǧfh?%}/'3uZ9Gm勥rZjen|Hװb:p4HeWBxM=~6Z_՘Ip4Hҙl6Gd6 8g tDcD"IhC}8 \\#&: 8"d=np: }3oc|w3p |?;Xg00d* 8 09% +endstream endobj 221 0 obj <> endobj 279 0 obj [/View/Design] endobj 280 0 obj <>>> endobj 225 0 obj <> endobj 281 0 obj <> endobj 282 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 17.0 +%%AI8_CreatorVersion: 23.0.3 +%%For: (Drake Costa) () +%%Title: (VuePress Icon.ai) +%%CreationDate: 5/29/2019 2:12 PM +%%Canvassize: 16383 +%%BoundingBox: 87 29 218 177 +%%HiResBoundingBox: 87.087276845743 29.4457671384607 217.516072292132 176.325199464285 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 13.0 +%AI12_BuildNumber: 585 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0.450980395078659 0.796078443527222 0.552941203117371 (R=115 G=203 B=141) +%%+ 0.172549024224281 0.196078434586525 0.278431385755539 (R=44 G=50 B=71) +%%+ 0.184313729405403 0.596078455448151 0.411764711141586 (R=47 G=152 B=105) +%%+ 0.345098048448563 0.376470595598221 0.501960813999176 (R=88 G=96 B=128) +%%+ 0 0 0 ([Registration]) +%AI3_Cropmarks: 78 28 222 172 +%AI3_TemplateBox: 149.5 100.5 149.5 100.5 +%AI3_TileBox: -156 -296 456 496 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 2 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -68.1978021978011 205.846153846153 5.05555555555556 1870 954 26 0 0 5 120 0 0 0 1 1 0 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:0 0 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 283 0 obj <>stream +%%BoundingBox: 87 29 218 177 +%%HiResBoundingBox: 87.087276845743 29.4457671384607 217.516072292132 176.325199464285 +%AI7_Thumbnail: 116 128 8 +%%BeginData: 12995 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FDFCFFFDFCFFFDFCFFFD84FFA8FFFFFFA8FDD7FFA8FD0FFFA8FD74 +%FFA8FD50FFA8FFFFFFA8FFFFFFA8FD1BFFA8FDE7FFA8FD74FFA8FD34FFA8 +%FFFFFFA8FD3AFFA8A8FD72FFA8FD30FFA8FD43FFA8FD74FFA8FD2CFFA8FD +%45FFA8A8A8FD2CFFA8FD45FFA8FD2EFFA8FD45FFA8FD2CFFA8FD35FFAFAE +%A8FD3CFFA8FD2FFFA8AE8383585F34AEFD0EFFA8FFA8FD55FFA87E845953 +%525F5E5F585F5E5FFD10FFA8FD28FFA8AE848A5FFD28FF7E282E28532853 +%345F585F345F83FD0FFFA8A8A8FD25FFAE838983898383A8FD1AFFA984A8 +%7D7D7DFD07FF525352532E53585F585F5E5F34AFFD10FFA8FD25FF845F89 +%83895F895F83CAFD0FFFA8FFAEAE84AE8383585328522852282E53FD05FF +%A82E285328522859345F345F345FA8FD11FFA8FD24FF838A8389838A8389 +%83FD11FFFD045F5E5F5E5F595352535253525353FD04FF7E285352532859 +%5E5F585F585F83FD36FFA8835F8983895F898383A8FD10FFAE5E5F585F5E +%5F585F585328532E53285252A9FFFF5252285228522E5F345F345F34A8FD +%12FFA8FD24FF8389838A838983895FAEFD12FF5F5F5E5F5F5F5E5F595328 +%5352532E532EAFA8522E5228532859345F345F345FAFFD13FFA8FD22FFA8 +%835F895F895F895F8383FD13FF5E5E345F585F345F345228522852285228 +%532852282E2852345E345F343459FD13FFA8A8A8FD22FF7D83838A838983 +%8A8383FD14FFFD045F585F5E5F5853285328532E5228532E5228532E5F34 +%5F345F34AEFD14FFA8FD23FFA858895F8983895F895EA8FD14FF5F5F585F +%345F345F345328522852282E2852282E28593458345F3458A8FD15FFA8FD +%22FF7E83838983898389838384FD15FF5F5F585F345F585F345928522852 +%285228522852345F345F343A5FFD34FFA87E535352532E895F835F895F83 +%5E83CBFD15FF5F3A345E345F345E34522828282E282827282E3AFD053484 +%FD16FFA8FD1CFFA8532E53535352595F89838A8389838983FD17FF845F34 +%5F345F345F34592852285228522859345F345F345FAEFD17FFA8FD1BFF7D +%28532E535253285F5F835F895F835F83A8FD17FF8334345F3458345F3434 +%27282828272EFD063458FD19FFA8FD1AFF2E53535352535353588983895F +%8983895E83FD18FF843A345F345F345F3458285228282E5F3434345F3484 +%FD18FFA8FD1AFFA85228532E53285328525E895F835F835F5F58FD19FF84 +%343458FD0634272827FD0734A8FD19FFA8FD1AFF52535353525353535289 +%83895F8983895F83A8FD19FFA85F345F345F345F34592828345F34353434 +%59FD35FF7D28532E532E53285258895F835F895F835EA8FD1AFFA85FFD08 +%342EFD05340B84FD1AFFA8FD1AFF7E525253525352532E5F5F895F895F89 +%5F8383FD1BFFA85F343434353434343BFD0634A8FD1BFFA8FD19FFA82853 +%28532E532852345F5F835F835E835E83A8FD1BFFA85F12FD0934123434FD +%1CFFA8A8FD19FF532E535253525352585F895F895F895F835FFD1EFF5F12 +%3534343435343434353484FD1CFFA8FD1AFF53522E532E5328532E5E5F83 +%5F835F835F5F83FD1EFF5F0BFD07341234A8FD1DFFA8FD19FF8428532E53 +%52532E5358895F895F835F895F83FD1FFF8312FD0834FD1FFFA8FD18FF7D +%52285328532E5328525E5F5E835F5F5E5F58FD20FF830B34343412340B83 +%FD1EFFA8A8A8FD18FF52535253525352532E835F895F835F895F5FA8FD20 +%FFAE34343435343484FD1FFFA8FD19FF53285328532E53285258835E835F +%5F5E835E83FD21FFA812FD0434FD21FFA8FD18FF7D5252532E5352532859 +%5F835F835F835F8359FD22FFAE34341283FD3AFFA827532852285328522E +%5F5F5F5E5F5E5F5883A8FD22FFAE341284FD21FFA8FFA8FD16FFA8535253 +%2E53525328585F835F895F835F835FA8FD23FFAF34FD23FFA8FD18FF2853 +%285228532852285F5F5F5E5F5F5F5E5F83FD47FFA8A8A8FD17FF7D285352 +%532E53525234835F5F5F835F835E83FD48FFA8FD18FF7D28285328522853 +%2852585F5E5F585F5E5F34A8FD48FFA8FD17FFA8285352532E5352532E5F +%5F835F835F835F5F84FD60FFA852285328522853282E345F5E5F5E5F5E5F +%3483FD2DFFAFA8A87E7E7DA8FD14FFA8FD18FF525228532E53285328585E +%835F5F5E835F5F58FD27FFA8FFA8A87DA87DA87EA8A8A97DA8FD14FFA8FD +%17FF7D28522852285228522E5F585F5E5F585F58587DFD1FFFA8FFA8A87D +%A87D7E7D847EA8A8FFA8FD04FFA87DFD13FFA8A8A8FD16FF7E2E2E532E53 +%2E53285258835F5F5F835F5F34A8FD1CFFA8A87EA87EA87DA8A8AFA8FD0B +%FFA8A8A9FD13FFA8FD17FFA828522852285228522E58585F5E5F585F5E5E +%7DFD16FFA8A8A87D7E7D847DA8A8AFA8FD11FF7DA8FD14FFA8FD17FF5328 +%5328532E532852345F5E5F5F5F5E5F5E83A8FD14FFA87DA87EA9A8FFA9FD +%0EFFA87DA8A8FD04FFA87DFD2CFF522E2852285228522858585F345F585F +%585F34A8FD14FF7DA8A8FD0BFFA8A87EFD05FFA8A87DA8FD04FFA87EA8FD +%13FFA8FFA8FD15FF7E285328532E5328532EFD055F5E5F5F5F83FD14FFA9 +%84FD0BFFA8A87EA8A8FD05FF84A97EFD05FF7EA9FD14FFA8FD16FF7D2828 +%52285228522852345F585F585F585F3483A8FD13FFA87EA8FFFFA87D7E7D +%FD04FFA87EA87EA8FD05FFA87EA8A8FD04FFA87DFD15FFA8FD16FF28532E +%5228532E5228585F5F585F5F5F585F58FD15FF7DA9FFFFFD04A87DA9FFFF +%7EA8A8A87DFD05FFA8A87EFD04A8FFA884A8FD13FFA8FD17FF522852282E +%285228282D5F585F345F585F34587DFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF +%FFFFA8FFA8A87DFFFFFF7EA87EA87DA8A8A87EA87E7EA8FFA8A87EA87EA8 +%7D7E7EFFFFFF7DA8FD04FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD16 +%FF53522E5228532E522852585F5E5F5F5F5E5F3483FD14FFA8A8FFFFFFA9 +%FD04A87EA884A9A8A87EA8FFFFA8A87EA8A8A9A8FD04FFA87EFD2BFF7E27 +%52282E2852282E2758585F345F585F345F34FD14FFA97DA9FFFFA8A87EA8 +%A8A87EA8A8FF7EA87DFFFFFFA9A97EA87EA9FD04FFA87EA8FD13FFA8FD16 +%FFA82E285228522852284C2E5F5E5F585F5E5F345FA8FD13FFAFA87EFFFF +%FF7EA87EFFA8A8A8FFFFA9A8A8A8FD05FFA8A8A8FD05FF7EA8FD14FFA8FD +%16FF28282852282E2852282E345F345F345F345E34A8FFFFA8FFFFFFA8FF +%FFFFA8FFFFFFA8FFFFFFA8FF7E7EA8FFA8A87E84A8FFA8A9FFFFA8A87DA8 +%FD06FFA8FFA8FFFFFFA8A87DFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8 +%FFFFA8A8FD15FF5328532852285328522E5F5F5F585F5E5F585F83FD14FF +%A97DFFFFFFA8A97EA8FD06FFA8A8A8FD0DFFA8A8A8FD13FFA8FD16FF7D28 +%2852282E2852282E345F345F345F345F345FA8FFAFFFFFFFAFFFFFFFAFFF +%FFFFAFFFFFFFA9FFA87EA8FFFFA97EA87DFD05FFA8FFFFFFAFFD07FFAFFF +%A8A884A87EFD05FFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFA8FD15FFA827 +%522852285228522858345F585F345F585F34FD15FF84A8FFFFAFA8A8AFFD +%0EFFA8AFA8A87DA87EA8A8FD17FFA8FD14FFA82E2828282E282E28282D5E +%345F345F345F34347DFFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8A8 +%7DFFA8FFA9FD05FFA8FFFFFFA8FFA8A87EA87D7E7DA87EA8A8FFA8FFA8FF +%AFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFA8A8A8FD14FF522E2852 +%28522852282E345F585F345F585F3483FD14FFA8A8A8FD09FFA8A984A87E +%A87DA8A8AFA8FD1FFFA8FD15FF7D272E2852282E282E2734345F345F345F +%345834FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD05FF7EA8FFFFAFFFA8A8 +%7E7E7D847DA884A9A8FFA8FD07FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF +%A8FFFFFFA8FFFFFFA8FFFFFFA8FD14FF7D2828522852285228522E5F345F +%345F345F345883FD13FFAFA87DA87EA87D847DA8A8AFA8FD2BFFA8FD13FF +%A8052E2828272E2828272E345E345F3458345F3483CBFFA9FFA8FFA9FFA8 +%FFA9FFA8FFA9FFA8FFA9FFA8A87DA884A9A8FFA8FFFFFFA8FFA9FFA8FFA9 +%FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8 +%FFA9FFA8FFA8FFA8FD12FFA95228522852285228522859345F345F345F34 +%5E7DFD4BFFA8FD14FF2E282828272E282827282E5F345F3458345F3459A8 +%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF +%FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8 +%FFFFFFA8FFFFFFA8FFFFFFA8FFA8A8A8FD13FF7D275228522852282E2758 +%345F345F345F345F34A8FD4AFFA8FD14FF7D27272E2728272E27282D5E34 +%34345EFD043459FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD14FF28522852 +%285228522852345F345F345F345F3459A8FD47FFA8A8A8FD15FF52272E28 +%28272E282827FD04345F3434345834A8FFFFAFFFA8FFAFFFA8FFAFFFA8FF +%AFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFF +%A8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FD05FFA8AFA8A87DA8A8FFA8FD +%14FF53282852282E285228282D5F345F345F345F343483FFAFFFFFFFAFFF +%FFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFF +%AFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFD07FFA8FFA8837DFD06A8FFA8 +%FD15FF7D0528272827282728272EFD093459A8FFA8FFA8FFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FFA8FFA9FFA8FFCBCBA88459582D340B7DA8A8A8FFA8FF +%A8FD16FFA8282852282E2852282E2759345F345F345F345F34AFFD34FFA8 +%FF7D8358582E342E34343459FD1EFF2828272E2728272E27282D5FFD0834 +%A8FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FFA8FFA9FF +%A8FFA9FFA8FFA8FFA8FFA9FFA8FFFFFFA8FFA87D598359582D340B342DFD +%063459A8FD1DFF53272E2852282E2852272E345F345F345F343434A8FFFF +%AFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFA9FF +%FFFFAFFD07FFA8A87D7D2E342D340BFD0434583434345F3434345F34A8FD +%1DFF5228272827282728272827FD093458FFA8FFA8FFA8FFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA9FFA8AFA8A87D7D522E +%2D340B342DFD113459FFA8FD1BFFA8272E2852282E2852282E345F345F34 +%5F345F3459A8FFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFFFFFFAFFD09 +%FFA8A859592E342E342EFD06345F3459345F345F345F345F345F345F345F +%345FCAFD1CFFA828272827282728272827FD09342DA8FFFFA8FFA8FFA8FF +%A8FFA8FFA8FFA8FFA8FFA8FFAFFFCBFFCBFFA8A87D7D2E342D2E0B342E34 +%2EFD193459FFA8FD1CFFFD0428272E2828272E2E34345F3434345F34347D +%FFFFFFA9FFFFFFA9FFFFFFA9FFFFFFAFFFFFFFA9FFA884598359582E342D +%342EFD0834593434345F3434345F3434345F3434345F3434345F343434A8 +%CAFD1DFF520028272827282728272EFD093458A8FFA8FFA8FFA8FFA8FFA8 +%FFA8FFA9FFA8A87D592D340B2D0B340B342DFD1F340B342D59A8FFA8FD1C +%FF7D28282E2752282E27522734345F3434345F343434A8FFFFAFFD07FFA8 +%FFA88358582E340BFD0834593434345F3434345F3434345F3434345F3434 +%345F3435345F3434345834342E5959A8A8FD1FFFA8002827282728272827 +%282EFD09342EA8CBFFA8FFA88459582D342D340B340BFD25342D2E057D7D +%A8A2CAA8A8A8FD1EFFA82E272E2828272E2828272E343434353434343534 +%342E837D7D2E342D2E0B3434342EFD083435343434353434343534343435 +%343434353434343BFD06342D2E2D2E272827277DFFA8FFA8FD22FF2E2727 +%2827282728272805FD0B340B340B340B342E340BFD1F342D342D2E052D05 +%270027002700280053CFFFFFFFA8FD21FF7D272E2828272E2828272E3434 +%34353434343BFD0B34353434343B3434343B343434353434343B3434343B +%3434343BFD04342E342D2E27272728272827282728272E272828FD26FF7D +%27272827282728272805FD2B342D2E272700272727002827272728272827 +%282728272827277DFD26FF272827282728272827282DFD27342D2E272727 +%282728272827282728272827282728272827282728277DFD25FFA8520528 +%272827282728272E11343434123434341234343412343434123434341234 +%343412343434123434340B2E052D05270527002705270528272705282728 +%052827282728272827282728272752FD26FF5228272E2728272E272827FD +%04343534343435343434353434343534343435FD06342E342D2E27282727 +%2728272827282728272E2728272E2728272E2728272E2728272E2728272E +%277DFD26FF7D002827282728272827270B34343412343434123434341234 +%34341234343412342D2E0B2E052700270027002827270528272827282728 +%27282728272827282728272827282728272827280028A8FD26FFA8282728 +%272827282728272EFD10342D342D2E05FD04272827282728272827282728 +%27282728272827282728272827282728272827282728272700272752A8FD +%28FF2728272705282727052705340C3412340C3412340B340B2E0B2D0527 +%002700270027052700282727052827270528272705282727052827270528 +%272705282727002700270028287D7DA8FD2AFF5327282728272827282728 +%2DFD0734272E272E05282727272827282728272827282728272827282728 +%2728272827282728272827282728272827270528287D7DA8FD2FFF52FD04 +%2728272727282727052E0B2D052700270027002700282727052827270528 +%2727272827272728272727282727052827272728272700270027275359A8 +%A8FD33FFA800282728272827282728272705FD0427282728272827282728 +%272827282728272827282728272827282728272827282728272700282752 +%53A8A8FD38FFA82700282727052827270528052700270527002705270028 +%27270528272705282727052827270528272705280527002700270052527D +%7EFD3EFF2828272827282728272827282728272827282728272827282728 +%2728272827282728272827282728272800272752527DA8FD43FF52002827 +%270528272705282727052827270528272705282727052827270528272705 +%28052700270027287D7DA8FD47FF7D272728272827282728272827282728 +%27282728272827282728272827282728002700282E7D7DA9FD4CFFA80027 +%002705270027052700270527002705270027052700270527000500272753 +%7DA8A8FD50FFA82827282728272827282728272827282728272827280527 +%002727537DA8A8FD56FF282705282727052827270528272700270005F827 +%2752527EA8FD5BFF7D00282728272827282727052700272752527DA8FD60 +%FFA827002700270027F82700272E7D7DFD66FF7D27002727282E7D7DFD6C +%FFA87D7DA8A8FDFCFFFDFCFFFDFCFFFD1CFFFF +%%EndData + +endstream endobj 284 0 obj <>stream +%AI12_CompressedDataxgwȲ0~?lrPBl  Mou+"xgulVWu{kؙ8 $ԁO 5 эF1RʹSjO  CO6$%$)RFƧX$RB*%zK[A~Qo< ,+|}DM~&ӑ:9CʸF!H/3)Il69d) l~k=Wf8[u`ߍ[7ˡ6KQeц݅2Ti-C[LVpނZVԐT7&w8˃hp|XN Mڬ?F˕~oֆKYMҸ;noz]0:[> k= >z鸦.z`Vqg0o~AZ{㻷!p^fyӘL$֠-AsԚ y跇ZBw2#T[y%OcA@.ٸ:yI:E|YhSn_35 1ep\e0.O#PL!)t [6U~ #%k]0⫅op2u0EowX\6Nawj}"an}_hI({TlYL59VCB$XI )" ]I +QHKH!<% G`oA?٣IiF߈ +p`0%༈/H :eC/DP-@^ NL\ @!b| A£R_@VcHx"+ex r#( 9HzA/9 HIo:Lށ_/rhc-3J!-4 3OLhH1>d b TTK`FdQȏyEt2YH)@htf^"tA`䙠 J枀Ua$p,˃&`[ɡ0 O,-LyAYGƤ|~zJPs ,o?>5I +:Ǻ$bc]XN2``yb:04.H4&9gxJCf<'0 eT7"a\p" ϣ6+xjzR* (!nAJs4BPW +UNv8%@IXPv,ECW>H3T(28\Ȳq_$jm ncuY +.iaЍl0 88W +La Iy pdn8RrH=PfD찑b  æ }lh9 i8F,`@7F; pNI7M22L` +aMiaQ ; +C@G0Pw+ԝ`;@X+:S9<\00v +cY"+ O0HEB` +``a nđxX($ +gq8%py@͂*a`ul0>۱A`llbq1a hy +8ėqB|~%1^Zx M 7 :p%+A$Es<%lk~LJa3A\I-1?Fٞ$0lB"Cr4J!%H\LŮ/3dQ ~F)2sY=E֝/>3Lv_˰p]aY +R%JkTh\ QhZsԪhf +|>!bfp6+WVJ^ +dN\k,`P&Co$ +FM"r|"΍x"na iBٖ9bV/NC +'q7$2AU JH!@PLq Նc'>Qͦm8cЏ͞gL|`< (>K +F%(kiURk(U 3%K%ܨ; nR8ad-BBRjŪQqB#:jՠ+FZa ( @^=Y4^lemt0gQ} {oB*E #?[ΰ<Bv\ +jVq-[Ѱ&%pjc[V;bvWCb@]֫ 8p'[JJGY{dKa;i\GY0Ez ؠJ>0_)(:oE)=0<蠚(Ы$|TJ~ +&.*z% ۪ꩠYV}Ԯ5RJjIJ)ЫvԨL͚]54جSZY:+ڕ\g-W[NY]gMY5t~vzn#B:wHߐ֭{Z'z‚$ R6 "A H lA5H +b*=~y \Rl+[02 ϲC @Qy?q-Ip,E"A5a9SGRMw îqw̺f5$kLmxkeO8)0ɯ. {3 >= CasTF8󏡠nd88L/I3cz( +CR) u \W+hi5EWn5E~8'9&owzs1%uQIcʙ9# yHPg)zY^8I6Jkyf'e#-e:\g!]ы6dј+=24Fˀ,wHHHdA)=/X! )Im,cBI kh^LY~W¥Og%+f]^H dzէcjmZբk7e !p) h$ Òx^>d i2K/$@Aiá:6Om+ FFQr`^lC@ +caB d P%I tW@ch_ϏNp5pytF40fQr]iեWh : +MYUz3Wi&2 F]_O;+z}D۵~^Yw!#3´< 9&1AK{&AWDV5`,`7hl:Xuk"I\#Fgv +4zsܬ"QWY"qʇ>#+OX߸‘޲q-[M⧬+7j>^j4dׂ + Vve}ZAsnQWV +ZSkξښ+vmЮ!U8FhT QA^ +o\'+f|bEvneieX:$r@D@XgSB ǧ|00,dj4JHVr4BlSci<ݼgv0:*G7F?7I;L/fXx?I=İ?٬?x(-0Pp.5aUBCИyWY5ME}hfgǏES x$eɘ¸l;Ra!AiCxpЌ:V?:nzv{er;$ yG+ m۱<`!)C-jsP145$qu0>Ⱥ4O+D|O=zŐ>h]o N]:/[H^a6h·ՙhl>&=IzC֩gO>}µ߁t~728EѓD*2?wa(6VqnZ7m\LbbUDodZ[3<>N@K +-\S|7͌#5  G +DYҢ-*ljs)ȿB[kѭ9aԵ٨3> #u} 77םa~4LG#d 0NTo7dOmM5UMʠJ+۸XMw7K9| 3sV֮n` <,^V*Zה4/ TႣr{{M[UT7? ʶrqsg% +<Wꤝu[ zRAnB=:lW ?$B2HCl3ljsFy)*"i!r¿b3}%j-I\Ey 򡠇KBox̿ +] Ls?dkU*j[Cmqȹ2>=]˚L 0FoY +.}>Q}!7&,C? wDw /wa]Bdm.>ƶ[ [T8G?8;W*pIma,EnzUɽVVN& ֨quz jY׆JvJ P+-f@B~EŒ~5QgOT̜aa ?O -0:!Iht"I{Нn4k}v:3Ť3'a[bj\O'#G c4Rb#.ύ:&fqm[P`LUfU :[9C{}8Txl|߇mm./q3M^%G';5(Ɗ:،3]1YEQ^oacrwh p2[2wϑSM"ud`N)\oaL_VfRfVt2[ #pjg3FM.nt!M5I a +&Yò0k̰-R.3=N8(MɰmC73MMJu]G0E@d1l`mh+$0Nrieha9͕[#dSn C3Ӻ֞#伬?Gkh$V)x3Y`(XCmȊo@@mX]I1Hk]PqoگPo.RO5_f송ޖd-N~ln1̓\Xς.2@5۳u@B=OwtRf"zLg(D <#~Nu=n|EkKvO(yODu]6UtX0U&l#2M~?w6|FӹT]M"@l#mk5P:`5nG(`q}8&w45+@qdxFlNy:KG+{3WC:%^\ + <<]6~ \V<ṝ.}?'KJc) Lֻ@_+bf=:x .ښ@U^( Pa9ڇ Ʋ6nthctmg9e͉pi'tݞuWT^kb^h[5XQ-=@$DZ26F`)D{w*Vq);#gěK#@_O>[@VڛMFeٴOw/yTn`J~+֊JZSV2ս]"dgK6HΐHD :kPe0sEؚXb{]`xb{6if)ll @m7}fe;coh3 T'vN%Ҙ5~Rs!ɄG GI fL v|EcZsv+9̞d}މ[aE-.!~e$%N*IcK yeE7y+H̲).&hCȔ=ҫ 4J{2A [s}g6f2vL{;Astv'!;&8CrXISo9%1gs4Qbtr⨗{/o,=/t0gK-ۜR*10~˟G8eIl:/$eޙb!}_s'VOm9~l*w '+i?_%)G\,h/9>ATkE˵#Nrw/b#.;(<1ʱ*vKy4 ]'r"Mr'g{#@zx\ꔼR<qXGAJ u(cD{4*ym]{v[Oh[I"r{vёg,@8ܽq;8V2InrKvҤe[帠D''U`2Y9 c4j#} \t/Ą+YOޢ'w4~cR[{zHa6n]LTO74C`Xt +1K4N z|F=R%"b|qjttz|^anZCU)eV҅«:A4_Ky% >m!Fn򫠪#m^ͬb]D@^P~  abvn2q"w&)Y^dNb.lֻeҕ3%>՟H,*MujIzT:sQW&=]yHJE* oEwe[\rkt̋5MJuR-oM |y*f1Bf,LtX(e$ LȥON5U5oREw/xlu|g- Ґ=;g'?]CZU.5u} MtM|۵SlQZ0Wk4ɔn?tƟkT_:ǕҁM Y%zztaBxFrhvFbBNOCA7xΊ#w(J~0'QbQdZM(%K|LXQn2Ӡx3Fs0AEcM:,٠kpj W\H$ wۊKQf<@Rx<n8)S =Q4{X~EMy\9).GdoTrH ~=ۊgk%yl݊t{TGoy/Ч,H:yJh Ϭkhi!)JB+[/S)~܂G$+$p|C5Yh]-XjuewAWYg'2 BqH@G >f"P]l0u*!ݠ&PU2.șMM1N'#smIj9q`v'f'3@0V)re]Y6fY7ijHx q-/kf+Nb 2)rj5uMeEӵZdIqN~]jV@ܬ6k /n!LBf]T(C@b`#@:ϺYC<8KG''N,'UIg5VKt҆#ıxr?XɑM K*:"\4" QF wo9b GF9!FyԀW:7RRb[\橬g C +c]F!\w|/Oi_ZIU ΖMsvYPi?2u7dԁɶ#փ%vz8Peԉ*ͬ .dLekoe-1$`~"XmE8E.AЍI`M85W +;u,xSNbGgk/ZF82 +c~yÖIV(_v&^7ދ7MS^ĥ4D!umM̛4N `@;!|"]AI Jdr&IZ# aNOSSҨEnm%b~r u0[@G/>g筏\Aqvo=ZI=ǝ;єA:h26qˌ]FgxB݆ +ąؤS9Ю kQQ8u|~H('\{3rkSx2J4˕_krA|S 4xalZvkA}/Q4ٖ9b`w߱`7n9nypte9ilL?g%j ܑ&4QJ\\/PHA%}I#1}W]ڲ[pkD3I_L4gG8_,Dxh li7WoFSN5 8&+Br70ũ&`o<¥ߢu4] $0L|q@ +y'_^~ɛf3රS$/I6ݪ}=+@u~4q%3z,ؘyC u.`X|/VC?R%i,ǭ,-Me{'_XMӕrZMd/Ryu G6wBSTJIt _|FaW;z CW:Eq5O%#U_MAB$XI!6(r>&ȠEԟr. +V%Sg/DJeK皐v OUq"j 3čK R~xP]>%t:JZP^;UƥdoQ {~5C"}sM47!!e mQ͖d|VVp[]mkU-,څ>f E=Jn_3W^ns T^⫏&_ݡ>7.{ | +]P2*]Hp4C_!z‡k_rZQ*C Rׯ0|{tfW3gkUoxj6*>|}vS}EL1A|7@+>Ů)IsÇ8B4B_ox=BTxRkW}4ƦFvpʯq>u.Eh)R"]gT hfJqkew}p`-,VcLBR]gѿ0ɸןl+3 {vk0,yyW_HZ`a׹ M o&<{F!ѭ8ro |=-1Z87&.'e&B@ݽy/Oo{S/1]{9yiK/oYo*prec7/G6g^>Wœ{ӷ7os{E{vw͍ɨWJGdo#RyϏ/Ru^,l{zxo[} +ާ)N/z}obMyylۛ @{G/駱(z_E:yKJ_@|í/?#|񻏨MVFƗL_`ȗI_|٠z|Mݧ]2ki+W}N Ǿ]H@G/kֽM_kB#7(-WY:{'Gޟ +Q??RLן|WUyPrq? +S_3Q?O{y@8UϺGX(Vϣvt$4SQ^&G?DSG7}"]{|OQQ@pй$i|@F>r}E2Py@4t]lT>s`,'x>ǃq-d^u%(]N`Zk/ٳ}?4 -{`}GR3ΐ5 fODWx~PA<*`#Cq=zyQۡŴJZHpPd>Z sr6|6O_<\K :ᇋ}} &5Sc+IU39}E58"_#I9F)~Ҍf}NtW1y<̢o~wXbR'ϱ\Ǫ?Zcwq߸1Ǐ8q>~9Nw:r_7HDJ \o$.BQB=O /ä>IonZIO%d5OoIT"B!o,*Ţ'>{uM1&K!U8I=vQdOy:uRIaH]HHu:G}A:,4˄|q*hrI.Q 0Q9Z0ќGTtY{Η*ǩd5j?W,±t9H:۸704dyaXNwZw\g6pr6=r~>/?e3W|2)9J˚ uw"kGI,?^ӊ 묘~z37Ne4t9d|QrpiȯL"Y NrI.K~?{̟f#k6.O):+^βr5{u)eO$i8:-T%&ͦKVɜ\=tuF}{ +~dOI^)1ޤ_踍|*BE|U^j"!Dy^l p+ѣ+dOPҪ.Eo:|ZLb)|_ەW4<;'\ z(2(ْnҧP]EVG/EN^ӧMx?{,6)\r&wl_W})eWQw%jt"W%S[ƪ_AFTt5okkwy+uUn ߄5nbU %g'Z:Tm|,H+=_oY#3Kw^r >R0G?Ϻ{P2J1~=ʯgSW>{jғQ!\~&%yke_§mKҚf_ 5sn^˯Ɛ{cTV>u\䶙-4K!kz0SZyVJ,ww>juuY]27ZsWk"6@d9ܞ\\Ygt֘ "N$mtvz9Gh~ ogz7f}%_ߦ2 +L?ZY>Ӂvw SuxR懏KRFQ>Q8B|$%s~keOQOkt^/=/Nh\n֌py+:}?3 3NnrjGƆ [6_ތub3L&F\j:yoz7=Z;_=av؊hc!b0FH Zg'ev\N;Ј}OFN덾EcY[ [ejƇs4礕S¬e"G'6q뭧l t<}b۞Z:lm=kVeSҐt]LZ@(D(~1$ZI 6mc ;;vNjDg8u'ag{.b[>pBlhه1Ehy<*V>si{I,IzP9:8۾qkct#^έ_Lޫ:O!CD>2Cu"p.`O6>b%{I;^9~g85մ6|kڸ`loЦ .7GNᱍݼ_oh>՞'dC¡U q8^y5v . tx1,P'6oi-,;i)MLD?Kʹekeی{pM.72~>jØ81[L%ө'8Ѵ=sca(yJX=7iE,z}:OvrޝtJX ~ݚAGF<7h1s=٭lQrP6{Bж{2u5r2mObnY h1_Nq{v..yp#Z;y_ZqWSy|ƙ̛,yuI3&faܱ~@]*I6%HǨd|h6EZI"ģg>Qun\[ }XHrW(7%]*zzaOѺ[o4;8񆯞oׇ{݄7L׽ʃH>07fԼ%'v􄏘ySCgiKM.r<˟'sW<PN61jhWE\n{*I{ϫd,ػۊ 9̻+ˊxζ) qW%~ً <ԩΛ0+}Z>Gn27:tY8lRfy+I1L9, cLwJOs~6/2WmƄy^+/"JPߎ[ˢN,x6;fsxF0>*q:*q7z!5Xpl<> +B) _A%ƽbX.?EqwuZ炥Va *pkbPAyZUzRWjxg洒a&vlV}mP[n *cV8ҮP+ 93y~C=A.0C`\;[TB +-PYQnY}%W"yxB-ƖW[\46&giAlZq9orueNz4>C˃;jeS(?RP}_snf]V"3z 57h-PD=ݡ^_.;ZlaC0Yf+ԫ i'WVZ4`Cn X!_'PY]>9lX-s6[?3jtCyLm9j:͑u M+SQJaT0:_?.j|P?| *r󗉠> bkDJ5C}]/V(fO/Q%\9 P$x? P׉ձJǁ >-WZ5X +`=,Kڰ35'w%>x[~pT'D%ݚ[`T5]KG2bZcSHt7ꦞ罩ۨ g\OtMs,D}$eͥkh{)gK]3uq]JYVu^s}s^ݝNt:Bww)TF6LLlנzwEO[#j LmgNrorȑ7F}t:_6!Dzp00@t]?,q2v{bA'0}$CIb]f>*xZ~:SW=j lʄ_ܠOy[*Hlu TtV+zSۡG *?jqP sLI܍j'P#0[}է|[b DFEkTu" +)X^c-SnݡxcZ +IZ bd0jYkޮhmZ{@ٲ9+/@6x8[`x6J×< K6&}-/VoҕvF쒀Qbb7NFD'7Po$]=ӓ4i)/%{|[ yɈ&ށee 70v0~_; &e61l#M\jAf[ok5 ~渉oJ~IvpG@czyƢ3uwyY7B>k<\I<0鳻FōN*)3f]6XRh7{{!7GEt_?E&z +do=D,1ꋒ c`s1)bˀq9h67efG4`rjb7]^sk~ST--o d,فVϿ{lC##(fءf`zz]J%m=']tv|p:mT0:<3t:hv=gV0q + ܊me5܅͛MdE]D߫SVm{O8+!yaKn3/-EDm?'gUi೴f +au?K_Waq£y@  GE8N#=),]¡}RZUņi f%b]lYbsGiTN8r@!b=9m5*\؞66j![d~tAhCsepQ>6ߤMsVbԡ{;@7,IqDh6i_ lٶޤ?J˭sZ(k^-bMv w,wnw[\$ xPup)^?`+6+f,@p("D+180nV-)eQ>}g7zK"d.UZ`F Sd1 ! ˣ4Q~NGsl9Bܕ1˸/ZAXGm<8m~ZCw?=EY#י46mݩ LwYl4v7(0{7FZ7+ިn>}? +M!i?źݮY7ڷ;U2uChۤ!KiR }Z9a`9Y1nkmY}^+bx5Y-N7n.6{"Cꪊ^VJC;:(DtYLmנN~]1# _s+ǗCk BhwPy@]fv>'^o7ߌ7{i?9Vw#Z[;vxY +5m2 jo&}޶;UGpC]mk[XL7gjކXGCkQ2ֹ.GҸ IH;wx9hw-3WyYڋz:ոImsd:5n9þ%';V:"'։QP>xYBֽ>h^ͭv[ v>{'^>{n۽W㔑o۽Wsn۽Y|ѝ{~.vP^_m]v{VDGg8η{/^L vvfy33w"i7aGR:`Ke1YZ`oT5 UuJ&}(֝:ڎ-3RUl=°{.7qZ/? Vg~Nď͚9l16V=),6%o\k>@|@1g7IޣK<Ʀ.1ٹn{q[5VmlۻdlmN<KTؓJo -FW# e_~V}ML^f?$﻽;漷$ r L`@K7ʖmY,۲$Keɖ,YdewS=}tuUuVd=|îd`}G[EkkQylsS^KG:NF{pB6uTuɮ7r˥69ͮ?&ˑTUt3pmǻr*s +sR#jh[):]U: ui6 3uXE/.6:nZF=_8:o/n +V}t=?'b_U#lq?2E;}zFƦ]Mk2}]ة#*tv@lQ;gBoӬ<:Ngf6d^7v&Lj1]rjy8,Y +m?x\\7V ȩp 0_m@ +6Dpij䍁Nct*Ml׍}pvzrz3(\Y]754!Fm_˞5?[3Twg;DQNSRsҢYvlƵ9vH|gg#<՞[zn +3`8ly5M<ۃag1əyJc{S@&GO2:cyk|>M/M<ɽC/R.vbl.Ïu5Lݵϖ7ZCi߁0a|X +ԷcuYq,:rlީ=.>\WhA5g=L[=:URڎzl^ztŽ+f.YlPx ycͯ=?19ʑI99IVͩI93I6}ZeOAmxϹibGv1J,1Pڎ_ՇN;ivjPqrx=ʟu^]=*OʫzWߥ*2)EszR'=7omL3}LWw9)R6IIyu>]8ph{ݤKq_GxCvܷ.޷3dTlPdBKP3Eia9ТSW>OSV^atC׊ku%' Z|YSS^璗.ٽtkحSO +bKOGӧtzMSJW/g5L;~ﺹ2K*R2=9^iwm'7~&\a]ȣv,'d[}j2Oꯞ^N]lvM/T\cZj[?,ÆaM:NXVWS%tRzSH-l;ľVhľMkOk.cZ\q'}]MĴ?VT^^LkuobNM8ڙ}L}*Lk5O?G'Yrrb_Y}VC{mNke'Ɛ''-6|LY}.U&cWU:7Uu;3լX!2&U~Z_?ESbWM~佣Z v}yKձ}f/awb_G&rÆ~h'&6_4&ulN+=bbNMk8ߵzxxqx%ŏ;)NT&O9^v|j][ve[ZݖU=;^oWH54w+ɺZĪ몫λOL4e D޳26&xv9n_9v':̔l:ͻO14 +dByj<ٚy݁_YvX_Y7֒Sɥ͉VX;xx1}V0xb{/̮n_K%/L|ξ?@/tweӧ6nrsr/ɳ1_m>uj>*+m/r{?FS6j|Q'[U֛W.pvƣMGƹVhVZɛF3mѹl~~3S]3-W4+~iMcgJsz4LybukB(Иb +v7^j[K0jc/]L45VڕnYa1`(ZKj <&Zau<Pv.;n,ƀTF5 +Շ~S7~Ut[Nj=?|gܪ> \TGRM~c"q~{O{ض4Q6 qGzC(U)jTl SO5~Tޭk +̉cw +}$gK:t4딋_KE[ڈQ{\kdwұ„yybnW1n8.Su󴬆o9)0X-S;6Fyn::ەyvowu`zݜf˧/Z˹I/Z7uurm4}h1[&ʚ)mہ9 +؝:~^^4X6$|D^SUK)f^9%z#t7%Qu>OIl>OjI+MIlNWiZg6^xhC>B[S.oxJb~aB6FÆ8]ö7ݾqJ/?8;y.{J~6_;z?Z-G/>z`xd`vfDž[g_Z}q0QnO{\pg^x)mrȫ{W^;`[CɳGǮ O|zzvoGW2sތͤRSKʩ$3WS׮8<|yqmywcSd hRãΤv[F&l6weM;<>:^445;S{Ašw7[_7ܭwܽzyʏ9y=wv`o-_zrku*W>w0V*Dq+Q7ƖN/N |3Jo +vXߪk(fŭ둕9K;W;.(LnܻX9[̬̈]4cfW +OSʃ7?tfE;ܽEke˯Ϟ, O^L[yJnl<O%MH4YL?::{鄶J_ɻT2Ѿmf_|;9}+Zwۙ GGW ,m<>y>s~mPe󡎧T1j/Ϳ~ZE gߥL41#ڹNoU6fxqb /&SI$WSrJa-#;~|c&iȍjeXFBd0/rCF~zgc;ۘTXʭYo3#굹?&52XJe:8^y>Xz6Boq #L*Mn).3G?,L]->z:j|Afw*Yf䩼[]S,L^3 WZ,\_1:yXkőMA^ہl7g.')27&_͓ΟlTpƊ(,-f6w+K{Itݍ3OO-ܘ|tm_&Zys(_\X[L%n7f}cK+ i-iG*q"rx|iO'/O_?'RǩpȨĐބ5NuЙ0-v2^-/Sg 9&Qy!C"\I^I7`;}<1jD툵ѧW Q6=~0Zta?%66z h E`%UAʼnLaUn"&pZ\_zvWTGb7M;4pJ^>hq}4wmC7p3#cg7^ߎ L\*I\,΍L&|#CލrԀ '"*>09'+Ä)쥎wg/O.mX|Rbis|d.p{!7M-8x4`dxS4veܵ3O9jxaA쭓3..%-v|qvP[?Z4=v6Gg?|pv;ܥ oYvOizꞱåwkfҹÙw3+BS?-?³sg& ۋ[Ov6zL{{?,/s5de ӽ:++$iL%~R.9Z{yc_xQ|rsmqkk(xZS:ћ +ꂛ5]袼IzN=V[F?u5=[sU'՟}FsW ~zܯeLM ;+au2^:3(wMFAoo Lf?OƯl <gp%(Xo[aF\3{O߼Ellvhz9>(nf!];k1'umvTFwuzQCLåJ*ө)_NX|9n|t5 +t[-^kZYS;n6&8+5.=zmytYΟo[[kٕL9]ZuvO>6fG/;ú +M[[c)2A]Ε™59vfrq+_g&gV߾<9/9RGWM鱋5uۏM^=\Hs~1|ÅעZZQ 6 +-?m2Rt ]\slM9V+YYTcēQ +eGܭuoa_pr6uf7Fuy>c'{s庩G&n<){kKaK2G]?Hܸpq,iv|Njd]̳m_;1^Һ#,\]jK7Z(c?m1} =i-?x9 +}P6E +?j]Ի8aYY;n`E??Qf wEr(=s=gVzz}#*tfԴ^BVig6OX~[M&52嘦]Z52b1 +L{.h4Dž˲pF3'jѹ[#qM ^K xuK~40rNiD,-g]:t'm'Îi{%Tۍ OCŷOkH{?K]ߟܝ=-Z>m?H?T&}vv##9wvw^=nhZhص#ۺj7t؀.s웭W +ݗWƘw ki2ߡFT=ʯ&R7Rn=Q|Uj~i10or8[Z*n:-TwK_+z1.VIWK_+z- +ZZkQoz(}a 7<6g>m:ݸ5ri@;cDBU4ӛJwjt>}Vxy㳹 7*̇[}>OԎWgntwIwjŴSx~h/YpWh;8ʹųqZ44_͈;-jʘ*QYh(Çxp~CӪ鉞Ck7TNjE_|d #T +jӾ'qƘ9e37ry2Q;Z@, +/Zxڞ̉Ukbkӕ#2gtf+a2]#>\D㼵ܻuxl7:4xEfEl]Zoҥ5OMjEH{ʐ_ù{*VOja w\"lhѥՇka +P1v`TAȳiǽ[Fk8ES?fC/Dv[<y\vPˡ G%PmF]v~~/B:loV4닱}hh>Cqq~>^Z ʈIo^bX뇧+qmm+vRg:ңm*Ԓմ{ۍ1ksoM-qѬjG{M(x"={'4ն̙N9zXgC/nc}W;:numEpI7ުqլ^4 F2~Xѧɥ+uGsr&\b&BʉIk^I>X1RͧP67+k1QNҦUT%oRWve2Rx6Nv+NOǫ+Ugw&+VSER+[e8#_h' 3nkp~/2s\b5YEv/fNO +Fk?6_q/LG3s #"uMҾ͜v ߈}l3Ӯ/isFvG ,JTym&ZROx7(wT/Tq\8#;w?$DZ~ovmT>F?ܺpnН W~`yyʼnʲ쵲/7.:gF.nK˲khfhөHWmΑ7g*3UrS2Wkdqq]";ܾjV7RՃ1pqf嵽|4(7]NhBo7*/_?HUz6Wŵi^?Vu;x iLCq6L"v<QX6tԪ%f,gG_+gs~Q_aVڔcz\N|DёW\9['<*.-Y +Ƥˍ> +Ya"5z.Ai9<馹NĴVsAzgRL)gɛ'ov|r/>;%wrv5tpwowN'[󫫥^O1aUdiԺ_9,uoqfHveJhϷ /ݙ>rR|L J{zuQ(JW:ՙOĭmqcC#87.p6޸T⨾ Uu/D} l3?R+*^TӢ#U>qټ4Xui)/'>`Fڼ;K]5|gUsյ%&@/LHzebIWzDYxS~{ücƸ`qҰ+z\ؙ=7ƂW啻۴/V;Xٺ~B%z]zk/qzFuXeq&wB^fykE-RE٩y+gܜM$M3ړSy&rJYP]L=h3 qvL#~dsqOgͰ|Hz齥(*O*d#ۉ@%}9XK_\^iWFIY~ gq\nK[.SU]\k/US28ohqt\pz>rڠcǬWjY3{G3g3 w5c.iGzic9]k_mLd|9}gQ/'cTʏi?2k{c%{Dz.!Yv%Oxj^6:swt3hS6'Z:9I+>]jomJtP3YE^W +'8z=;x6n,bծZy!>iJ̽|b}W.hK|v{1&{ZoSv >Fy4ܺW@k܇hF܇b;|MWNzq!2ѱQ;x> T+NTZcbp5;2WGδ1[zm'=ikW`dixh]K}v(`C-j2ݮL,5扬 +QWӚL8N;X'\0`QIۺT2l8=U-٭3QMڪDv&. Al0Mq˪K[+M .mn{5q']>c[jCZ}8;͚ݲk\5{cO[.e{ǜ[Wz^e65ݭ)ƚVe{\WMe{\Wƴv:fiup^ce{KFy$hPW?;_ȡ[#7ZGSFԺqs*EIú=v>,L<TLh ,%$޾XmdVWSRL9- ՘NdXD#)/pyx|*ХyG!Ng<3V;Ԣ uiBvBV}"{5etj; .ʇr(|Tѭm{k[=JRt</|^/mN ^?=:ʙㅗ;/~qeB|2^M/LJA6 FG7cRYoNh?_j_]G*oTJTi,߸;U&r\9|&OgsR.)B6[t!H2Yc\<2R1oFD)l|:U*S +D1W,܍y^\B>!>9ml!~$rtQlQ8L!GϗL,>Bl'بOF)QP|I!.- +ٌx^J5H-RR1["ȗҕ}d +ڱ9aWN)[L lՎ%IS+-$ +BQ1NRXBR\9LF"]T6K%K}G+g*{I+M)-JrXG#6G|HW$͗t")T&Չ|$JXxZ#fn[;{{[owƟn=})J#Z,LMJwTꤊfT:*2b|oJ*sRF\B9xYbRTLdsR3mD)O%2\.N峅\|ng6֙e_Έɗ LY;g2͵ s.ē[ɞH9ޭ}w}F*\UK'{OG/vo'4P#\\5נKDE'xB5Hal"[T*e,zQl$C9"2B^ nb*oB\BF&Nz+ED6[J-WQ6-bW<_NLY㼨Fe=٢KeʅtFK6U(>'?Qc"Ȉ GNtENac\D`,VPVRңL/er"Hr..\NZ;鼱aZXK~,b|V͊'!J[Vj-HY9Y$>DU[S%Ec +B_S(iug)x(CA6#J* L)od˕ŲiYjqϡӲ{=VZk '̰v7ݦQRZ9aut,3f+rTra/wvo.7N= cZ4ؼ0I=Wm(6qd" {ѱ  ^2MQ&/޵+/ųk{7ډ/loM=CNm6x}\B}Wx}#1G?}x6[^u;x}1~8:^_`u< /<@: -N/ν.(p0*zKs?ރ]KDZ`w.j:N[?a{] B8rۀq0zo_ENш1qO\G\#ш1)ٻJ^8Gx {:}Ѡ1Oebz]1yyh ]d+,ш1ޕ*]/sZlccdِ-@dnQِ-;RJB (@W^`l#]6rO* 8rЄ){%Ά\o<!ex +QC<6ȟWnlc +1+@O8r?B^l +lWH7@#[<2H^-Cq6z!{U٨-we>{ 8o=?BAJulϛ0B=^:@ q6gO[q?E("F-wɮyD[k8^/Άhg9julϛBVul ^dyuG8խ Jk^y3 #{CG(|$Bwp +?B!.(YP"B)\T +pP>?AWt @(yF(\ +0?A@X z:yE9%Z \EG4c]{OB.EG4~ +0hc{^iB +p"%{.\ 3=B(LJ׿GF\#+B.fp&\EM\#+*E_!&PEBa.Up)tp)\`EPTQ)Ww #\h +\h +*JF!2a MELEV`ESESEVA^"'\t0)\tp"+ aU B(|@G_ ' aE +p.P0",\ a\h #55B(B=B _#B)\p,\TJٿ5B(ApP)q+*B%Pʞ `a@(cqPX J{^QB #8B.qp".\ ! u +p q@aQ@#@(". . P D!D\! D\! D\!Dg' 2B2J.OBFYp6.m0.eT?=B[AdBOp #@=" Gp ,j.p +Fp.\ `'@BO0BH.MTJy8D^@dBv]#BH.Mp.\ ;PD! &J.O!B/\ 0  F҅ D\!TFAT?yp PD\!T.ApPU@Q)!a#@U D\!T.A\?@EDABf#@U D\!dF5pY@Bf#@D B.5pY\#.BA@BfQ@e0Rh!@5JF!""{.\! \ R@5 #BA@PrpH D5xpH  D +]oBFpPp D +%#_""% :f@5 B0foB.pPp Z +#J. &\ :`fAd7 #Bp Z +jF +!5a@.\BEM@DBD\!R@DP)Vk#BAB D2_!"(\ "AP)[+P D\!N@Bd0` , D!N@Pr +!Ma@Y=BB@P)B(B..z\%B(B.FzDES@BBJ^/BFnppЃ , \!d- !kF Pd !d- !k@Y 7B0pRW Pd \!d-\ (!ea!@u.n0pp : +#1Bp :ʞ `AA P \!Q@Q)B(ʲA B*BDvP2!B.hpP .Q\# Bw#@(\ e0C.\\>BY4Bwa@.\ ޅ \!0d>BY.BwE>BY #(BE6BB@pB(BEr!e0 z.\pP .]@pB 4BG@(\ (_l P;@(\ `!۲gB B5ȶ@P/ !ԭp0BB=,!EnBH| Fj)?.gp.7>\BaF<!GvhmQ)>k/BȞ܎x +&#vExޮ3x] 0tK7sC (^**󆏢,gp:x@HPl5?‰J<&\~T!OnuH(R3=(r;x B]\nA܎V`J< \nݡRG !gpJ%< Ov .^Z'Q󣿻""gpJ<4!v .^7M"<V)< 3T ٖ3xJ{ >3Â>PW?A-=-K*G +Ӫj@ESWDԁЩeL*Y ~R^C%_ԩS:_\Z +'^+{? }h}D%0O h\썢Ï>?TO>c/OJ]jE'~/_|gZP? +.;ViV&/>TցS +;P?沯7_})1~<;}_ۯE\>qpUu/D/]fߑ}gF#7)Ev_)"Mם:y;/U@?F/:N}!QB\y^7U +h>@p 7:uaLT\A\qӿO?/YXKLן[>÷_~&O =INcA V ^_iNd&02r.CNR"Lc' (N^) pF| ( +'d w| = w' 5y j kg[j#*5ϼv!!pK 5@ ~.j1[Q ~^_4 P!h6`z}AV ~5\T/҅( 'C A[QR/v!!`+ԺK@ SkE礂ej$@0 8DVWyLu}BeL}B$eH'X+ʐ8OV!p`(C"!Ҋ2bej+I8G p(ÒReXRd,)ZQ%\!@+D3 Њ2>!' Ί2 u(pQWЊ2 u((wΊ2$eH!8+ʐCp Cp&DpV!p`H'0K DlDqe$.0 pKH'0K DlDq [H'P6@"YQD- [fE̊2$neH"(K FPV!p(C"Ȋ2$eH"(+ʐF@V!p(C"AYQD5 kdEȊ2$eH\# I\# H#+ʐGlD d$H#6@"AWR A0 p+H!K H  p`,%@"XJDEb)b) R$.  p ,%@"&XJDEa)7 R$nH$K I p ,%@"*AXJDM0\DM0yDUH\"(6@"XJDU`F 8Dcz"+d H!6@".XJk6W+H\#+ʘ\6P" t ʇC$neH+H+TSAW2+F0Fg$ej}B$e.2Wa~EFW!p߯(C"2_QDe| }E2$.eH+ʐ߇ 'W!p`{H\K MlDMa$.s p@H\K mDu H\%6@"">_QD}| |E2$eHK W!p(C">>eH+ʐW!^QD{E2$}+ʐ_(C" @2$}I'_(C"|o$. p?/%@"o${ pHmDe@? W!  W! >^QD/yE~eHW! >^JD?xEeHmDm @2$}+ʐ(C" @2$+ʐ(C" @2$I' ߮(cԀSOH\6'{}Œm@ +o >cf1x}mDd"@*5@$ۥD"ʇC$k ]QF8D">~j*H"2~j}BejDů+D3w2>!w2 ~]Q¯K 0\otEF (C"7|m$+ʐ (C"7| @2$}ç+ʐ (C"? @2$}ç+ʐ(C"?9\Dt@2$6@"i$}ğK @ _@ @R$}ė6@"G @  @_2$ė+ʐ_(C"G| @?2$ėK ?(C"O @? ed$}B.%po|g$MHD @_1 @?*THl@)D"I$Ӑak@? 1k mʰj@,B$':P1Հ>1j@_0|1ǻA>rA݄fI bיP4_}K"T9&P}ՀjNO3ѳMhD̈ +M GgDuf/N +A2T$ET|UH\`a^R!N + < >2WXX0Y.3Jx!w5D)eӟ(J|T,2ϞAW&@" ŸJ?I%'Dw|W8QSzst*nP/>~#@"Z˦_-( Q#C**,~9-o(?+=M_qY^+/`T.hWA|(>OXH94L(ne(R5O¯(Sg Lkӯ~7^Z?+%j(Ǣ/ھ(}Y>/ioz +_4j⯔/+@}B"P~5koQ>.%{}齧7ͅ^-Z @SAnsq߲}\?"P6ųSXH.>cl26LT1}s0%RycVJ @Sn~ _G$?|8Dֳ<DγК~+C!Mzx;}U`G[^-Kn~+j@F扈%G;豛'"ߊZPpyz!EFӯvD,7t8IFҗ(8;7_[88oyOWRu.`oS"^/I"^A"o4`*`_`v|E-`AَOtqCx˳{sm Cx)p N27h{]W!=cAz:D7O"ol \[O7O؀ %?ALgoȨOgU>/5<7F/N:GɧHÎVu} D5Љa7UÀ┨:1: *~^g<ۉ: +~G: +QQj%ЫA1P-x룂~C@9{vqVJͭةGㅗ;/?K%2F9gx֛q'k/?fw$>.'vNǓ{t*`dinӆݤxJow;SH|㮾]o:%;3l<'JrTKT:V۬PLdKb}\\bPJL\Joʉt)۬+ier<]L'Ry\XmB峉L:/(SΈȏʈOb_T9^L#,S⸋\A?"YQLl͕JB)dl%\Nق(9E!˥آʹt*'YlR٢P:KdR%DTJ6/Q&H@,V6ˉ .'ĥNնH'HU9md-B.W9\^?"qܹ|1]*#6#')Ŕft*MŬ,SLR"# ]H>;XkWŇ/\'vɓ=xQo{.ݫǻ'' _=ׅ\&]mV(fW'qžw`3ߜ]-o^>=˻Է:2%ixRݝçOƕ; 7į7 ͑8[qW⸌٘jn5:7n}szV[O_ ++F4*KӍseSugLFe&+](J-Jr!SO48|ùBJSbYq˧2qQ\NTbǥs񉒼bJ줐/񹝾ޜ{'khEYѠEMxzqQf`x9+?].|# @H/swov7kol%\#owwNo>B?=ە'XVOvuxkoGH7!\:huAT%neݐifԘ^_?+R1ݯd)iRE)$BVҫJ)rXMP*h^% ~TQ)6J S|H4FOl-ҩD(MV2ш=g2%rqPt(MVG\G\?GIFy +8lJy}#9ݕũ 84\1gl * #],3"Hޘ7(FT!\i-rm+TO\ng8͌P* 4V7 HU DNI\}c q>2. +˗EP,5o ,]H\HDpst&aH ء^a2lut~j{xϰ蝽ˬ#| o^U2l71l3 [lczO`<.`[E%-ֱ]]M-+ [lcrW0.[.e [خ &3lW_h~v XZzG\L] @-ꫯݷ]- -v{oۮV][|r>1l K` z/u\gjl۫&V2l}۫ 9-%ee؊}l/,?lp F^C~oٮ7Ö}Vb]u-KW8# ظ+DtM"z@G FR6B @?@x  <ЄD|=?>3˿!C_4>DGD%`a/HH | C^/H b]!b]/1 Ix'yHHH +G߾D0$` `}" t!5RB_CD] oC0@hyCI@"1*B Fe BE+7D F"hICI@"16IXB &K$^ +@8Dg׿"b0@M"hIJ +"16XB f D+WD I"Z4E%` ""1Bh!#͡_/H !#"1Bh!R1Bh!#_10I@U"ZH%@SR!co?/"3"&J7DbR 04tE%.co4#OF@`J[8D|ÅbĒ3ӟ1< oHĈ%@/ID1K +)DhE/H c>QфD'D ~@ +D@1KD[h~@ +^"1f!#>KѐD@hEAJD@KDpD %"@\R f%b@~@ +)D@E1T!#_a9g)"1T!#_a3_D@h)$b@DR ZD$@D" Z4EDB "-z{D X" ZDD@ __@ \ +C + b @Ϲ"?'bEsOD4j @ϹÖ"[I}"-'D""[I!Q>9ѴD@J +DD@/H!"[ы1xE)5:~9" !"B bk @ĥD@lh#HDKI q)D".%bCsLDGR 6D\JK +)k}Z"8A ~@ + ] +".ؕ +"Q9֧%"c @ĮD@Tؕ +"$AspIDM" *DJDk@ D@B @ + D@<f |@G%"AsdOHDS" D|TR D|T" D|T" 4GDđ%"@G%"@G%"@]%b@sXFDY" D|~@ +xJJD)/H qW qW qWE)"*D"*D"%)D"H :B + @#$D"H AB + D@#$D"jJ + Z{h]" HDԱ_C D@x)h}!uE)8D"jJA "p> QS" <Dԗ "%ƒ@DM Q_R 0Dԗ "%ƒ@D}I Q_" 0DԷ_΢9|'":"D"KRYDH" $4CDG$@D}E),D"n$D"n$g}!;!A F!A F!A ⦒!A + F!A F!A ⦒9v֧"#D"nd ܄@M%@M%AsO9Dt~@ + JJ/H8S"7"{H +=$@M%@a@ b0 D@0CR D!D"_9j"&D""{/H D@hɆI=kO" D'f}!@ b?{D)D""{K)$@~@ b?{D)D"R{H=$€@a9p":% D"ndO IIYu肽?,D"xO8 J"p> q|_!q͡?>D"[ #hb茣t FgO`DHӵ]۵ Jt=Z 鍈k.va PM]`tGPӅKlΘZ_ 1h8z9WbxV]Ϡ:#k}  +lە z3`AtRBBӕAl08,m}q!:> X[_k.hC3֗-MS]`xt2DMUSl*00 irz#3Sġ4]9v5 L ˦خ@`Ib}#kfΡ3mkĽ4]3}vљE֗9R5wlW Ie}c̚c1EcteBgY k.2:3z4]3}vUЙ+;ċ^C/vЙK +:;W9L`]t@luML߱z9í Y3l/\Й+t +:zBc{iZ^pML߱,:/т, u4]3}Rpcᮚc{mxR^tۋ Ktk^:!֬H4]3}Zg6@,C2$ML߱ CgaZjf;:z!H5wlwXAgZ.kf WZw4Z0Y /5Yl_8:z滃 CꭗejElP0f^a{JuosY%qj؞t +EzU۳ EX|}l)Bwۓ|eRCw۳G描iң"QMc{R@,.S= ^_== +۵0l3خab{T],0vۃ0 %Sخ.b{Lvŵlۧ!l1}vg3lCaxBO@.{bĂz}9|q`PB"Fݱ8+{Aw0,|a1 ˀ?,` +?)<@7u+#/CO9rhˑ#O?-@怔o1c?zرc[[[ϴlm;vH3x"FO8yTɓ'Nf`8!GԩӧϜ9͛Ξ=s)2E(CٳΞ9}RM0/yy2ٙ3( /?wԉg0/xER$|'hD# ϝ;#1p'DlY_pyϞ9u\80͎W.]pRd@ GF~ o(܏7s]Nm%]- xPf iqɅmPr'6ƙǷdؔggo_p^<p(ƺ}kƵW^z;'+<9W_}Bml[ x 8pF~N[Ο96p9<3ǚm N#@K0$d;C#?Jo\| }ϩׯL+AnYy@o2y跁}#?GmSQf@#J\-6**6 vn^[y@oV>ĭ[ay+@ϩS&@LrOoƬ<kVpG;׭CS&oH;32W?{F^G>f@;їVΡQ0gwpwW^D2@=}e["l-d~ p 0>,&3l- px|l i&}Bö&xH 0(Lgm- 0(e* 0޵,0A^}B8yy'/|k QO#['>gwm!ˀgοh䅀wm! O^.p`|k Y4od0wOo B om!Mw6CY[Ȳ1M@H Bpf fBx$lB /l@|j /> 0Om! S[MQ[MS[#ax& 0Om!lLQ[xHGF-0#xB_  ?m!lQ[}a&-0#&fBlB 3?m!<6?m!<6?m!lO[O[3x& <d`oB /޴foBx$loB›M[}af-M!|i /޴p7 ޴f_Bx$l_Bx$loB— —GlLI[S&>ex#aSxB_)|i /H 0/m!“LI[SxB_1 0m!lM 0m!<6m!<6m!<6m!<6m!l E[UA|h +1m!l C[UI|h nA|h +1m!<6m!<6ă ă6& Ń6&-MI mpsg{jaq>ws瑍j/np 6{~}KD}af޻F}a>n N`ct_ؐ7wnћ;}Cx}afo4 A=6|s'o07w&;G9⥗_y׮]͇;Xgl?uy/]z+-x+y3>uLg{‹/pEus 8{=򜺾_ vf5N:}sٳ}=>h3`19~Iu_%/p3@5=vlkk|Y2>rhÑvig@39S dPs@͂9O0j|%6c -@; vn0o-yva]\yGyxgqȕ[O~zӇwl7o=x>;~;ySlӆ:)'7z'oNW&?y>'?هw>{m?||[%ɇh󛻓_hed2mߪ%֑rr޾ܭ?Lv^fHtNgU:Y:usXoOtqX6Ib[q5+k98&۳iv+"/ai5+&IUmWI絜jZ7/әQO$#fLdzl(f,βɇi]yIUVE>2\^UIZ('GÊ:/&v6-QY2QSY%Y9*YN.G,u4 |$KBNDʧN-^g~2&i6]2ݮfȷMo#b;$xI9@cIt{VrL6VaiebdU$dZl=W5Es@Wg&7~e჏JGq_?{=\jv_ud窒=ޛIT?7پ?^O~z~c|ҟ~4?Ƿ;?}GxM芟N~ҌR(#~N?wίeN>+6ˮ5Ujk[juB))_+gEY̚Ϡ[]9Jjrcww:_5SC,i:GMṊi4ytrc6ٟOB^n.v2+f T2}$ͶeZTy1-Y.'kT5y$_U筷ƨmug[վk"~[6?y{ȡ?]ۥo?ǟAH=5"/-?Qvw˻ .m/޽O޹|Q w~ Y~XmjBh}oٿԚx?tVSj>JBHe-3Yc;*sRef8(m&d-Ϋ̦MFIXlY2fm׳hGrgZdeukYrDUQRj9T\w.g,sUTdRn*fl&Ŧ+)e^X})SrP$򳙬CɈAiL2#R礪3˗IFc"ZXLe36$1ŶDTNB6TK 'rUL\M/QTFeoEzU>;_2Q2UB*&եcZ}L(ԾH~ASɡ<)奇fof^hdi\P엪@{_plvyO⿴u#jK2U(TmZV3Rd3W&W*,9uP~"2OdhjZv:ߓȇeǑlVd, }`>M+"uZmj&R +Tˎ_v3YjI{ZLRTkd,g9VXǺ9Bh){D&# Dw嫕R'pK吟I-M^Zfڤՙ*KE&0R@y+:-r-=3URvUOeIrM3kRND!Ani:t3WBiZyRGl2S[јG9(MdjRguJKʙEV-[iUL"S!߲MRPGT&JYid$2sTMbOaɏO#',eTf9i3BD +!y!!jDӦ]Y-Tq,*We"m渚ay-[՗̰isTR&?7n?u9r%#gf28f7ANQ&>ITU}˥IɉB\3yTm.d`22Sde2T=K JNN{Te T.$=kU eg6ɧRM0uiPT,C*!WrkY2d"]f +lUy.:I +o{J\j˧K'YvlV/!﯎PO+Ĕ#$*޲k gANbɚZKMȧ-N{WAld/#IS 4%*+2SH5:u@MPc%[9Nw몌6,OIU3 +uWN׬P&VGg{6e%T _bVkO/Y$̚?j{罒l$X=oP#,uZfQg1;rO*XK[| -h Ϛruۃrg֖Ɲ,_)/;Κ?=?͟gYEm,_f@fsZBI3Q$g<~A£0 'm5dRTS(%K]KfK!_MNL)\|,n"6e|Hu_ks,fT\#Tel걂ϝt>ddnΖ/^i3p9Q{ojv}䁚$jߑjO3R$O$.ɢxAQmF~nR4EDyJwL۫Du#[IU5;'/>T^a9c5?{rdI4EedoR%WZ͕@IHyHn|ER[5ؖE&IHg𪃒W<~\9"/;/h_]֤DdFݛ _4 o,h9jmNTr;i|ΑIDmy7=J^YicsJJaiҾΘͿ,̐株[{΢k=ݏ8hg`3#Π4qKZn:o\,a^`G . 2իtP};K`7*Ru]ܙ6o V&)":ʕ ();k$bdE"X+vB;meV.|WNnlʒVi\d;?&_Kq$rm9Xht휿į|v&;ڼi{zζ[m]7AnՕX j|ZX26vw;'RWkQo Sim~KV|cֶ1 HsPr^jTڗiEm;lWAEwjn/>@&JyePMWp{qRْnu8m1+nv6rM^Lw>kH௔bXٚ^\ѐmVpjٹnwkW+vh'X߱nnʜylu\A[IosEdRV,UT]˕SsRՐIY]UMMɖ]ARu;SH +NlnuL=onXMTKS7QY햯V?)S91G!+իnӤ*%듽5<@^of3uzr&ԬY6f<ƑQi%XjS )RmJݳU^dRK-R:eY(3H*԰y#MDuX;zwr޽<G2=~MD\y'?:, +endstream endobj 229 0 obj [/ICCBased 249 0 R] endobj 5 0 obj <> endobj 62 0 obj <> endobj 148 0 obj <> endobj 213 0 obj [/View/Design] endobj 214 0 obj <>>> endobj 140 0 obj [/View/Design] endobj 141 0 obj <>>> endobj 51 0 obj [/View/Design] endobj 52 0 obj <>>> endobj 222 0 obj [221 0 R] endobj 285 0 obj <> endobj xref +0 286 +0000000004 65535 f +0000000016 00000 n +0000000192 00000 n +0000023642 00000 n +0000000006 00000 f +0000149307 00000 n +0000000008 00000 f +0000023693 00000 n +0000000009 00000 f +0000000010 00000 f +0000000011 00000 f +0000000012 00000 f +0000000013 00000 f +0000000014 00000 f +0000000015 00000 f +0000000016 00000 f +0000000017 00000 f +0000000018 00000 f +0000000019 00000 f +0000000020 00000 f +0000000021 00000 f +0000000022 00000 f +0000000023 00000 f +0000000024 00000 f +0000000025 00000 f +0000000026 00000 f +0000000027 00000 f +0000000028 00000 f +0000000029 00000 f +0000000030 00000 f +0000000031 00000 f +0000000032 00000 f +0000000033 00000 f +0000000034 00000 f +0000000035 00000 f +0000000036 00000 f +0000000037 00000 f +0000000038 00000 f +0000000039 00000 f +0000000040 00000 f +0000000041 00000 f +0000000042 00000 f +0000000043 00000 f +0000000044 00000 f +0000000045 00000 f +0000000046 00000 f +0000000047 00000 f +0000000048 00000 f +0000000049 00000 f +0000000050 00000 f +0000000053 00000 f +0000149772 00000 n +0000149803 00000 n +0000000054 00000 f +0000000055 00000 f +0000000056 00000 f +0000000057 00000 f +0000000058 00000 f +0000000059 00000 f +0000000060 00000 f +0000000061 00000 f +0000000063 00000 f +0000149377 00000 n +0000000064 00000 f +0000000065 00000 f +0000000066 00000 f +0000000067 00000 f +0000000068 00000 f +0000000069 00000 f +0000000070 00000 f +0000000071 00000 f +0000000072 00000 f +0000000073 00000 f +0000000074 00000 f +0000000075 00000 f +0000000076 00000 f +0000000077 00000 f +0000000078 00000 f +0000000079 00000 f +0000000080 00000 f +0000000081 00000 f +0000000082 00000 f +0000000083 00000 f +0000000084 00000 f +0000000085 00000 f +0000000086 00000 f +0000000087 00000 f +0000000088 00000 f +0000000089 00000 f +0000000090 00000 f +0000000091 00000 f +0000000092 00000 f +0000000093 00000 f +0000000094 00000 f +0000000095 00000 f +0000000096 00000 f +0000000097 00000 f +0000000098 00000 f +0000000099 00000 f +0000000100 00000 f +0000000101 00000 f +0000000102 00000 f +0000000103 00000 f +0000000104 00000 f +0000000105 00000 f +0000000106 00000 f +0000000107 00000 f +0000000108 00000 f +0000000109 00000 f +0000000110 00000 f +0000000111 00000 f +0000000112 00000 f +0000000113 00000 f +0000000114 00000 f +0000000115 00000 f +0000000116 00000 f +0000000117 00000 f +0000000118 00000 f +0000000119 00000 f +0000000120 00000 f +0000000121 00000 f +0000000122 00000 f +0000000123 00000 f +0000000124 00000 f +0000000125 00000 f +0000000126 00000 f +0000000127 00000 f +0000000128 00000 f +0000000129 00000 f +0000000130 00000 f +0000000131 00000 f +0000000132 00000 f +0000000133 00000 f +0000000134 00000 f +0000000135 00000 f +0000000136 00000 f +0000000137 00000 f +0000000138 00000 f +0000000139 00000 f +0000000142 00000 f +0000149654 00000 n +0000149686 00000 n +0000000143 00000 f +0000000144 00000 f +0000000145 00000 f +0000000146 00000 f +0000000147 00000 f +0000000000 00000 f +0000149456 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000149536 00000 n +0000149568 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000071658 00000 n +0000149888 00000 n +0000024100 00000 n +0000024240 00000 n +0000071856 00000 n +0000055680 00000 n +0000025179 00000 n +0000024304 00000 n +0000149270 00000 n +0000024614 00000 n +0000024664 00000 n +0000029546 00000 n +0000042939 00000 n +0000045817 00000 n +0000034866 00000 n +0000055794 00000 n +0000055910 00000 n +0000052839 00000 n +0000052985 00000 n +0000053131 00000 n +0000053277 00000 n +0000053423 00000 n +0000053569 00000 n +0000029609 00000 n +0000032299 00000 n +0000045865 00000 n +0000034913 00000 n +0000042976 00000 n +0000043166 00000 n +0000052406 00000 n +0000055462 00000 n +0000055245 00000 n +0000055027 00000 n +0000054713 00000 n +0000054216 00000 n +0000053715 00000 n +0000053853 00000 n +0000053974 00000 n +0000054095 00000 n +0000054353 00000 n +0000054472 00000 n +0000054592 00000 n +0000054830 00000 n +0000054936 00000 n +0000055124 00000 n +0000055342 00000 n +0000055559 00000 n +0000064641 00000 n +0000056026 00000 n +0000056092 00000 n +0000056123 00000 n +0000056427 00000 n +0000064528 00000 n +0000056502 00000 n +0000064707 00000 n +0000064738 00000 n +0000065042 00000 n +0000065117 00000 n +0000071738 00000 n +0000071770 00000 n +0000071932 00000 n +0000072110 00000 n +0000073610 00000 n +0000086845 00000 n +0000149915 00000 n +trailer +<<53701A8F86781B4884F15DAE952D0FC1>]>> +startxref +150055 +%%EOF diff --git a/art/vuepress-icon.svg b/art/vuepress-icon.svg new file mode 100644 index 00000000..1730e2a9 --- /dev/null +++ b/art/vuepress-icon.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 644142b065018e0be6b9ff8559b5ff0e8ba9873c Mon Sep 17 00:00:00 2001 From: Kid Date: Sat, 20 Jul 2019 15:19:54 +0800 Subject: [PATCH 211/260] feat(theme-default): use router for Algolia search to reach no refresh (#1706) --- .../@vuepress/theme-default/components/AlgoliaSearchBox.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/@vuepress/theme-default/components/AlgoliaSearchBox.vue b/packages/@vuepress/theme-default/components/AlgoliaSearchBox.vue index 41b62af2..a7a6c098 100644 --- a/packages/@vuepress/theme-default/components/AlgoliaSearchBox.vue +++ b/packages/@vuepress/theme-default/components/AlgoliaSearchBox.vue @@ -35,7 +35,10 @@ export default { // #697 Make docsearch work well at i18n mode. algoliaOptions: Object.assign({ 'facetFilters': [`lang:${lang}`].concat(algoliaOptions.facetFilters || []) - }, algoliaOptions) + }, algoliaOptions), + handleSelected: (input, event, suggestion) => { + this.$router.push(new URL(suggestion.url).pathname) + } } )) }) From 6126b18e7640430ed386aa7745e419f895d8a1e3 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Sun, 21 Jul 2019 19:39:16 +0800 Subject: [PATCH 212/260] workflow: clean script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 3c7b5495..dd0eec3c 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "description": "Minimalistic doc generator with Vue component based layout system", "scripts": { "bootstrap": "yarn && lerna bootstrap && yarn tsc", + "claan": "lerna clean && rm -rf node_modules", "boot": "node scripts/bootstrap.js", "remote-version": "node scripts/remote-version.js", "dev": "yarn tsc && yarn dev:docs", From 4ddf552a0e6c6b01ac1c646d30e1ab15e779ffea Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 22 Jul 2019 01:33:30 +0800 Subject: [PATCH 213/260] chore: lockfile maintenance --- yarn.lock | 541 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 308 insertions(+), 233 deletions(-) diff --git a/yarn.lock b/yarn.lock index dd20be25..6d688f16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -616,6 +616,13 @@ dependencies: regenerator-runtime "^0.12.0" +"@babel/runtime@^7.3.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" + integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== + dependencies: + regenerator-runtime "^0.13.2" + "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" @@ -685,6 +692,43 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@hapi/address@2.x.x": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a" + integrity sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw== + +"@hapi/hoek@6.x.x": + version "6.2.4" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-6.2.4.tgz#4b95fbaccbfba90185690890bdf1a2fbbda10595" + integrity sha512-HOJ20Kc93DkDVvjwHyHawPwPkX44sIrbXazAUDiUXaY2R9JwQGo2PhFfnQtdrsIe4igjG2fPgMra7NYw7qhy0A== + +"@hapi/hoek@8.x.x": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.0.2.tgz#f63a5ff00e891a4e7aa98f11119f9515c6672032" + integrity sha512-O6o6mrV4P65vVccxymuruucb+GhP2zl9NLCG8OdoFRS8BEGw3vwpPp20wpAtpbQQxz1CEUtmxJGgWhjq1XA3qw== + +"@hapi/joi@^15.0.0": + version "15.1.0" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.0.tgz#940cb749b5c55c26ab3b34ce362e82b6162c8e7a" + integrity sha512-n6kaRQO8S+kepUTbXL9O/UOL788Odqs38/VOfoCrATDtTvyfiO3fgjlSRaNkHabpTLgM7qru9ifqXlXbXk8SeQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/hoek" "6.x.x" + "@hapi/marker" "1.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/marker@1.x.x": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@hapi/marker/-/marker-1.0.0.tgz#65b0b2b01d1be06304886ce9b4b77b1bfb21a769" + integrity sha512-JOfdekTXnJexfE8PyhZFyHvHjt81rBFSAbTIRAhF2vv/2Y1JzoKsGqxH/GpZJoF7aEfYok8JVcAHmSz1gkBieA== + +"@hapi/topo@3.x.x": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.2.tgz#57cc1317be1a8c5f47c124f9b0e3c49cd78424d2" + integrity sha512-r+aumOqJ5QbD6aLPJWqVjMAPsx5pZKz+F5yPqXZ/WWG9JTtHbQqlzrJoknJ0iJxLj9vlXtmpSdjlkszseeG8OA== + dependencies: + "@hapi/hoek" "8.x.x" + "@jest/console@^24.7.1": version "24.7.1" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" @@ -2907,9 +2951,10 @@ commander@^2.14.1, commander@^2.19.0, commander@^2.9.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" -common-tags@^1.4.0: +common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== commondir@^1.0.1: version "1.0.1" @@ -3014,13 +3059,6 @@ content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -conventional-changelog-angular@^1.6.6: - version "1.6.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" - dependencies: - compare-func "^1.3.1" - q "^1.5.1" - conventional-changelog-angular@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz#299fdd43df5a1f095283ac16aeedfb0a682ecab0" @@ -3028,45 +3066,38 @@ conventional-changelog-angular@^5.0.3: compare-func "^1.3.1" q "^1.5.1" -conventional-changelog-atom@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz#8037693455990e3256f297320a45fa47ee553a14" +conventional-changelog-atom@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.1.tgz#dc88ce650ffa9ceace805cbe70f88bfd0cb2c13a" + integrity sha512-9BniJa4gLwL20Sm7HWSNXd0gd9c5qo49gCi8nylLFpqAHhkFTj7NQfROq3f1VpffRtzfTQp4VKU5nxbe2v+eZQ== dependencies: q "^1.5.1" -conventional-changelog-cli@^1.3.22: - version "1.3.22" - resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.22.tgz#13570fe1728f56f013ff7a88878ff49d5162a405" +conventional-changelog-cli@^2.0.21: + version "2.0.21" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-2.0.21.tgz#7469ddd663a8e68967b6d8c9c2cf207d1d7462f7" + integrity sha512-gMT1XvSVmo9Np1WUXz8Mvt3K+OtzR+Xu13z0jq/3qsXBbLuYc2/oaUXVr68r3fYOL8E9dN2uvX7Hc7RkeWvRVA== dependencies: add-stream "^1.0.0" - conventional-changelog "^1.1.24" + conventional-changelog "^3.1.8" lodash "^4.2.1" meow "^4.0.0" tempfile "^1.1.1" -conventional-changelog-codemirror@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz#a1982c8291f4ee4d6f2f62817c6b2ecd2c4b7b47" +conventional-changelog-codemirror@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.1.tgz#acc046bc0971460939a0cc2d390e5eafc5eb30da" + integrity sha512-23kT5IZWa+oNoUaDUzVXMYn60MCdOygTA2I+UjnOMiYVhZgmVwNd6ri/yDlmQGXHqbKhNR5NoXdBzSOSGxsgIQ== dependencies: q "^1.5.1" -conventional-changelog-core@^2.0.11: - version "2.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz#19b5fbd55a9697773ed6661f4e32030ed7e30287" +conventional-changelog-conventionalcommits@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-3.0.2.tgz#3a380a14ecd6f5056da6d460e30dd6c0c9f1aebe" + integrity sha512-w1+fQSDnm/7+sPKIYC5nfRVYDszt+6HdWizrigSqWFVIiiBVzkHGeqDLMSHc+Qq9qssHVAxAak5206epZyK87A== dependencies: - conventional-changelog-writer "^3.0.9" - conventional-commits-parser "^2.1.7" - dateformat "^3.0.0" - get-pkg-repo "^1.0.0" - git-raw-commits "^1.3.6" - git-remote-origin-url "^2.0.0" - git-semver-tags "^1.3.6" - lodash "^4.2.1" - normalize-package-data "^2.3.5" + compare-func "^1.3.1" q "^1.5.1" - read-pkg "^1.1.0" - read-pkg-up "^1.0.1" - through2 "^2.0.0" conventional-changelog-core@^3.1.6: version "3.1.6" @@ -3086,65 +3117,69 @@ conventional-changelog-core@^3.1.6: read-pkg-up "^3.0.0" through2 "^2.0.0" -conventional-changelog-ember@^0.3.12: - version "0.3.12" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz#b7d31851756d0fcb49b031dffeb6afa93b202400" +conventional-changelog-core@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.2.tgz#de41e6b4a71011a18bcee58e744f6f8f0e7c29c0" + integrity sha512-cssjAKajxaOX5LNAJLB+UOcoWjAIBvXtDMedv/58G+YEmAXMNfC16mmPl0JDOuVJVfIqM0nqQiZ8UCm8IXbE0g== + dependencies: + conventional-changelog-writer "^4.0.5" + conventional-commits-parser "^3.0.2" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "2.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^2.0.2" + lodash "^4.2.1" + normalize-package-data "^2.3.5" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^3.0.0" + +conventional-changelog-ember@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.2.tgz#284ffdea8c83ea8c210b65c5b4eb3e5cc0f4f51a" + integrity sha512-qtZbA3XefO/n6DDmkYywDYi6wDKNNc98MMl2F9PKSaheJ25Trpi3336W8fDlBhq0X+EJRuseceAdKLEMmuX2tg== dependencies: q "^1.5.1" -conventional-changelog-eslint@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz#b13cc7e4b472c819450ede031ff1a75c0e3d07d3" +conventional-changelog-eslint@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.2.tgz#e9eb088cda6be3e58b2de6a5aac63df0277f3cbe" + integrity sha512-Yi7tOnxjZLXlCYBHArbIAm8vZ68QUSygFS7PgumPRiEk+9NPUeucy5Wg9AAyKoBprSV3o6P7Oghh4IZSLtKCvQ== dependencies: q "^1.5.1" -conventional-changelog-express@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c" +conventional-changelog-express@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.1.tgz#fea2231d99a5381b4e6badb0c1c40a41fcacb755" + integrity sha512-G6uCuCaQhLxdb4eEfAIHpcfcJ2+ao3hJkbLrw/jSK/eROeNfnxCJasaWdDAfFkxsbpzvQT4W01iSynU3OoPLIw== dependencies: q "^1.5.1" -conventional-changelog-jquery@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510" +conventional-changelog-jquery@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.4.tgz#7eb598467b83db96742178e1e8d68598bffcd7ae" + integrity sha512-IVJGI3MseYoY6eybknnTf9WzeQIKZv7aNTm2KQsiFVJH21bfP2q7XVjfoMibdCg95GmgeFlaygMdeoDDa+ZbEQ== dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-jscs@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c" - dependencies: - q "^1.4.1" - -conventional-changelog-jshint@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz#9051c1ac0767abaf62a31f74d2fe8790e8acc6c8" +conventional-changelog-jshint@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.1.tgz#11c0e8283abf156a4ff78e89be6fdedf9bd72202" + integrity sha512-kRFJsCOZzPFm2tzRHULWP4tauGMvccOlXYf3zGeuSW4U0mZhk5NsjnRZ7xFWrTFPlCLV+PNmHMuXp5atdoZmEg== dependencies: compare-func "^1.3.1" q "^1.5.1" -conventional-changelog-preset-loader@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373" - conventional-changelog-preset-loader@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.2.tgz#81d1a07523913f3d17da3a49f0091f967ad345b0" -conventional-changelog-writer@^3.0.9: - version "3.0.9" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz#4aecdfef33ff2a53bb0cf3b8071ce21f0e994634" - dependencies: - compare-func "^1.3.1" - conventional-commits-filter "^1.1.6" - dateformat "^3.0.0" - handlebars "^4.0.2" - json-stringify-safe "^5.0.1" - lodash "^4.2.1" - meow "^4.0.0" - semver "^5.5.0" - split "^1.0.0" - through2 "^2.0.0" +conventional-changelog-preset-loader@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.1.1.tgz#65bb600547c56d5627d23135154bcd9a907668c4" + integrity sha512-K4avzGMLm5Xw0Ek/6eE3vdOXkqnpf9ydb68XYmCc16cJ99XMMbc2oaNMuPwAsxVK6CC1yA4/I90EhmWNj0Q6HA== conventional-changelog-writer@^4.0.3: version "4.0.3" @@ -3161,28 +3196,38 @@ conventional-changelog-writer@^4.0.3: split "^1.0.0" through2 "^2.0.0" -conventional-changelog@^1.1.24: - version "1.1.24" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.24.tgz#3d94c29c960f5261c002678315b756cdd3d7d1f0" +conventional-changelog-writer@^4.0.5: + version "4.0.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.6.tgz#24db578ac8e7c89a409ef9bba12cf3c095990148" + integrity sha512-ou/sbrplJMM6KQpR5rKFYNVQYesFjN7WpNGdudQSWNi6X+RgyFUcSv871YBYkrUYV9EX8ijMohYVzn9RUb+4ag== dependencies: - conventional-changelog-angular "^1.6.6" - conventional-changelog-atom "^0.2.8" - conventional-changelog-codemirror "^0.3.8" - conventional-changelog-core "^2.0.11" - conventional-changelog-ember "^0.3.12" - conventional-changelog-eslint "^1.0.9" - conventional-changelog-express "^0.3.6" - conventional-changelog-jquery "^0.1.0" - conventional-changelog-jscs "^0.1.0" - conventional-changelog-jshint "^0.3.8" - conventional-changelog-preset-loader "^1.1.8" + compare-func "^1.3.1" + conventional-commits-filter "^2.0.2" + dateformat "^3.0.0" + handlebars "^4.1.0" + json-stringify-safe "^5.0.1" + lodash "^4.2.1" + meow "^4.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^3.0.0" -conventional-commits-filter@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831" +conventional-changelog@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.8.tgz#091382b5a0820bf8ec8e75ad2664a3688c31b07d" + integrity sha512-fb3/DOLLrQdNqN0yYn/lT6HcNsAa9A+VTDBqlZBMQcEPPIeJIMI+DBs3yu+eiYOLi22w9oShq3nn/zN6qm1Hmw== dependencies: - is-subset "^0.1.1" - modify-values "^1.0.0" + conventional-changelog-angular "^5.0.3" + conventional-changelog-atom "^2.0.1" + conventional-changelog-codemirror "^2.0.1" + conventional-changelog-conventionalcommits "^3.0.2" + conventional-changelog-core "^3.2.2" + conventional-changelog-ember "^2.0.2" + conventional-changelog-eslint "^3.0.2" + conventional-changelog-express "^2.0.1" + conventional-changelog-jquery "^3.0.4" + conventional-changelog-jshint "^2.0.1" + conventional-changelog-preset-loader "^2.1.1" conventional-commits-filter@^2.0.1: version "2.0.1" @@ -3191,17 +3236,13 @@ conventional-commits-filter@^2.0.1: is-subset "^0.1.1" modify-values "^1.0.0" -conventional-commits-parser@^2.1.7: - version "2.1.7" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" +conventional-commits-filter@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz#f122f89fbcd5bb81e2af2fcac0254d062d1039c1" + integrity sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ== dependencies: - JSONStream "^1.0.4" - is-text-path "^1.0.0" - lodash "^4.2.1" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - trim-off-newlines "^1.0.0" + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" conventional-commits-parser@^3.0.1: version "3.0.1" @@ -3215,6 +3256,19 @@ conventional-commits-parser@^3.0.1: through2 "^2.0.0" trim-off-newlines "^1.0.0" +conventional-commits-parser@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.3.tgz#c3f972fd4e056aa8b9b4f5f3d0e540da18bf396d" + integrity sha512-KaA/2EeUkO4bKjinNfGUyqPTX/6w9JGshuQRik4r/wJz7rUw3+D3fDG6sZSEqJvKILzKXFQuFkpPLclcsAuZcg== + dependencies: + JSONStream "^1.0.4" + is-text-path "^2.0.0" + lodash "^4.2.1" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^3.0.0" + trim-off-newlines "^1.0.0" + conventional-recommended-bump@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz#05540584641d3da758c8863c09788fcaeb586872" @@ -4748,16 +4802,6 @@ git-raw-commits@2.0.0: split2 "^2.0.0" through2 "^2.0.0" -git-raw-commits@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" - dependencies: - dargs "^4.0.1" - lodash.template "^4.0.2" - meow "^4.0.0" - split2 "^2.0.0" - through2 "^2.0.0" - git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" @@ -4765,13 +4809,6 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5" - dependencies: - meow "^4.0.0" - semver "^5.5.0" - git-semver-tags@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.2.tgz#f506ec07caade191ac0c8d5a21bdb8131b4934e3" @@ -4915,7 +4952,7 @@ handle-thing@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" -handlebars@^4.0.2, handlebars@^4.1.0: +handlebars@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a" dependencies: @@ -5021,10 +5058,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - hogan.js@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" @@ -5620,6 +5653,13 @@ is-text-path@^1.0.0: dependencies: text-extensions "^1.0.0" +is-text-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" + integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== + dependencies: + text-extensions "^2.0.0" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -5648,12 +5688,6 @@ isarray@^2.0.1: version "2.0.4" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" -isemail@3.x.x: - version "3.2.0" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" - dependencies: - punycode "2.x.x" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -6070,14 +6104,6 @@ jest@^24.7.1: import-local "^2.0.0" jest-cli "^24.7.1" -joi@^11.1.1: - version "11.4.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-11.4.0.tgz#f674897537b625e9ac3d0b7e1604c828ad913ccb" - dependencies: - hoek "4.x.x" - isemail "3.x.x" - topo "2.x.x" - js-beautify@^1.6.12: version "1.9.0" resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.9.0.tgz#2562fcdee340f9f962ae2ec4a8a40e7aaa6d964f" @@ -6472,6 +6498,11 @@ lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + lodash.kebabcase@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" @@ -6696,9 +6727,10 @@ media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" -medium-zoom@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-0.4.0.tgz#8e13c9b754903c0c903220611af0d3cd373a4222" +medium-zoom@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.4.tgz#b1063093f81151a19989489589edf28e6090630c" + integrity sha512-BjE+00gQku3XQfgHDcqyYwQaBtFddzh6Lnj1RZOliqJ9HS0mh/P2IaqVJ25/j9EbnjAUf27mLeLZBRxnd00bfA== mem@^4.0.0: version "4.1.0" @@ -8097,9 +8129,10 @@ prettier@1.16.3: version "1.16.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d" -pretty-bytes@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" +pretty-bytes@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.2.0.tgz#96c92c6e95a0b35059253fb33c03e260d40f5a1f" + integrity sha512-ujANBhiUsl9AhREUDUEY1GPOharMGm8x8juS7qOHybcLi7XsKfrYQ88hSly1l2i0klXHTDYrlL8ihMCG55Dc3w== pretty-error@^2.0.2: version "2.1.1" @@ -8253,15 +8286,15 @@ punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -q@^1.1.2, q@^1.4.1, q@^1.5.1: +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + +q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -8390,7 +8423,7 @@ read-pkg-up@^4.0.0: find-up "^3.0.0" read-pkg "^3.0.0" -read-pkg@^1.0.0, read-pkg@^1.1.0: +read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" dependencies: @@ -8424,6 +8457,15 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" +"readable-stream@2 || 3": + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^3.0.6, readable-stream@^3.1.1: version "3.2.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.2.0.tgz#de17f229864c120a9f56945756e4f32c4045245d" @@ -8493,6 +8535,11 @@ regenerator-runtime@^0.12.0: version "0.12.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + regenerator-transform@^0.13.4: version "0.13.4" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.4.tgz#18f6763cf1382c69c36df76c6ce122cc694284fb" @@ -9270,7 +9317,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@^3.2.2: +stringify-object@^3.2.2, stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" dependencies: @@ -9510,6 +9557,11 @@ text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" +text-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.0.0.tgz#43eabd1b495482fae4a2bf65e5f56c29f69220f6" + integrity sha512-F91ZqLgvi1E0PdvmxMgp+gcf6q8fMH7mhdwWfzXnl1k+GbpQDmi8l7DzLC5JTASKbwpY3TfxajAUzAXcv2NmsQ== + text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -9525,6 +9577,13 @@ through2@^2.0.0, through2@^2.0.2: readable-stream "~2.3.6" xtend "~4.0.1" +through2@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -9599,12 +9658,6 @@ toml@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" -topo@2.x.x: - version "2.0.2" - resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" - dependencies: - hoek "4.x.x" - toposort@^1.0.0: version "1.0.7" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" @@ -10261,109 +10314,131 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" -workbox-background-sync@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz#6609a0fac9eda336a7c52e6aa227ba2ae532ad94" +workbox-background-sync@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz#26821b9bf16e9e37fd1d640289edddc08afd1950" + integrity sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-broadcast-cache-update@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz#3f5dff22ada8c93e397fb38c1dc100606a7b92da" +workbox-broadcast-update@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz#e2c0280b149e3a504983b757606ad041f332c35b" + integrity sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-build@^3.1.0: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-3.6.3.tgz#77110f9f52dc5d82fa6c1c384c6f5e2225adcbd8" +workbox-build@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.1.tgz#414f70fb4d6de47f6538608b80ec52412d233e64" + integrity sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw== dependencies: - babel-runtime "^6.26.0" - common-tags "^1.4.0" + "@babel/runtime" "^7.3.4" + "@hapi/joi" "^15.0.0" + common-tags "^1.8.0" fs-extra "^4.0.2" - glob "^7.1.2" - joi "^11.1.1" + glob "^7.1.3" lodash.template "^4.4.0" - pretty-bytes "^4.0.2" - stringify-object "^3.2.2" + pretty-bytes "^5.1.0" + stringify-object "^3.3.0" strip-comments "^1.0.2" - workbox-background-sync "^3.6.3" - workbox-broadcast-cache-update "^3.6.3" - workbox-cache-expiration "^3.6.3" - workbox-cacheable-response "^3.6.3" - workbox-core "^3.6.3" - workbox-google-analytics "^3.6.3" - workbox-navigation-preload "^3.6.3" - workbox-precaching "^3.6.3" - workbox-range-requests "^3.6.3" - workbox-routing "^3.6.3" - workbox-strategies "^3.6.3" - workbox-streams "^3.6.3" - workbox-sw "^3.6.3" + workbox-background-sync "^4.3.1" + workbox-broadcast-update "^4.3.1" + workbox-cacheable-response "^4.3.1" + workbox-core "^4.3.1" + workbox-expiration "^4.3.1" + workbox-google-analytics "^4.3.1" + workbox-navigation-preload "^4.3.1" + workbox-precaching "^4.3.1" + workbox-range-requests "^4.3.1" + workbox-routing "^4.3.1" + workbox-strategies "^4.3.1" + workbox-streams "^4.3.1" + workbox-sw "^4.3.1" + workbox-window "^4.3.1" -workbox-cache-expiration@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz#4819697254a72098a13f94b594325a28a1e90372" +workbox-cacheable-response@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz#f53e079179c095a3f19e5313b284975c91428c91" + integrity sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-cacheable-response@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz#869f1a68fce9063f6869ddbf7fa0a2e0a868b3aa" +workbox-core@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.1.tgz#005d2c6a06a171437afd6ca2904a5727ecd73be6" + integrity sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg== + +workbox-expiration@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.1.tgz#d790433562029e56837f341d7f553c4a78ebe921" + integrity sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-core@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-3.6.3.tgz#69abba70a4f3f2a5c059295a6f3b7c62bd00e15c" - -workbox-google-analytics@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz#99df2a3d70d6e91961e18a6752bac12e91fbf727" +workbox-google-analytics@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz#9eda0183b103890b5c256e6f4ea15a1f1548519a" + integrity sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg== dependencies: - workbox-background-sync "^3.6.3" - workbox-core "^3.6.3" - workbox-routing "^3.6.3" - workbox-strategies "^3.6.3" + workbox-background-sync "^4.3.1" + workbox-core "^4.3.1" + workbox-routing "^4.3.1" + workbox-strategies "^4.3.1" -workbox-navigation-preload@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz#a2c34eb7c17e7485b795125091215f757b3c4964" +workbox-navigation-preload@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz#29c8e4db5843803b34cd96dc155f9ebd9afa453d" + integrity sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-precaching@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-3.6.3.tgz#5341515e9d5872c58ede026a31e19bafafa4e1c1" +workbox-precaching@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.1.tgz#9fc45ed122d94bbe1f0ea9584ff5940960771cba" + integrity sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-range-requests@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz#3cc21cba31f2dd8c43c52a196bcc8f6cdbcde803" +workbox-range-requests@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz#f8a470188922145cbf0c09a9a2d5e35645244e74" + integrity sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-routing@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-3.6.3.tgz#659cd8f9274986cfa98fda0d050de6422075acf7" +workbox-routing@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.1.tgz#a675841af623e0bb0c67ce4ed8e724ac0bed0cda" + integrity sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-strategies@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-3.6.3.tgz#11a0dc249a7bc23d3465ec1322d28fa6643d64a0" +workbox-strategies@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.1.tgz#d2be03c4ef214c115e1ab29c9c759c9fe3e9e646" + integrity sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-streams@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-3.6.3.tgz#beaea5d5b230239836cc327b07d471aa6101955a" +workbox-streams@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.1.tgz#0b57da70e982572de09c8742dd0cb40a6b7c2cc3" + integrity sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.1" -workbox-sw@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-3.6.3.tgz#278ea4c1831b92bbe2d420da8399176c4b2789ff" +workbox-sw@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.1.tgz#df69e395c479ef4d14499372bcd84c0f5e246164" + integrity sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w== + +workbox-window@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.1.tgz#ee6051bf10f06afa5483c9b8dfa0531994ede0f3" + integrity sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg== + dependencies: + workbox-core "^4.3.1" worker-farm@^1.5.2: version "1.6.0" From 78aecbd8d30bc2bf5e88d613569f897fb5f0aa8e Mon Sep 17 00:00:00 2001 From: Daniel Madalitso Phiri Date: Sun, 28 Jul 2019 19:47:44 +0200 Subject: [PATCH 214/260] docs: update GA Documentation (close: #1687) (#1724) Changed wording to accomadate already anaonymized IPs --- packages/docs/docs/plugin/official/plugin-google-analytics.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/docs/docs/plugin/official/plugin-google-analytics.md b/packages/docs/docs/plugin/official/plugin-google-analytics.md index 94f52e14..0f569599 100644 --- a/packages/docs/docs/plugin/official/plugin-google-analytics.md +++ b/packages/docs/docs/plugin/official/plugin-google-analytics.md @@ -31,8 +31,7 @@ module.exports = { ``` ::: tip -Please be aware of [GDPR (2018 reform of EU data protection rules)](https://ec.europa.eu/commission/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules_en) and consider setting Google Analytics to [anonymize IPs](https://support.google.com/analytics/answer/2763052?hl=en) where appropriate and/or needed. -::: +Please be aware of [GDPR (2018 reform of EU data protection rules)](https://ec.europa.eu/commission/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules_en) as IPs are anonymized automatically. ::: ## Options From 52f421bc3bb5887dc75a789080a98574fbeb0dde Mon Sep 17 00:00:00 2001 From: Colin Kinloch Date: Sun, 28 Jul 2019 19:03:12 +0100 Subject: [PATCH 215/260] fix($core): prioritise vuepress dependencies over cwd node_modules (close: #1708) (#1720) --- packages/@vuepress/core/lib/node/webpack/createBaseConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js b/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js index 81733733..da457f33 100644 --- a/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js +++ b/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js @@ -310,5 +310,5 @@ function getLastCommitHash () { } function getModulePaths () { - return [path.resolve(process.cwd(), 'node_modules')].concat(module.paths) + return module.paths.concat([path.resolve(process.cwd(), 'node_modules')]) } From e3393e336900256632f60d7f06c628282bad22e2 Mon Sep 17 00:00:00 2001 From: Kid Date: Mon, 29 Jul 2019 02:04:22 +0800 Subject: [PATCH 216/260] fix($plugin-medium-zoom): disable zoom for links (#1719) --- packages/@vuepress/plugin-medium-zoom/index.js | 2 +- packages/docs/docs/plugin/official/plugin-medium-zoom.md | 4 ++-- packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/@vuepress/plugin-medium-zoom/index.js b/packages/@vuepress/plugin-medium-zoom/index.js index 556a7e04..5dbad710 100644 --- a/packages/@vuepress/plugin-medium-zoom/index.js +++ b/packages/@vuepress/plugin-medium-zoom/index.js @@ -2,7 +2,7 @@ const { path } = require('@vuepress/shared-utils') module.exports = (options, context) => ({ define: { - SELECTOR: options.selector || '.theme-default-content img', + SELECTOR: options.selector || '.theme-default-content :not(a) > img', OPTIONS: options.options }, clientRootMixin: path.resolve(__dirname, 'clientRootMixin.js') diff --git a/packages/docs/docs/plugin/official/plugin-medium-zoom.md b/packages/docs/docs/plugin/official/plugin-medium-zoom.md index 3b79b464..c50880e6 100644 --- a/packages/docs/docs/plugin/official/plugin-medium-zoom.md +++ b/packages/docs/docs/plugin/official/plugin-medium-zoom.md @@ -20,7 +20,7 @@ yarn add -D @vuepress/plugin-medium-zoom@next ```javascript module.exports = { - plugins: ['@vuepress/medium-zoom'] + plugins: ['@vuepress/medium-zoom'] } ``` @@ -46,7 +46,7 @@ module.exports = { ### selector - Type: `string` -- Default: `.theme-default-content img` +- Default: `.theme-default-content :not(a) > img` Note that `.theme-default-content` is the class name of [``](../../guide/using-vue.md#content) component in default theme. diff --git a/packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md b/packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md index db1e6f13..a6cf92c1 100644 --- a/packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md +++ b/packages/docs/docs/zh/plugin/official/plugin-medium-zoom.md @@ -22,7 +22,7 @@ yarn add -D @vuepress/plugin-medium-zoom@next ```javascript module.exports = { - plugins: ['@vuepress/medium-zoom'] + plugins: ['@vuepress/medium-zoom'] } ``` @@ -45,10 +45,10 @@ module.exports = { ## 选项 -### selector +### selector - 类型: `string` -- 默认值: `.theme-default-content img` +- 默认值: `.theme-default-content :not(a) > img` 值得注意的是, `.theme-default-content` 是默认主题添加给 [``](../../guide/using-vue.md#content) 组件的 class name。 From 0624828e0734ea09086987c3cb036e0861929d8b Mon Sep 17 00:00:00 2001 From: Oscar Date: Mon, 29 Jul 2019 19:44:36 +0200 Subject: [PATCH 217/260] fix($theme-default): sidebarDepth: 0 not working in YAML (close: #1701) (#1702) --- .../theme-default/components/SidebarLink.vue | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/@vuepress/theme-default/components/SidebarLink.vue b/packages/@vuepress/theme-default/components/SidebarLink.vue index 243ce763..bc5de287 100644 --- a/packages/@vuepress/theme-default/components/SidebarLink.vue +++ b/packages/@vuepress/theme-default/components/SidebarLink.vue @@ -32,12 +32,13 @@ export default { ? renderExternal(h, item.path, item.title || item.path) : renderLink(h, item.path, item.title || item.path, active) - const configDepth = $page.frontmatter.sidebarDepth - || sidebarDepth - || $themeLocaleConfig.sidebarDepth - || $themeConfig.sidebarDepth - - const maxDepth = configDepth == null ? 1 : configDepth + const maxDepth = [ + $page.frontmatter.sidebarDepth, + sidebarDepth, + $themeLocaleConfig.sidebarDepth, + $themeConfig.sidebarDepth, + 1 + ].find(depth => depth !== undefined); const displayAllHeaders = $themeLocaleConfig.displayAllHeaders || $themeConfig.displayAllHeaders From d87124c0fcd1462989798daa674e9efeeb7bcfc5 Mon Sep 17 00:00:00 2001 From: jess Date: Mon, 29 Jul 2019 10:45:05 -0700 Subject: [PATCH 218/260] chore: activating Open Collective (#1704) --- README.md | 32 +++++++++++++++++++++++++++++++- packages/vuepress/package.json | 10 +++++++++- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 55c47d29..b607961d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

- Downloads + Downloads Version npm next version License @@ -52,6 +52,36 @@ Thank you to all the people who already contributed to VuePress! ![contributors](https://opencollective.com/vuepress/contributors.svg?width=890) +## Contributors + +### Code Contributors + +This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. + + +### Financial Contributors + +Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/vuepress/contribute)] + +#### Individuals + + + +#### Organizations + +Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/vuepress/contribute)] + + + + + + + + + + + + ## License [MIT](https://github.com/vuejs/vuepress/blob/master/LICENSE) diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json index 80def06d..8885dbde 100644 --- a/packages/vuepress/package.json +++ b/packages/vuepress/package.json @@ -8,6 +8,9 @@ "url": "git+https://github.com/vuejs/vuepress.git", "directory": "packages/vuepress" }, + "scripts": { + "postinstall": "opencollective-postinstall || true" + }, "keywords": [ "documentation", "vue", @@ -32,7 +35,12 @@ "@vuepress/core": "^1.0.2", "@vuepress/theme-default": "^1.0.2", "cac": "^6.3.9", - "envinfo": "^7.2.0" + "envinfo": "^7.2.0", + "opencollective-postinstall": "^2.0.2" + }, + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/vuepress" }, "engines": { "node": ">=8.6" From 6460b0c8408b1dc01cf0d4c6d5ee3fa47c64ed89 Mon Sep 17 00:00:00 2001 From: Massimo Siani Date: Mon, 29 Jul 2019 19:48:59 +0200 Subject: [PATCH 219/260] fix($core): transpile all scripts under core (close: #1623) (#1685) --- packages/@vuepress/core/lib/node/webpack/createBaseConfig.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js b/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js index da457f33..6c702e87 100644 --- a/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js +++ b/packages/@vuepress/core/lib/node/webpack/createBaseConfig.js @@ -144,6 +144,10 @@ module.exports = function createBaseConfig (context, isServer) { if (/\.vue\.js$/.test(filePath)) { return false } + // transpile all core files + if (/(@vuepress|vuepress-)\/.*\.js$/.test(filePath)) { + return false + } // Don't transpile node_modules return /node_modules/.test(filePath) }).end() From 2c93017d706570dd2bd58e35892b2b5c67b9cebb Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Tue, 30 Jul 2019 02:04:20 +0800 Subject: [PATCH 220/260] chore: remove duplicate contributor diagram --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index b607961d..d601fd76 100644 --- a/README.md +++ b/README.md @@ -48,10 +48,6 @@ If you intend to make `"substantial"` changes to VuePress or its documentation, If you have a VuePress-related project/component/tool, add it with a pull request to [this curated list](https://github.com/ulivz/awesome-vuepress)! -Thank you to all the people who already contributed to VuePress! - -![contributors](https://opencollective.com/vuepress/contributors.svg?width=890) - ## Contributors ### Code Contributors From 3d119903842a03cede31d582b4ed887f2da644ca Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Tue, 30 Jul 2019 02:04:43 +0800 Subject: [PATCH 221/260] chore: lockfile maintenance --- yarn.lock | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/yarn.lock b/yarn.lock index 6d688f16..4649c409 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7419,6 +7419,11 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +opencollective-postinstall@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" From 6827bd115463a4609ef71f3fabfd0507d2029194 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Tue, 30 Jul 2019 02:10:23 +0800 Subject: [PATCH 222/260] v1.0.3 --- lerna.json | 2 +- packages/@vuepress/core/package.json | 12 ++++++------ packages/@vuepress/markdown-loader/package.json | 4 ++-- packages/@vuepress/markdown/package.json | 6 +++--- .../plugin-active-header-links/package.json | 2 +- packages/@vuepress/plugin-back-to-top/package.json | 2 +- .../@vuepress/plugin-google-analytics/package.json | 2 +- .../@vuepress/plugin-last-updated/package.json | 2 +- packages/@vuepress/plugin-medium-zoom/package.json | 2 +- packages/@vuepress/plugin-nprogress/package.json | 2 +- packages/@vuepress/plugin-pwa/package.json | 4 ++-- .../plugin-register-components/package.json | 4 ++-- packages/@vuepress/plugin-search/package.json | 2 +- packages/@vuepress/shared-utils/package.json | 2 +- packages/@vuepress/test-utils/package.json | 6 +++--- packages/@vuepress/theme-default/package.json | 8 ++++---- packages/@vuepress/theme-vue/package.json | 4 ++-- packages/docs/package.json | 14 +++++++------- packages/vuepress/package.json | 6 +++--- 19 files changed, 43 insertions(+), 43 deletions(-) diff --git a/lerna.json b/lerna.json index 8034e98c..fd4ff6c1 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "lerna": "2.5.1", "npmClient": "yarn", "useWorkspaces": true, - "version": "1.0.2" + "version": "1.0.3" } diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json index 14107077..f4a15f8f 100644 --- a/packages/@vuepress/core/package.json +++ b/packages/@vuepress/core/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/core", - "version": "1.0.2", + "version": "1.0.3", "description": "Minimalistic doc generator with Vue component based layout system", "main": "lib/index.js", "repository": { @@ -31,11 +31,11 @@ "dependencies": { "@babel/core": "^7.0.0", "@vue/babel-preset-app": "^3.1.1", - "@vuepress/markdown": "^1.0.2", - "@vuepress/markdown-loader": "^1.0.2", - "@vuepress/plugin-last-updated": "^1.0.2", - "@vuepress/plugin-register-components": "^1.0.2", - "@vuepress/shared-utils": "^1.0.2", + "@vuepress/markdown": "^1.0.3", + "@vuepress/markdown-loader": "^1.0.3", + "@vuepress/plugin-last-updated": "^1.0.3", + "@vuepress/plugin-register-components": "^1.0.3", + "@vuepress/shared-utils": "^1.0.3", "autoprefixer": "^9.5.1", "babel-loader": "^8.0.4", "cache-loader": "^3.0.0", diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json index 8f2d2c46..d4c351ba 100644 --- a/packages/@vuepress/markdown-loader/package.json +++ b/packages/@vuepress/markdown-loader/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown-loader", - "version": "1.0.2", + "version": "1.0.3", "description": "markdown-loader for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/markdown": "^1.0.2", + "@vuepress/markdown": "^1.0.3", "loader-utils": "^1.1.0", "lru-cache": "^5.1.1" }, diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index f3fd671f..26287bd4 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown", - "version": "1.0.2", + "version": "1.0.3", "description": "markdown for vuepress", "main": "index.js", "publishConfig": { @@ -19,7 +19,7 @@ "markdown" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.2", + "@vuepress/shared-utils": "^1.0.3", "markdown-it": "^8.4.1", "markdown-it-anchor": "^5.0.2", "markdown-it-chain": "^1.3.0", @@ -28,7 +28,7 @@ "prismjs": "^1.13.0" }, "devDependencies": { - "@vuepress/test-utils": "^1.0.2" + "@vuepress/test-utils": "^1.0.3" }, "author": "Evan You", "maintainers": [ diff --git a/packages/@vuepress/plugin-active-header-links/package.json b/packages/@vuepress/plugin-active-header-links/package.json index 96763da3..3adc11cb 100644 --- a/packages/@vuepress/plugin-active-header-links/package.json +++ b/packages/@vuepress/plugin-active-header-links/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-active-header-links", - "version": "1.0.2", + "version": "1.0.3", "description": "active-header-links plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-back-to-top/package.json b/packages/@vuepress/plugin-back-to-top/package.json index cff44af6..a2163966 100644 --- a/packages/@vuepress/plugin-back-to-top/package.json +++ b/packages/@vuepress/plugin-back-to-top/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-back-to-top", - "version": "1.0.2", + "version": "1.0.3", "description": "back-to-top plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-google-analytics/package.json b/packages/@vuepress/plugin-google-analytics/package.json index 88ad4e2b..72b5d0e0 100644 --- a/packages/@vuepress/plugin-google-analytics/package.json +++ b/packages/@vuepress/plugin-google-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-google-analytics", - "version": "1.0.2", + "version": "1.0.3", "description": "google-analytics plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-last-updated/package.json b/packages/@vuepress/plugin-last-updated/package.json index b0a2f54d..64aabf7a 100644 --- a/packages/@vuepress/plugin-last-updated/package.json +++ b/packages/@vuepress/plugin-last-updated/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-last-updated", - "version": "1.0.2", + "version": "1.0.3", "description": "last-updated plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-medium-zoom/package.json b/packages/@vuepress/plugin-medium-zoom/package.json index 3b9472d5..e9a831ab 100644 --- a/packages/@vuepress/plugin-medium-zoom/package.json +++ b/packages/@vuepress/plugin-medium-zoom/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-medium-zoom", - "version": "1.0.2", + "version": "1.0.3", "description": "medium-zoom plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-nprogress/package.json b/packages/@vuepress/plugin-nprogress/package.json index 56ce4a66..eaa2080b 100644 --- a/packages/@vuepress/plugin-nprogress/package.json +++ b/packages/@vuepress/plugin-nprogress/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-nprogress", - "version": "1.0.2", + "version": "1.0.3", "description": "nprogress plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json index 6bfe7ade..3f61b94f 100644 --- a/packages/@vuepress/plugin-pwa/package.json +++ b/packages/@vuepress/plugin-pwa/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pwa", - "version": "1.0.2", + "version": "1.0.3", "description": "pwa plugin for vuepress", "main": "index.js", "publishConfig": { @@ -18,7 +18,7 @@ "generator" ], "dependencies": { - "@vuepress/shared-utils": "^1.0.2", + "@vuepress/shared-utils": "^1.0.3", "register-service-worker": "^1.5.2", "workbox-build": "^4.3.1" }, diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json index 117916df..4a1559dc 100644 --- a/packages/@vuepress/plugin-register-components/package.json +++ b/packages/@vuepress/plugin-register-components/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-register-components", - "version": "1.0.2", + "version": "1.0.3", "description": "register-global-components plugin for vuepress", "main": "index.js", "publishConfig": { @@ -24,6 +24,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/plugin-register-components#readme", "dependencies": { - "@vuepress/shared-utils": "^1.0.2" + "@vuepress/shared-utils": "^1.0.3" } } diff --git a/packages/@vuepress/plugin-search/package.json b/packages/@vuepress/plugin-search/package.json index 19e5702f..f93e1944 100644 --- a/packages/@vuepress/plugin-search/package.json +++ b/packages/@vuepress/plugin-search/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-search", - "version": "1.0.2", + "version": "1.0.3", "description": "search plugin for vuepress", "main": "index.js", "publishConfig": { diff --git a/packages/@vuepress/shared-utils/package.json b/packages/@vuepress/shared-utils/package.json index 81b66382..05b029ba 100644 --- a/packages/@vuepress/shared-utils/package.json +++ b/packages/@vuepress/shared-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/shared-utils", - "version": "1.0.2", + "version": "1.0.3", "description": "shared-utils for vuepress", "main": "lib/index.js", "types": "types/index.d.ts", diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json index 5c5c4aa3..6282b929 100644 --- a/packages/@vuepress/test-utils/package.json +++ b/packages/@vuepress/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/test-utils", - "version": "1.0.2", + "version": "1.0.3", "description": "test-utils for vuepress", "main": "index.js", "publishConfig": { @@ -22,8 +22,8 @@ "@babel/preset-env": "^7.0.0", "@types/jest": "^24.0.9", "@vue/test-utils": "^1.0.0-beta.29", - "@vuepress/core": "^1.0.2", - "@vuepress/shared-utils": "^1.0.2", + "@vuepress/core": "^1.0.3", + "@vuepress/shared-utils": "^1.0.3", "babel-jest": "^24.7.1", "execa": "^1.0.0", "jest": "^24.7.1", diff --git a/packages/@vuepress/theme-default/package.json b/packages/@vuepress/theme-default/package.json index 6a79dd95..1cd4c534 100644 --- a/packages/@vuepress/theme-default/package.json +++ b/packages/@vuepress/theme-default/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/theme-default", - "version": "1.0.2", + "version": "1.0.3", "description": "Default theme for VuePress", "main": "index.js", "publishConfig": { @@ -30,9 +30,9 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-default#readme", "dependencies": { - "@vuepress/plugin-active-header-links": "^1.0.2", - "@vuepress/plugin-nprogress": "^1.0.2", - "@vuepress/plugin-search": "^1.0.2", + "@vuepress/plugin-active-header-links": "^1.0.3", + "@vuepress/plugin-nprogress": "^1.0.3", + "@vuepress/plugin-search": "^1.0.3", "docsearch.js": "^2.5.2", "stylus": "^0.54.5", "stylus-loader": "^3.0.2", diff --git a/packages/@vuepress/theme-vue/package.json b/packages/@vuepress/theme-vue/package.json index 16647035..88c0a4fd 100644 --- a/packages/@vuepress/theme-vue/package.json +++ b/packages/@vuepress/theme-vue/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/theme-vue", - "version": "1.0.2", + "version": "1.0.3", "description": "VuePress theme for official Vue projects", "main": "index.js", "publishConfig": { @@ -30,6 +30,6 @@ }, "homepage": "https://github.com/vuejs/vuepress/packages/@vuepress/theme-vue#readme", "dependencies": { - "@vuepress/theme-default": "^1.0.2" + "@vuepress/theme-default": "^1.0.3" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index 9e6bd529..89610a39 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.0.2", + "version": "1.0.3", "name": "docs", "description": "docs of VuePress", "scripts": { @@ -25,13 +25,13 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "devDependencies": { - "@vuepress/plugin-back-to-top": "^1.0.2", - "@vuepress/plugin-google-analytics": "^1.0.2", - "@vuepress/plugin-medium-zoom": "^1.0.2", - "@vuepress/plugin-pwa": "^1.0.2", - "@vuepress/theme-vue": "^1.0.2", + "@vuepress/plugin-back-to-top": "^1.0.3", + "@vuepress/plugin-google-analytics": "^1.0.3", + "@vuepress/plugin-medium-zoom": "^1.0.3", + "@vuepress/plugin-pwa": "^1.0.3", + "@vuepress/theme-vue": "^1.0.3", "vue-toasted": "^1.1.25", - "vuepress": "^1.0.2", + "vuepress": "^1.0.3", "vuepress-plugin-flowchart": "^1.4.2" } } diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json index 8885dbde..2d243bea 100644 --- a/packages/vuepress/package.json +++ b/packages/vuepress/package.json @@ -1,6 +1,6 @@ { "name": "vuepress", - "version": "1.0.2", + "version": "1.0.3", "description": "Minimalistic doc generator with Vue component based layout system", "main": "index.js", "repository": { @@ -32,8 +32,8 @@ }, "homepage": "https://github.com/vuejs/vuepress#readme", "dependencies": { - "@vuepress/core": "^1.0.2", - "@vuepress/theme-default": "^1.0.2", + "@vuepress/core": "^1.0.3", + "@vuepress/theme-default": "^1.0.3", "cac": "^6.3.9", "envinfo": "^7.2.0", "opencollective-postinstall": "^2.0.2" From 702e94746fae4b67478ab480163020a83dfd4aef Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Tue, 30 Jul 2019 02:11:36 +0800 Subject: [PATCH 223/260] chore: 1.0.3 changelog --- CHANGELOG.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c1838fd..dbb50339 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,27 @@ +# [](https://github.com/vuejs/vuepress/compare/v1.0.3...v) (2019-07-29) + + + +## [1.0.3](https://github.com/vuejs/vuepress/compare/v1.0.2...v1.0.3) (2019-07-29) + + +### Bug Fixes + +* **$core:** `'[Vue warn]: Unknown custom element'` when using `` in a custom page without markdown ([#1699](https://github.com/vuejs/vuepress/issues/1699)) ([2a59800](https://github.com/vuejs/vuepress/commit/2a59800)), closes [#1173](https://github.com/vuejs/vuepress/issues/1173) [#1426](https://github.com/vuejs/vuepress/issues/1426) +* **$core:** prioritise vuepress dependencies over cwd node_modules (close: [#1708](https://github.com/vuejs/vuepress/issues/1708)) ([#1720](https://github.com/vuejs/vuepress/issues/1720)) ([52f421b](https://github.com/vuejs/vuepress/commit/52f421b)) +* **$core:** transpile all scripts under core (close: [#1623](https://github.com/vuejs/vuepress/issues/1623)) ([#1685](https://github.com/vuejs/vuepress/issues/1685)) ([6460b0c](https://github.com/vuejs/vuepress/commit/6460b0c)) +* **$plugin-medium-zoom:** disable zoom for links ([#1719](https://github.com/vuejs/vuepress/issues/1719)) ([e3393e3](https://github.com/vuejs/vuepress/commit/e3393e3)) +* **$theme-default:** `sidebarDepth: 0` not working in YAML frontmatter (close: [#1701](https://github.com/vuejs/vuepress/issues/1701)) ([#1702](https://github.com/vuejs/vuepress/issues/1702)) ([0624828](https://github.com/vuejs/vuepress/commit/0624828)) + + +### Features + +* **$theme-default:** support custom URL scheme for external links ([#1677](https://github.com/vuejs/vuepress/issues/1677)) ([27f005b](https://github.com/vuejs/vuepress/commit/27f005b)) +* **$theme-default:** use router for Algolia search to reach no refresh ([#1706](https://github +.com/vuejs/vuepress/issues/1706)) ([644142b](https://github.com/vuejs/vuepress/commit/644142b)) + + + ## [1.0.2](https://github.com/vuejs/vuepress/compare/v1.0.1...v1.0.2) (2019-06-22) From 3b87a54354829a86440827aa7f16a4e5be6a33c0 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Sun, 4 Aug 2019 22:19:12 -0400 Subject: [PATCH 224/260] Create CODE_OF_CONDUCT.md (#1736) --- CODE_OF_CONDUCT.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..2c495d25 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at vuepresscore@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq From 93a1ec05cc36b8c9c5dbdad2841b9b5c563f16b8 Mon Sep 17 00:00:00 2001 From: Billyyyyy3320 Date: Mon, 5 Aug 2019 23:42:16 +0800 Subject: [PATCH 225/260] chore: fix script typo (#1740) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dd0eec3c..504dd173 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "description": "Minimalistic doc generator with Vue component based layout system", "scripts": { "bootstrap": "yarn && lerna bootstrap && yarn tsc", - "claan": "lerna clean && rm -rf node_modules", + "clean": "lerna clean && rm -rf node_modules", "boot": "node scripts/bootstrap.js", "remote-version": "node scripts/remote-version.js", "dev": "yarn tsc && yarn dev:docs", From 0eafea9c593f924e597cbfbd7503184eeaf10843 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Tue, 6 Aug 2019 13:25:11 +0200 Subject: [PATCH 226/260] chore: remove next badge from readme (#1746) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d601fd76..d51c54ad 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@

Downloads Version - npm next version License vuepress channel on Discord

From d50fa1bc17c02d32db0f13900f857da60dd39ae6 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 7 Aug 2019 11:02:34 -0400 Subject: [PATCH 227/260] docs: adding all-contributors table for core team members (#1744) * adding all-contributors table for core team members * chore: add self to core contributors * Add Franck to core contributors * chore: add @sobolevn to core contributors --- .all-contributorsrc | 74 +++++++++++++++++++++++++++++++++++++++++++++ README.md | 22 +++++++++++++- package.json | 3 +- 3 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 .all-contributorsrc diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 00000000..aef9b2e6 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,74 @@ +{ + "projectName": "VuePress", + "projectOwner": "Ulivz", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 100, + "commit": false, + "commitConvention": "none", + "contributors": [ + { + "login": "yyx990803", + "name": "Evan You", + "avatar_url": "https://avatars1.githubusercontent.com/u/499550?v=4", + "profile": "http://evanyou.me", + "contributions": [ + "code" + ] + }, + { + "login": "ulivz", + "name": "ULIVZ", + "avatar_url": "https://avatars1.githubusercontent.com/u/23133919?v=4", + "profile": "http://ulivz.com", + "contributions": [ + "code", + "doc" + ] + }, + { + "login": "jlooper", + "name": "Jen Looper", + "avatar_url": "https://avatars2.githubusercontent.com/u/1450004?v=4", + "profile": "http://www.jenlooper.com", + "contributions": [ + "doc", + "design" + ] + }, + { + "login": "sarahdayan", + "name": "Sarah Dayan", + "avatar_url": "https://avatars0.githubusercontent.com/u/5370675?v=4", + "profile": "https://frontstuff.io/", + "contributions": [ + "code", + "doc" + ] + }, + { + "login": "kefranabg", + "name": "Franck Abgrall", + "avatar_url": "https://avatars3.githubusercontent.com/u/9840435?v=4", + "profile": "https://www.franck-abgrall.me/", + "contributions": [ + "code", + "question" + ] + }, + { + "login": "sobolevn", + "name": "Nikita Sobolev", + "avatar_url": "https://avatars1.githubusercontent.com/u/4660275?v=4", + "profile": "https://sobolevn.me", + "contributions": [ + "code", + "doc" + ] + } + ], + "contributorsPerLine": 7 +} diff --git a/README.md b/README.md index d51c54ad..86037680 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ This is the branch for `VuePress 1.x` and docs are available at https://v1.vuepr ## Contribution -``` bash +```bash yarn bootstrap # Install and link dependencies for this lerna repo yarn dev # serves VuePress' own docs with itself yarn test # make sure your code change pass the test @@ -49,6 +49,26 @@ If you have a VuePress-related project/component/tool, add it with a pull reques ## Contributors +### Core Team + + + + + + + + + + + + + +
Evan You
Evan You

💻
ULIVZ
ULIVZ

💻 📖
Jen Looper
Jen Looper

📖 🎨
Sarah Dayan
Sarah Dayan

💻 📖
Franck Abgrall
Franck Abgrall

💻 💬
Nikita Sobolev
Nikita Sobolev

💻 📖
+ + + + + ### Code Contributors This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. diff --git a/package.json b/package.json index 504dd173..148676f6 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "@types/semver": "^6.0.0", "@types/hash-sum": "^1.0.0", "@types/globby": "^9.1.0", - "@types/escape-html": "^0.0.20" + "@types/escape-html": "^0.0.20", + "all-contributors-cli": "^6.8.1" } } From f6a2fb9f72a84eb4da9092a75eeb806abcb72946 Mon Sep 17 00:00:00 2001 From: ntnyq Date: Wed, 7 Aug 2019 23:24:30 +0800 Subject: [PATCH 228/260] docs: fix typo (#1742) --- packages/docs/docs/zh/config/README.md | 2 +- packages/docs/docs/zh/plugin/option-api.md | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/docs/docs/zh/config/README.md b/packages/docs/docs/zh/config/README.md index 22782537..7bdbdb9c 100644 --- a/packages/docs/docs/zh/config/README.md +++ b/packages/docs/docs/zh/config/README.md @@ -14,7 +14,7 @@ sidebar: auto 部署站点的基础路径,如果你想让你的网站部署到一个子路径下,你将需要设置它。如 GitHub pages,如果你想将你的网站部署到 `https://foo.github.io/bar/`,那么 `base` 应该被设置成 `"/bar/"`,它的值应当总是以斜杠开始,并以斜杠结束。 -`base` 将会自动地作为前缀插入到所有以 `/` 开始的其他选项的链接中,所以你只需要指定一次。 +`base` 将会作为前缀自动地插入到所有以 `/` 开始的其他选项的链接中,所以你只需要指定一次。 **参考:** diff --git a/packages/docs/docs/zh/plugin/option-api.md b/packages/docs/docs/zh/plugin/option-api.md index 2ea8e80c..d8a15a84 100644 --- a/packages/docs/docs/zh/plugin/option-api.md +++ b/packages/docs/docs/zh/plugin/option-api.md @@ -11,7 +11,7 @@ metaTitle: Option API | Plugin 插件的名字。 -在内部,VuePress 将会使用插件的包名作为插件的名称。当你你插件是一个本地插件(即直接使用了一个纯函数)时,请确保设定了该选项,这对调试更有利。 +在内部,VuePress 将会使用插件的包名作为插件的名称。当你的插件是一个本地插件(即直接使用了一个纯函数)时,请确保设定了该选项,这对调试更有利。 ```js // .vuepress/config.js @@ -241,7 +241,7 @@ module.exports = { } ``` -此选项还支持动态代码,允许你使用触摸编译上下文的能力来做更多的事: +此选项还支持动态代码,允许你使用贴近编译上下文的能力来做更多的事: ```js module.exports = (option, context) => { @@ -302,10 +302,10 @@ module.exports = { regularPath, // 当前页面遵循文件层次结构的默认链接 path, // 当前页面的实际链接(在 permalink 不存在时,使用 regularPath ) } = $page - + // 1. Add extra fields. $page.xxx = 'xxx' - + // 2. Change frontmatter. frontmatter.sidebar = 'auto' } @@ -333,7 +333,7 @@ module.exports = { - 类型: `String` - 默认值: `undefined` -指向 `mixin` 文件的路径,它让你你可以控制根组件的生命周期: +指向 `mixin` 文件的路径,它让你可以控制根组件的生命周期: ``` js // 插件的入口 @@ -411,7 +411,7 @@ module.exports = { - 类型: `Array|String` - 默认值: `undefined` -你可能想注入某些全局的 UI,并固定在页面中的某处,如 `back-to-top`, `popup`。在 VuePress 中,**一个全局 UI 就是一个 Vue 组件。**你可以直接配置该全局组件的名称,如: +你可能想注入某些全局的 UI,并固定在页面中的某处,如 `back-to-top`, `popup`。在 VuePress 中,**一个全局 UI 就是一个 Vue 组件**。你可以直接配置该全局组件的名称,如: ``` js module.exports = { @@ -439,7 +439,7 @@ VuePress 将会自动将这些组件注入到布局组件的隔壁: - 类型: `function` - 默认值: `undefined` -注册一个额外的 command 来增强 vuepress 的 CLI。这个函数将会以一个 [CAC](https://github.com/cacjs/cac) 的实例作为第一个参数被调用。 +注册一个额外的 command 来增强 VuePress 的 CLI。这个函数将会以一个 [CAC](https://github.com/cacjs/cac) 的实例作为第一个参数被调用。 ```js module.exports = { From 8039f421f7525852daf2dc5787c19fea19659242 Mon Sep 17 00:00:00 2001 From: Sarah Dayan Date: Wed, 7 Aug 2019 17:24:58 +0200 Subject: [PATCH 229/260] docs: documentation linting (#1745) * chore: install textlint * chore: add textlint rules * feat: set up configuration file and command * fix: run textlint on files * chore: lint .textlintrc.js * chore: add custom terms * chore: add comment filter * fix: fix frontmatter term * chore: set subjective rules to warning severity * fix: manually fix issues * chore: add script as pre-commit hook --- .lintstagedrc | 3 + package.json | 21 +- packages/docs/.lintstagedrc | 3 + packages/docs/.textlint.terms.json | 8 + packages/docs/.textlintrc.js | 23 + packages/docs/docs/api/cli.md | 4 +- packages/docs/docs/api/node.md | 8 +- packages/docs/docs/config/README.md | 42 +- packages/docs/docs/faq/README.md | 22 +- packages/docs/docs/guide/README.md | 18 +- packages/docs/docs/guide/assets.md | 14 +- packages/docs/docs/guide/basic-config.md | 12 +- packages/docs/docs/guide/deploy.md | 14 +- .../docs/docs/guide/directory-structure.md | 10 +- packages/docs/docs/guide/frontmatter.md | 14 +- packages/docs/docs/guide/getting-started.md | 4 +- packages/docs/docs/guide/global-computed.md | 6 +- packages/docs/docs/guide/i18n.md | 6 +- packages/docs/docs/guide/markdown-slot.md | 16 +- packages/docs/docs/guide/markdown.md | 18 +- packages/docs/docs/guide/permalinks.md | 10 +- packages/docs/docs/guide/using-vue.md | 28 +- .../docs/miscellaneous/design-concepts.md | 32 +- packages/docs/docs/miscellaneous/glossary.md | 12 +- packages/docs/docs/plugin/README.md | 12 +- packages/docs/docs/plugin/life-cycle.md | 2 +- packages/docs/docs/plugin/option-api.md | 34 +- packages/docs/docs/plugin/using-a-plugin.md | 4 +- packages/docs/docs/plugin/writing-a-plugin.md | 4 +- packages/docs/docs/theme/README.md | 2 +- .../docs/docs/theme/default-theme-config.md | 38 +- packages/docs/docs/theme/inheritance.md | 50 +- packages/docs/docs/theme/option-api.md | 10 +- packages/docs/docs/theme/writing-a-theme.md | 32 +- packages/docs/package.json | 15 +- yarn.lock | 942 +++++++++++++++++- 36 files changed, 1232 insertions(+), 261 deletions(-) create mode 100644 .lintstagedrc create mode 100644 packages/docs/.lintstagedrc create mode 100644 packages/docs/.textlint.terms.json create mode 100644 packages/docs/.textlintrc.js diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100644 index 00000000..693feae1 --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,3 @@ +{ + "*.{js,vue}": ["eslint --fix", "git add"] +} diff --git a/package.json b/package.json index 148676f6..7224ad64 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ ], "description": "Minimalistic doc generator with Vue component based layout system", "scripts": { + "precommit": "lint-staged", "bootstrap": "yarn && lerna bootstrap && yarn tsc", "clean": "lerna clean && rm -rf node_modules", "boot": "node scripts/bootstrap.js", @@ -24,25 +25,23 @@ "test": "node scripts/test.js", "tsc": "lerna run tsc" }, - "gitHooks": { - "pre-commit": "lint-staged" - }, - "lint-staged": { - "*.{js,vue}": [ - "eslint --fix", - "git add" - ] - }, "devDependencies": { + "@types/escape-html": "^0.0.20", + "@types/fs-extra": "^5.0.4", + "@types/globby": "^9.1.0", + "@types/hash-sum": "^1.0.0", + "@types/lru-cache": "^4.1.1", + "@types/node": "^10.12.12", + "@types/semver": "^6.0.0", "conventional-changelog-cli": "^2.0.21", "eslint": "^4.19.1", "eslint-plugin-jest": "^21.15.1", "eslint-plugin-vue-libs": "^3.0.0", + "husky": "^3.0.2", + "inquirer": "^6.2.0", "lerna": "3.13.4", "lint-staged": "^8.1.5", "minimist": "^1.2.0", - "yorkie": "^2.0.0", - "inquirer": "^6.2.0", "typescript": "^3.2.2", "@types/node": "^10.12.12", "@types/lru-cache": "^4.1.1", diff --git a/packages/docs/.lintstagedrc b/packages/docs/.lintstagedrc new file mode 100644 index 00000000..0dbeb548 --- /dev/null +++ b/packages/docs/.lintstagedrc @@ -0,0 +1,3 @@ +{ + "docs/**/*.md": ["yarn lint-md", "git add"] +} diff --git a/packages/docs/.textlint.terms.json b/packages/docs/.textlint.terms.json new file mode 100644 index 00000000..7ea8ecd7 --- /dev/null +++ b/packages/docs/.textlint.terms.json @@ -0,0 +1,8 @@ +[ + "Stylus", + "VuePress", + [ + "front[- ]matter", + "frontmatter" + ] +] diff --git a/packages/docs/.textlintrc.js b/packages/docs/.textlintrc.js new file mode 100644 index 00000000..068b522b --- /dev/null +++ b/packages/docs/.textlintrc.js @@ -0,0 +1,23 @@ +module.exports = { + rules: { + '@textlint-rule/no-unmatched-pair': true, + apostrophe: true, + 'common-misspellings': true, + diacritics: true, + 'en-capitalization': { + allowHeading: false + }, + 'stop-words': { + severity: 'warning' + }, + terminology: { + terms: `${__dirname}/.textlint.terms.json` + }, + 'write-good': { + severity: 'warning' + } + }, + filters: { + comments: true + } +} diff --git a/packages/docs/docs/api/cli.md b/packages/docs/docs/api/cli.md index 32bb29c2..54cbff90 100644 --- a/packages/docs/docs/api/cli.md +++ b/packages/docs/docs/api/cli.md @@ -1,4 +1,4 @@ -# Command Line Interface +# Command-line Interface ## Usage @@ -40,7 +40,7 @@ See [host](../config/README.md#host). Open browser when ready. ### --no-clear-screen -do not clear screen when dev server is ready. +Do not clear screen when dev server is ready. ## eject diff --git a/packages/docs/docs/api/node.md b/packages/docs/docs/api/node.md index 0e712b7d..55db476a 100644 --- a/packages/docs/docs/api/node.md +++ b/packages/docs/docs/api/node.md @@ -14,7 +14,7 @@ Create a VuePress application. #### App.prototype.process: () => Promise\ | never -A asynchronous method used to prepare the context of the current app. which contains loading pages and plugins, apply plugins, etc. +An asynchronous method used to prepare the context of the current app, and which contains loading pages and plugins, apply plugins, etc. #### App.prototype.dev: () => Promise\ | never @@ -27,7 +27,7 @@ Launch a build process with current app context. ### dev(\[options]): Promise\ -Start a development server, actually it's implemented by `createApp`: +Start a development server, actually it’s implemented by `createApp`: ```js async function dev (options) { @@ -39,7 +39,7 @@ async function dev (options) { ### build(\[options]): Promise\ -Build your source files as a static site, actually it's implemented by `createApp`: +Build your source files as a static site, actually it’s implemented by `createApp`: ```js async function build (options) { @@ -96,4 +96,4 @@ See [dest](../config/README.md#dest). - Type: `object` - Required: `{}` -It's very useful when you're writing tests and don't want to depend on actual config file, for all options please head [siteConfig](../config/README.md). +It’s useful when you’re writing tests and don’t want to depend on actual config file, for all options please head [siteConfig](../config/README.md). diff --git a/packages/docs/docs/config/README.md b/packages/docs/docs/config/README.md index 96ea75e6..ebdcb8f2 100644 --- a/packages/docs/docs/config/README.md +++ b/packages/docs/docs/config/README.md @@ -14,7 +14,7 @@ sidebar: auto - Type: `string` - Default: `/` -The base URL the site will be deployed at. You will need to set this if you plan to deploy your site under a sub path, for example, GitHub pages. If you plan to deploy your site to `https://foo.github.io/bar/`, then `base` should be set to `"/bar/"`. It should always start and end with a slash. +The base URL the site will be deployed at. You will need to set this if you plan to deploy your site under a sub path, for example, GitHub pages. If you plan to deploy your site to `https://foo.github.io/bar/`, then you should set `base` to `"/bar/"`. It should always start and end with a slash. The `base` is automatically prepended to all the URLs that start with `/` in other options, so you only need to specify it once. @@ -35,14 +35,14 @@ Title for the site. This will be the prefix for all page titles, and displayed i - Type: `string` - Default: `undefined` -Description for the site. This will be rendered as a `` tag in the page HTML. +Description for the site. This will render as a `` tag in the page HTML. ### head - Type: `Array` - Default: `[]` -Extra tags to be injected to the page HTML ``. Each tag can be specified in the form of `[tagName, { attrName: attrValue }, innerHTML?]`. For example, to add a custom favicon: +Extra tags to inject into the page HTML ``. You can specify each tag in the form of `[tagName, { attrName: attrValue }, innerHTML?]`. For example, to add a custom favicon: ``` js module.exports = { @@ -102,10 +102,10 @@ A function to control what files should have `` resource hin VuePress uses [cache-loader](https://github.com/webpack-contrib/cache-loader) by default to greatly speed up the compilation of webpack. -This option can be used to specify the path to the cache, and can also remove the cache before each build by setting it to `false`. +You can use this option to specify the path to the cache, and can also remove the cache before each build by setting it to `false`. ::: tip -This option can also be used through the CLI: +You can also use this option through the CLI: ```bash vuepress dev docs --cache .cache # set cache path @@ -118,7 +118,7 @@ vuepress dev docs --no-cache # remove cache before each build. - Type: `Array` - Default: `[]` -Specify extra files to be watched. +Specify extra files to watch. You can watch any file if you want. File changes will trigger `vuepress` rebuilding and real-time updates. @@ -135,9 +135,9 @@ module.exports = { ### palette.styl -If you wish to apply simple color overrides to the styling of the [default preset](https://github.com/vuejs/vuepress/blob/master/packages/@vuepress/core/lib/client/style/config.styl) or define some color variables for using later, you can create an `.vuepress/styles/palette.styl` file. +To apply simple color overrides to the styling of the [default preset](https://github.com/vuejs/vuepress/blob/master/packages/@vuepress/core/lib/client/style/config.styl) or define some color variables for using later, you can create a `.vuepress/styles/palette.styl` file. -There are a few color variables you can tweak: +There are some color variables you can tweak: ``` stylus // showing default values @@ -148,12 +148,12 @@ $codeBgColor = #282c34 ``` ::: danger Note -You should ONLY write color variables in this file. since `palette.styl` will be imported at the end of the root stylus config file, as a config, it will be used by multiple files, so once you wrote styles here, your style would be duplicated by multiple times. +You should ONLY write color variables in this file. Since `palette.styl` will be imported at the end of the root Stylus config file, as a config, several files will use it, so once you wrote styles here, your style would be duplicated by multiple times. ::: ### index.styl -VuePress provides a convenient way to add extra styles. you can create an `.vuepress/styles/index.styl` file for that. This is a [Stylus](http://stylus-lang.com/) file but you can use normal CSS syntax as well. +VuePress provides a convenient way to add extra styles. You can create a `.vuepress/styles/index.styl` file for that. This is a [Stylus](http://stylus-lang.com/) file but you can use normal CSS syntax as well. ```stylus .content { @@ -163,7 +163,7 @@ VuePress provides a convenient way to add extra styles. you can create an `.vuep **Also see:** -- [Why can't `palette.styl` and `index.styl` merge into one API?](../faq/README.md#why-can-t-palette-styl-and-index-styl-merge-into-one-api) +- [Why can’t `palette.styl` and `index.styl` merge into one API?](../faq/README.md#why-can-t-palette-styl-and-index-styl-merge-into-one-api) ## Theming @@ -196,7 +196,7 @@ Provide config options to the used theme. The options will vary depending on the - Type: `Object|Array` - Default: `undefined` -Please refer to [Plugin > Using a plugin](../plugin/using-a-plugin.md) to learn how to use a plugin. +Please check out [Plugin > Using a plugin](../plugin/using-a-plugin.md) to learn how to use a plugin. ## Markdown @@ -223,7 +223,7 @@ Function for transforming [header](../miscellaneous/glossary.md#headers) texts i - Type: `Object` - Default: `{ permalink: true, permalinkBefore: true, permalinkSymbol: '#' }` -Options for [markdown-it-anchor](https://github.com/valeriangalliat/markdown-it-anchor). (Note: prefer `markdown.slugify` if you want to customize header ids.) +Options for [markdown-it-anchor](https://github.com/valeriangalliat/markdown-it-anchor). (Note: prefer `markdown.slugify` to customize header ids.) ### markdown.externalLinks @@ -237,11 +237,11 @@ The key and value pair will be added to `` tags that point to an external lin - Type: `Object` - Default: `{ includeLevel: [2, 3] }` -Options for [markdown-it-table-of-contents](https://github.com/Oktavilla/markdown-it-table-of-contents). (Note: prefer `markdown.slugify` if you want to customize header ids.) +Options for [markdown-it-table-of-contents](https://github.com/Oktavilla/markdown-it-table-of-contents). (Note: prefer `markdown.slugify` to customize header ids.) ### markdown.plugins -You can install any markdown-it plugins through `markdown.plugins` option. It is similar with [using VuePress plugins](../plugin/using-a-plugin.html#using-a-plugin). You can either use Babel style or object style. The `markdown-it-` prefix is optional and can omit in the list. +You can install any markdown-it plugins through `markdown.plugins` option. It’s similar with [using VuePress plugins](../plugin/using-a-plugin.html#using-a-plugin). You can either use Babel style or object style. The `markdown-it-` prefix is optional and can omit in the list. ``` js module.exports = { @@ -256,7 +256,7 @@ module.exports = { } ``` -or +Or ``` js module.exports = { @@ -276,7 +276,7 @@ module.exports = { - Type: `Function` - Default: `undefined` -A function to modify default config or apply additional plugins to the [markdown-it](https://github.com/markdown-it/markdown-it) instance used to render source files. e.g. +A function to edit default config or apply extra plugins to the [markdown-it](https://github.com/markdown-it/markdown-it) instance used to render source files. For example: ``` js module.exports = { @@ -306,7 +306,7 @@ VuePress comes with built-in webpack config for the CSS pre-processors listed be Options for [postcss-loader](https://github.com/postcss/postcss-loader). Note specifying this value will overwrite autoprefixer and you will need to include it yourself. -### stylus +### Stylus - Type: `Object` - Default: `{ preferPathResolver: 'webpack' }` @@ -320,7 +320,7 @@ Options for [stylus-loader](https://github.com/shama/stylus-loader). Options for [sass-loader](https://github.com/webpack-contrib/sass-loader) to load `*.scss` files. -### sass +### Sass - Type: `Object` - Default: `{ indentedSyntax: true }` @@ -339,7 +339,7 @@ Options for [less-loader](https://github.com/webpack-contrib/less-loader). - Type: `Object | Function` - Default: `undefined` -Modify the internal webpack config. If the value is an Object, it will be merged into the final config using [webpack-merge](https://github.com/survivejs/webpack-merge); If the value is a function, it will receive the config as the 1st argument and an `isServer` flag as the 2nd argument. You can either mutate the config directly, or return an object to be merged: +Edit the internal webpack config. If the value is an Object, it will be merged into the final config using [webpack-merge](https://github.com/survivejs/webpack-merge); If the value is a function, it will receive the config as the 1st argument and an `isServer` flag as the 2nd argument. You can either mutate the config directly, or return an object to merge: ``` js module.exports = { @@ -356,7 +356,7 @@ module.exports = { - Type: `Function` - Default: `undefined` -Modify the internal webpack config with [webpack-chain](https://github.com/mozilla-neutrino/webpack-chain). +Edit the internal webpack config with [webpack-chain](https://github.com/mozilla-neutrino/webpack-chain). ``` js module.exports = { diff --git a/packages/docs/docs/faq/README.md b/packages/docs/docs/faq/README.md index e7051490..3bbec4e2 100644 --- a/packages/docs/docs/faq/README.md +++ b/packages/docs/docs/faq/README.md @@ -4,13 +4,13 @@ sidebar: auto # FAQ -## Why can't `palette.styl` and `index.styl` merge into one API? +## Why can’t `palette.styl` and `index.styl` merge into one API? -The `palette.styl` is responsible for global color settings. During compilation, theme color constants should be resolved by the preprocessor first and then be applied to the global context. +The `palette.styl` is responsible for global color settings. During compilation, theme color constants should be resolved by the preprocessor first and then be applied to the global context. -But for `index.styl`. its job is to override the default styles of application. According to the priority principle of css, the later style has a higher priority, so it should be generated at the end of the CSS file. +But for `index.styl`, its job is to override the default styles of application. According to the priority principle of CSS, the later style has a higher priority, so it should be generated at the end of the CSS file. -A simple diagram describing the stylus compiler's compilation order as follows: +A simple diagram describing the Stylus compiler’s compilation order as follows: @flowstart stage1=>operation: palette.styl @@ -22,11 +22,11 @@ stage1->stage2->stage3
-## What's the differences between the `clientDynamicModules` and `enhanceAppFiles`? +## What’s the differences between the `clientDynamicModules` and `enhanceAppFiles`? -Let's take a look back first, both `clientDynamicModules` and `enhanceAppFiles` can generate modules with dynamic javascript code during compile time. +Let’s take a look back first, both `clientDynamicModules` and `enhanceAppFiles` can generate modules with dynamic JavaScript code during compile time. -The difference is that the files generated by `enhanceAppFiles` will be loaded and applied automatically when the application is initialized on the client side. While the files generated by `clientDynamicModules` needs to be imported as `@dynamic/xxx` by the users themselves. +The difference is that the files generated by `enhanceAppFiles` will be loaded and applied automatically when the application is initialized on the client-side, while the files generated by `clientDynamicModules` need to be imported as `@dynamic/xxx` by the users themselves. ```js module.exports = (options, ctx) => ({ @@ -48,12 +48,12 @@ module.exports = (options, ctx) => ({ ## When do I need to use `enhanceAppFiles`? -1. I want to execute some code on the client side automatically. -2. I don't have a need for reuse of this module. +1. I want to execute some code on the client-side automatically. +2. I don’t need to reuse this module. **Example:** -- [@vuepress/plugin-register-components](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-register-components/index.js#L24): Automatically registering components on the client side. +- [@vuepress/plugin-register-components](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-register-components/index.js#L24): Automatically registering components on the client-side. - [@vuepress/plugin-pagination](https://github.com/vuejs/vuepress/blob/master/packages/@vuepress/plugin-pagination/index.js#L14): Automatically insert Vue plugins to expand the API of the client. ## When do I need to use `clientDynamicModules`? @@ -63,5 +63,5 @@ module.exports = (options, ctx) => ({ **Example:** -- [@vuepress/plugin-blog](https://github.com/ulivz/vuepress-plugin-blog/blob/master/src/index.ts#L167): Using compile-time metadata to generate some dynamic blog-related modules and initialize them on the client side by using `enhanceAppFiles`. +- [@vuepress/plugin-blog](https://github.com/ulivz/vuepress-plugin-blog/blob/master/src/index.ts#L167): Using compile-time metadata to generate some dynamic blog-related modules and initialize them on the client-side by using `enhanceAppFiles`. diff --git a/packages/docs/docs/guide/README.md b/packages/docs/docs/guide/README.md index d8eabdd9..023e5095 100644 --- a/packages/docs/docs/guide/README.md +++ b/packages/docs/docs/guide/README.md @@ -2,21 +2,21 @@ -VuePress is composed of two parts: a [minimalistic static site generator](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/core) with a Vue-powered [theming system](../theme/README.md) and [Plugin API](../plugin/README.md), and a [default theme](../theme/default-theme-config.md) optimized for writing technical documentation. It was created to support the documentation needs of Vue's own sub projects. +VuePress is composed of two parts: a [minimalistic static site generator](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/core) with a Vue-powered [theming system](../theme/README.md) and [Plugin API](../plugin/README.md), and a [default theme](../theme/default-theme-config.md) optimized for writing technical documentation. It was created to support the documentation needs of Vue’s own sub projects. -Each page generated by VuePress has its own pre-rendered static HTML, providing great loading performance and is SEO-friendly. Once the page is loaded, however, Vue takes over the static content and turns it into a full Single-Page Application (SPA). Additional pages are fetched on demand as the user navigates around the site. +Each page generated by VuePress has its own pre-rendered static HTML, providing great loading performance and is SEO-friendly. Yet, once the page is loaded, Vue takes over the static content and turns it into a full Single-Page Application (SPA). Extra pages are fetched on demand as the user navigates around the site. ## How It Works -A VuePress site is in fact a SPA powered by [Vue](http://vuejs.org/), [Vue Router](https://github.com/vuejs/vue-router) and [webpack](http://webpack.js.org/). If you've used Vue before, you will notice the familiar development experience when you are writing or developing custom themes (you can even use Vue DevTools to debug your custom theme!). +A VuePress site is in fact a SPA powered by [Vue](http://vuejs.org/), [Vue Router](https://github.com/vuejs/vue-router) and [webpack](http://webpack.js.org/). If you’ve used Vue before, you will notice the familiar development experience when you are writing or developing custom themes (you can even use Vue DevTools to debug your custom theme!). During the build, we create a server-rendered version of the app and render the corresponding HTML by virtually visiting each route. This approach is inspired by [Nuxt](https://nuxtjs.org/)'s `nuxt generate` command and other projects like [Gatsby](https://www.gatsbyjs.org/). -Each markdown file is compiled into HTML with [markdown-it](https://github.com/markdown-it/markdown-it) and then processed as the template of a Vue component. This allows you to directly use Vue inside your markdown files and is great when you need to embed dynamic content. +Each Markdown file is compiled into HTML with [markdown-it](https://github.com/markdown-it/markdown-it) and then processed as the template of a Vue component. This allows you to directly use Vue inside your Markdown files and is great when you need to embed dynamic content. ## Features -**Built-in markdown extensions** +**Built-in Markdown extensions** * [Table of Contents](../guide/markdown.md#table-of-contents) * [Custom Containers](../guide/markdown.md#custom-containers) @@ -65,16 +65,16 @@ Each markdown file is compiled into HTML with [markdown-it](https://github.com/m ### Nuxt -Nuxt is capable of doing what VuePress does, but it is designed for building applications. VuePress is focused on content-centric static sites and provides features tailored for technical documentation out of the box. +Nuxt is capable of doing what VuePress does, but it’s designed for building applications. VuePress is focused on content-centric static sites and provides features tailored for technical documentation out of the box. ### Docsify / Docute -Both are great projects and also Vue-powered. Except they are both completely runtime-driven and therefore not SEO-friendly. If you don't care about SEO and don't want to mess with installing dependencies, these are still great choices. +Both are great projects and also Vue-powered. Except they are both fully runtime-driven and therefore not SEO-friendly. If you don’t care for SEO and don’t want to mess with installing dependencies, these are still great choices. ### Hexo -Hexo has been serving the Vue docs well - in fact, we are probably still a long way to go from migrating away from it for our main site. The biggest problem is that its theming system is very static and string-based - we really want to leverage Vue for both the layout and the interactivity. Also, Hexo's markdown rendering isn't the most flexible to configure. +Hexo has been serving the Vue docs well - in fact, we are probably still a long way to go from migrating away from it for our main site. The biggest problem is that its theming system is static and string-based - we want to take advantage of Vue for both the layout and the interactivity. Also, Hexo’s Markdown rendering isn’t the most flexible to configure. ### GitBook -We've been using GitBook for most of our sub project docs. The primary problem with GitBook is that its development reload performance is intolerable with a large amount of files. The default theme also has a pretty limiting navigation structure, and the theming system is, again, not Vue based. The team behind GitBook is also more focused on turning it into a commercial product rather than an open-source tool. +We’ve been using GitBook for most of our sub project docs. The primary problem with GitBook is that its development reload performance is intolerable with a large amount of files. The default theme also has a pretty limiting navigation structure, and the theming system is, again, not Vue based. The team behind GitBook is also more focused on turning it into a commercial product rather than an open-source tool. diff --git a/packages/docs/docs/guide/assets.md b/packages/docs/docs/guide/assets.md index 77af2b62..f2fa6053 100644 --- a/packages/docs/docs/guide/assets.md +++ b/packages/docs/docs/guide/assets.md @@ -2,7 +2,7 @@ ## Relative URLs -All markdown files are compiled into Vue components and processed by webpack, therefore you can and **should prefer** referencing any asset using relative URLs: +All Markdown files are compiled into Vue components and processed by webpack, so you can and **should prefer** referencing any asset using relative URLs: ``` md ![An image](./image.png) @@ -10,14 +10,14 @@ All markdown files are compiled into Vue components and processed by webpack, th This would work the same way as in `*.vue` file templates. The image will be processed with `url-loader` and `file-loader`, and copied to appropriate locations in the generated static build. -In addition, you can use the `~` prefix to explicitly indicate this is a webpack module request, allowing you to reference files with webpack aliases or from npm dependencies: +Also, you can use the `~` prefix to explicitly specify this is a webpack module request, allowing you to reference files with webpack aliases or from npm dependencies: ``` md ![Image from alias](~@alias/image.png) ![Image from dependency](~some-dependency/image.png) ``` -webpack aliases can be configured via [configureWebpack](../config/README.md#configurewebpack) in `.vuepress/config.js`. Example: +Webpack aliases can be configured via [configureWebpack](../config/README.md#configurewebpack) in `.vuepress/config.js`. Example: ``` js module.exports = { @@ -33,18 +33,18 @@ module.exports = { ## Public Files -Sometimes you may need to provide static assets that are not directly referenced in any of your markdown or theme components - for example, favicons and PWA icons. In such cases, you can put them inside `.vuepress/public` and they will be copied to the root of the generated directory. +Sometimes you may need to provide static assets that are not directly referenced in any of your Markdown or theme components - for example, favicons and PWA icons. In such cases, you can put them inside `.vuepress/public` and they will be copied to the root of the generated directory. ## Base URL If your site is deployed to a non-root URL, you will need to set the `base` option in `.vuepress/config.js`. For example, if you plan to deploy your site to `https://foo.github.io/bar/`, then `base` should be set to `"/bar/"` (it should always start and end with a slash). -With a base URL, if you want to reference an image in `.vuepress/public`, you'd have to use URLs like `/bar/image.png`. However, this is brittle if you ever decide to change the `base` later. To help with that, VuePress provides a built-in helper `$withBase` (injected onto Vue's prototype) that generates the correct path: +With a base URL, to reference an image in `.vuepress/public`, you’d have to use URLs like `/bar/image.png`. Yet, this is brittle if you ever decide to change the `base` later. To help with that, VuePress provides a built-in helper `$withBase` (injected onto Vue’s prototype) that generates the correct path: ``` vue foo ``` -Note you can use the above syntax not only in theme components, but in your markdown files as well. +Note you can use the above syntax not only in theme components, but in your Markdown files as well. -In addition, if a `base` is set, it is automatically prepended to all asset URLs in `.vuepress/config.js` options. +Also, if a `base` is set, it’s automatically prepended to all asset URLs in `.vuepress/config.js` options. diff --git a/packages/docs/docs/guide/basic-config.md b/packages/docs/docs/guide/basic-config.md index 5a17dbcd..5e72fffd 100644 --- a/packages/docs/docs/guide/basic-config.md +++ b/packages/docs/docs/guide/basic-config.md @@ -2,7 +2,7 @@ ## Config File -Without any configuration, the page is pretty minimal, and the user has no way to navigate around the site. To customize your site, let's first create a `.vuepress` directory inside your docs directory. This is where all VuePress-specific files will be placed in. Your project structure is probably like this: +Without any configuration, the page is pretty minimal, and the user has no way to navigate around the site. To customize your site, let’s first create a `.vuepress` directory inside your docs directory. This is where all VuePress-specific files will be placed in. Your project structure is probably like this: ``` . @@ -22,9 +22,9 @@ module.exports = { } ``` -If you've got the dev server running, you should see the page now has a header with the title and a search box. VuePress comes with built-in headers-based search - it automatically builds a simple search index from the title, `h2` and `h3` headers from all the pages. +If you’ve got the dev server running, you should see the page now has a header with the title and a search box. VuePress comes with built-in headers-based search - it automatically builds a simple search index from the title, `h2` and `h3` headers from all the pages. -Consult the [Config Reference](../config/README.md) for a full list of options. +Check out the [Config Reference](../config/README.md) for a full list of options. ::: tip Alternative Config Formats You can also use YAML (`.vuepress/config.yml`) or TOML (`.vuepress/config.toml`) formats for the configuration file. @@ -32,13 +32,13 @@ You can also use YAML (`.vuepress/config.yml`) or TOML (`.vuepress/config.toml`) ## Theme Configuration -A VuePress theme is responsible for all the layout and interactivity details of your site. VuePress ships with a default theme (you are looking at it right now) which is designed for technical documentation. It exposes a number of options that allow you to customize the navbar, sidebar and homepage, etc. For details, check out the [Default Theme Config](../theme/default-theme-config.md) page. +A VuePress theme owns all the layout and interactivity details of your site. VuePress ships with a default theme (you are looking at it right now), designed for technical documentation. It exposes many options that allow you to customize the navbar, sidebar and homepage, etc. For details, check out the [Default Theme Config](../theme/default-theme-config.md) page. -If you wish to develop a custom theme, see [Writing a theme](../theme/writing-a-theme.md). +To develop a custom theme, see [Writing a theme](../theme/writing-a-theme.md). ## App Level Enhancements -Since the VuePress app is a standard Vue app, you can apply app-level enhancements by creating a file `.vuepress/enhanceApp.js`, which will be imported into the app if it is present. The file should `export default` a hook function which will receive an object containing some app-level values. You can use this hook to install additional Vue plugins, register global components, or add additional router hooks: +Since the VuePress app is a standard Vue app, you can apply app-level enhancements by creating a file `.vuepress/enhanceApp.js`, which will be imported into the app if it’s present. The file should `export default` a hook function which will receive an object containing some app-level values. You can use this hook to install extra Vue plugins, register global components, or add extra router hooks: ``` js export default ({ diff --git a/packages/docs/docs/guide/deploy.md b/packages/docs/docs/guide/deploy.md index 0ba55dbb..ae81f8a1 100644 --- a/packages/docs/docs/guide/deploy.md +++ b/packages/docs/docs/guide/deploy.md @@ -1,6 +1,6 @@ # Deploying -The following guides are based on a few shared assumptions: +The following guides are based on some shared assumptions: - You are placing your docs inside the `docs` directory of your project; - You are using the default build output location (`.vuepress/dist`); @@ -20,7 +20,7 @@ The following guides are based on a few shared assumptions: If you are deploying to `https://.github.io/`, you can omit `base` as it defaults to `"/"`. - If you are deploying to `https://.github.io//`, (i.e. your repository is at `https://github.com//`), set `base` to `"//"`. + If you are deploying to `https://.github.io//`, (that is your repository is at `https://github.com//`), set `base` to `"//"`. 2. Inside your project, create `deploy.sh` with the following content (with highlighted lines uncommented appropriately) and run it to deploy: @@ -62,7 +62,7 @@ You can also run the above script in your CI setup to enable automatic deploymen If you are deploying to `https://.github.io/`, you can omit `base` as it defaults to `"/"`. - If you are deploying to `https://.github.io//`, (i.e. your repository is at `https://github.com//`), set `base` to `"//"`. + If you are deploying to `https://.github.io//`, (that is your repository is at `https://github.com//`), set `base` to `"//"`. 2. Create a file named `.travis.yml` in the root of your project. @@ -90,7 +90,7 @@ deploy: If you are deploying to `https://.gitlab.io/`, you can omit `base` as it defaults to `"/"`. - If you are deploying to `https://.gitlab.io//`, (i.e. your repository is at `https://gitlab.com//`), set `base` to `"//"`. + If you are deploying to `https://.gitlab.io//`, (that is your repository is at `https://gitlab.com//`), set `base` to `"//"`. 2. Set `dest` in `.vuepress/config.js` to `public`. @@ -153,7 +153,7 @@ pages: ## Surge -1. First install [surge](https://www.npmjs.com/package/surge), if you haven't already. +1. First install [surge](https://www.npmjs.com/package/surge), if you haven’t already. 2. Run `yarn docs:build` or `npm run docs:build`. @@ -182,7 +182,7 @@ You can also deploy to a [custom domain](http://surge.sh/help/adding-a-custom-do } ``` -This is the configuration of your site. see more at [heroku-buildpack-static](https://github.com/heroku/heroku-buildpack-static). +This is the configuration of your site. See more at [heroku-buildpack-static](https://github.com/heroku/heroku-buildpack-static). 5. Set up your Heroku git remote: @@ -211,4 +211,4 @@ heroku open ## Now -Please refer to [Deploy an example vuepress website with Now](https://zeit.co/examples/vuepress/). +Please check out [Deploy an example VuePress site with Now](https://zeit.co/examples/vuepress/). diff --git a/packages/docs/docs/guide/directory-structure.md b/packages/docs/docs/guide/directory-structure.md index cf666087..091f82ea 100644 --- a/packages/docs/docs/guide/directory-structure.md +++ b/packages/docs/docs/guide/directory-structure.md @@ -2,6 +2,8 @@ VuePress follows the principle of **"Convention is better than configuration"**, the recommended document structure is as follows: + + ::: vue . ├── docs @@ -27,11 +29,13 @@ VuePress follows the principle of **"Convention is better than configuration"**, └── package.json ::: + + ::: warning Note Please note the capitalization of the directory name. ::: -- `docs/.vuepress`: It is used to store global configuration, components, static resources, etc. +- `docs/.vuepress`: It’s used to store global configuration, components, static resources, etc. - `docs/.vuepress/components`: The Vue components in this directory will be automatically registered as global components. - `docs/.vuepress/theme`: Used to store local theme. - `docs/.vuepress/styles`: Stores style related files. @@ -45,7 +49,7 @@ Please note the capitalization of the directory name. - `docs/.vuepress/enhanceApp.js`: App level enhancement. ::: warning Note -When customizing `templates/ssr.html`, or `templates/dev.html`, it is best to modify it on the basis of the [default template files](https://github.com/vuejs/vuepress/blob/master/packages/%40vuepress/core/lib/client/index.dev.html), otherwise it may cause a build failure. +When customizing `templates/ssr.html`, or `templates/dev.html`, it’s best to edit it on the basis of the [default template files](https://github.com/vuejs/vuepress/blob/master/packages/%40vuepress/core/lib/client/index.dev.html), otherwise it may cause a build failure. ::: ## Default Page Routing @@ -58,7 +62,7 @@ For the above directory structure, the default page routing paths are as follows | `/guide/README.md` | `/guide/` | | `/config.md` | `/config.html` | -**Also see:** +**Also see:** - [Config](../config/README.md) - [Theme](../theme/) diff --git a/packages/docs/docs/guide/frontmatter.md b/packages/docs/docs/guide/frontmatter.md index c4b4273e..d4588249 100644 --- a/packages/docs/docs/guide/frontmatter.md +++ b/packages/docs/docs/guide/frontmatter.md @@ -1,6 +1,6 @@ -# Front Matter +# Frontmatter -Any markdown file that contains a YAML front matter block will be processed by [gray-matter](https://github.com/jonschlinkert/gray-matter). The front matter must be the first thing in the markdown file and must take the form of valid YAML set between triple-dashed lines. Here is a basic example: +Any Markdown file that contains a YAML frontmatter block will be processed by [gray-matter](https://github.com/jonschlinkert/gray-matter). The frontmatter must be the first thing in the Markdown file and must take the form of valid YAML set between triple-dashed lines. Here is a basic example: ```markdown --- @@ -12,14 +12,14 @@ lang: en-US Between these triple-dashed lines, you can set predefined variables (see [below](#predefined-variables) for a reference), or even create custom ones of your own. These variables will then be available to you to access using [$frontmatter](./global-computed.md#frontmatter) at the rest of the page, plus all custom and theming components. ::: tip -Front matter variables are **optional** in VuePress. +frontmatter variables are **optional** in VuePress. ::: -## Alternative Front Matter Formats +## Alternative frontmatter Formats -In addition, VuePress also supports JSON or [TOML](https://github.com/toml-lang/toml) front matter. +VuePress also supports JSON or [TOML](https://github.com/toml-lang/toml) frontmatter. -JSON front matter needs to start and end in curly braces: +JSON frontmatter needs to start and end in curly braces: ``` --- @@ -30,7 +30,7 @@ JSON front matter needs to start and end in curly braces: --- ``` -TOML front matter needs to be explicitly marked as TOML: +TOML frontmatter needs to be explicitly marked as TOML: ``` ---toml diff --git a/packages/docs/docs/guide/getting-started.md b/packages/docs/docs/guide/getting-started.md index 321cdf87..3fda7e10 100644 --- a/packages/docs/docs/guide/getting-started.md +++ b/packages/docs/docs/guide/getting-started.md @@ -6,7 +6,7 @@ VuePress requires Node.js >= 8. ## Global Installation -If you just want to play around with VuePress, you can install it globally: +If you only want to play around with VuePress, you can install it globally: ``` bash # install globally @@ -37,7 +37,7 @@ echo '# Hello VuePress' > docs/README.md ``` ::: warning -It is currently recommended to use [Yarn](https://yarnpkg.com/en/) instead of npm when installing VuePress into an existing project that has webpack 3.x as a dependency. Npm fails to generate the correct dependency tree in this case. +We currently recommend using [Yarn](https://yarnpkg.com/en/) instead of npm when installing VuePress into an existing project that has webpack 3.x as a dependency, because npm fails to generate the correct dependency tree in this case. ::: Then, add some scripts to `package.json`: diff --git a/packages/docs/docs/guide/global-computed.md b/packages/docs/docs/guide/global-computed.md index b64922a7..dcb1bb57 100644 --- a/packages/docs/docs/guide/global-computed.md +++ b/packages/docs/docs/guide/global-computed.md @@ -1,10 +1,10 @@ # Global Computed -In VuePress, some core [computed](https://vuejs.org/v2/guide/computed.html#Computed-Properties) properties are built in for use by [default theme](../theme/default-theme-config.md) or custom themes. +In VuePress, some core [computed](https://vuejs.org/v2/guide/computed.html#Computed-Properties) properties are built-in for use by [default theme](../theme/default-theme-config.md) or custom themes. ## $site -This is the `$site` value of the website you see now: +This is the `$site` value of the site you see now: ``` json { @@ -80,4 +80,4 @@ The `content` value of the `` for the c ## $themeConfig -i.e. `siteConfig.themeConfig`。 +That is `siteConfig.themeConfig`。 diff --git a/packages/docs/docs/guide/i18n.md b/packages/docs/docs/guide/i18n.md index 5dbe7421..12dc6546 100644 --- a/packages/docs/docs/guide/i18n.md +++ b/packages/docs/docs/guide/i18n.md @@ -2,7 +2,7 @@ ## Site Level i18n Config -To leverage multi-language support in VuePress, you first need to use the following file structure: +To take advantage of multi-language support in VuePress, you first need to use the following file structure: ``` docs @@ -42,7 +42,7 @@ If a locale does not have `title` or `description` VuePress will fallback to the ## Default Theme i18n Config -The default theme also has built-in i18n support via `themeConfig.locales`, using the same `{ path: config }` format. Each locale can have its own [nav](../theme/default-theme-config.md#navbar-links) and [sidebar](../theme/default-theme-config.md#sidebar) config, in addition to a few other text values used across the site: +The default theme also has built-in i18n support via `themeConfig.locales`, using the same `{ path: config }` format. Each locale can have its own [nav](../theme/default-theme-config.md#navbar-links) and [sidebar](../theme/default-theme-config.md#sidebar) config, along with some other text values used across the site: ``` js module.exports = { @@ -56,7 +56,7 @@ module.exports = { label: 'English', // text for the edit-on-github link editLinkText: 'Edit this page on GitHub', - // config for Service Worker + // config for Service Worker serviceWorker: { updatePopup: { message: "New content is available.", diff --git a/packages/docs/docs/guide/markdown-slot.md b/packages/docs/docs/guide/markdown-slot.md index ca6399c1..fc65d142 100644 --- a/packages/docs/docs/guide/markdown-slot.md +++ b/packages/docs/docs/guide/markdown-slot.md @@ -1,20 +1,20 @@ # Markdown Slot -VuePress implements a content distribution API for Markdown. With this feature, you can split your document into multiple fragments to facilitate flexible composition in the layout component. +VuePress implements a content distribution API for Markdown. With this feature, you can split your document into fragments, allowing flexible composition in the layout component. ## Why do I need Markdown Slot? -First, let's review the relationship between layout components and markdown files: +First, let’s review the relationship between layout components and Markdown files: -Markdown files are providers of metadata (Page content, Configuration, etc.), while layout components consume them. We can use `frontmatter` to define some metadata for common data types, but `frontmatter` is hard to do something about markdown / HTML, a complex metadata that involves differences before and after compilation. +Markdown files are providers of metadata (Page content, Configuration, etc.), while layout components consume them. We can use `frontmatter` to define some metadata for common data types, but `frontmatter` is hard to do something about Markdown / HTML, a complex metadata that involves differences before and after compilation. Markdown Slot is to solve this kind of problem. ## Named Slots -You can define a named markdown slot through the following markdown syntax: +You can define a named Markdown slot through the following Markdown syntax: ``` md ::: slot name @@ -34,7 +34,7 @@ Here we are using `slot-key` instead of `slot`, because in Vue, `slot` is a rese ## Default Slot Content -By default, the slot-free part of a markdown file becomes the default content of a markdown slot, which you can access directly using the `Content` component: +By default, the slot-free part of a Markdown file becomes the default content of a Markdown slot, which you can access directly using the `Content` component: ``` vue @@ -60,7 +60,7 @@ Suppose your layout component is as follows: ``` -If the markdown content of a page is like this: +If the Markdown content of a page is like this: ```md ::: slot header @@ -100,6 +100,10 @@ Then the rendered HTML of this page will be:
``` + + Note that: 1. Unlike the slot mechanism provided by [Vue](https://vuejs.org/v2/guide/components-slots.html) itself, each content distribution is wrapped in a `div` whose class is `content` with the name of the slot. 2. Please ensure the uniqueness of the slot defined. + + diff --git a/packages/docs/docs/guide/markdown.md b/packages/docs/docs/guide/markdown.md index b844515f..c9bde4f9 100644 --- a/packages/docs/docs/guide/markdown.md +++ b/packages/docs/docs/guide/markdown.md @@ -8,7 +8,7 @@ Headers automatically get anchor links applied. Rendering of anchors can be conf ### Internal Links -Internal links are converted to `` for SPA navigation. Also, every `README.md` or `index.md` contained in each sub-directory will automatically be converted to `index.html`, with corresponding url `/`. +Internal links are converted to `` for SPA navigation. Also, every `README.md` or `index.md` contained in each sub-directory will automatically be converted to `index.html`, with corresponding URL `/`. Given the following directory structure: @@ -37,7 +37,7 @@ And providing you are in `foo/one.md`: ### Redirection for URLs -VuePress supports redirecting to clean links. If a link `/foo` is not found, VuePress will look for a existing `/foo/` or `/foo.html`. Conversely, when one of `/foo/` or `/foo.html` is not found, VuePress will also try the other. With this feature, we can customize your website's urls with the official plugin [vuepress-plugin-clean-urls](https://vuepress.github.io/plugins/clean-urls/). +VuePress supports redirecting to clean links. If a link `/foo` is not found, VuePress will look for a existing `/foo/` or `/foo.html`. Conversely, when one of `/foo/` or `/foo.html` is not found, VuePress will also try the other. With this feature, we can customize your website’s URLs with the official plugin [vuepress-plugin-clean-urls](https://vuepress.github.io/plugins/clean-urls/). ::: tip Regardless of whether the permalink and clean-urls plugins are used, your relative path should be defined by the current file structure. In the above example, even though you set the path of `/foo/one.md` to `/foo/one/`, you should still access `/foo/two.md` via `./two.md`. @@ -52,9 +52,9 @@ Outbound links automatically gets `target="_blank" rel="noopener noreferrer"`: You can customize the attributes added to external links by setting [config.markdown.externalLinks](../config/README.md#markdown-externallinks). -## Front Matter +## Frontmatter -[YAML front matter](https://jekyllrb.com/docs/frontmatter/) is supported out of the box: +[YAML frontmatter](https://jekyllrb.com/docs/frontmatter/) is supported out of the box: ``` yaml --- @@ -65,7 +65,7 @@ lang: en-US This data will be available to the rest of the page, along with all custom and theming components. -For more details, check out the [Front Matter](./frontmatter.md) page. +For more details, check out the [Frontmatter](./frontmatter.md) page. ## GitHub-Style Tables @@ -165,7 +165,7 @@ Danger zone, do not proceed ## Syntax Highlighting in Code Blocks -VuePress uses [Prism](https://prismjs.com/) to highlight language syntax in markdown code blocks, using coloured text. Prism supports a wide variety of programming languages. All you need to do is append a valid language alias to the beginning backticks for the code block: +VuePress uses [Prism](https://prismjs.com/) to highlight language syntax in Markdown code blocks, using coloured text. Prism supports a wide variety of programming languages. All you need to do is append a valid language alias to the beginning backticks for the code block: **Input** @@ -215,7 +215,7 @@ export default { ``` -Check out [the list of valid languages](https://prismjs.com/#languages-list) on the Prism website. +Check out [the list of valid languages](https://prismjs.com/#languages-list) on the Prism site. ## Line Highlighting in Code Blocks @@ -314,13 +314,13 @@ It also supports [line highlighting](#line-highlighting-in-code-blocks): <<< @/../@vuepress/markdown/__tests__/fragments/snippet.js{2} ::: tip -Since the import of the code snippets will be executed before webpack compilation, you can't use the path alias in webpack. The default value of `@` is `process.cwd()`. +Since the import of the code snippets will be executed before webpack compilation, you can’t use the path alias in webpack. The default value of `@` is `process.cwd()`. ::: ## Advanced Configuration -VuePress uses [markdown-it](https://github.com/markdown-it/markdown-it) as the markdown renderer. A lot of the extensions above are implemented via custom plugins. You can further customize the `markdown-it` instance using the `markdown` option in `.vuepress/config.js`: +VuePress uses [markdown-it](https://github.com/markdown-it/markdown-it) as the Markdown renderer. A lot of the extensions above are implemented via custom plugins. You can further customize the `markdown-it` instance using the `markdown` option in `.vuepress/config.js`: ``` js module.exports = { diff --git a/packages/docs/docs/guide/permalinks.md b/packages/docs/docs/guide/permalinks.md index 9399e292..0069a6c7 100644 --- a/packages/docs/docs/guide/permalinks.md +++ b/packages/docs/docs/guide/permalinks.md @@ -2,7 +2,7 @@ ## Background -Before 1.x.x, VuePress retrieves all markdown files in the documents source directory and defines the page links based on the file hierarchy. e.g. if you have the following file structure: +Before 1.x.x, VuePress retrieves all Markdown files in the documents source directory and defines the page links based on the file hierarchy. For example if you have the following file structure: ``` ├── package.json @@ -21,7 +21,7 @@ Then you will get following available pages: /source/_post/intro-vuepress.html ``` -However, for a blog system, we hope that the link of a post can be customized. VuePress started supporting this feature from `1.0.0`. which is known as `permalink`. Then, the actual pages would be: +Yet, for a blog system, we hope that the link of a post can be customized. VuePress started supporting this feature, known as permalink, from `1.0.0`. Then, the actual pages would be: ``` /source/ @@ -29,11 +29,11 @@ However, for a blog system, we hope that the link of a post can be customized. V /source/2018/4/1/intro-vuepress.html ``` -It seems that we have seen the shadow of the blog. Let's continue to look down. +We have seen the shadow of the blog. Let’s continue to look down. ## Permalinks -A permalink is a URL that is intended to remain unchanged for many years into the future, yielding a hyperlink that is less susceptible to link root[1]. VuePress supports a flexible way to build permalinks, allowing you to leverage various template variables. +A permalink is a URL that is intended to remain unchanged for a long time, yielding a hyperlink that is less susceptible to link root[1]. VuePress supports a flexible way to build permalinks, allowing you to use template variables. The default permalink is `/:regular`. @@ -48,7 +48,7 @@ module.exports = { } ``` -Alternatively, you can also set permalink on a page only, and it will have a higher priority than the global settings. +You can also set permalink on a page only, and it will have a higher priority than the global settings. 📝 __hello.md__: diff --git a/packages/docs/docs/guide/using-vue.md b/packages/docs/docs/guide/using-vue.md index f5628b6a..d982641a 100644 --- a/packages/docs/docs/guide/using-vue.md +++ b/packages/docs/docs/guide/using-vue.md @@ -12,7 +12,7 @@ If you are using or demoing components that are not SSR friendly (for example co ``` -Note this does not fix components or libraries that access Browser APIs **on import** - in order to use code that assumes a browser environment on import, you need to dynamically import them in proper lifecycle hooks: +Note this does not fix components or libraries that access Browser APIs **on import** - to use code that assumes a browser environment on import, you need to dynamically import them in proper lifecycle hooks: ``` vue