diff --git a/.all-contributorsrc b/.all-contributorsrc
index f9ab9cf5e2..acf982c6c2 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -19,17 +19,6 @@
"code"
]
},
- {
- "login": "bencodezen",
- "name": "Ben Hong",
- "avatar_url": "https://avatars0.githubusercontent.com/u/4836334?v=4",
- "profile": "http://www.bencodezen.io",
- "contributions": [
- "code",
- "doc",
- "question"
- ]
- },
{
"login": "meteorlxy",
"name": "meteorlxy",
@@ -49,7 +38,7 @@
"doc"
]
},
- {
+ {
"login": "kefranabg",
"name": "Franck Abgrall",
"avatar_url": "https://avatars3.githubusercontent.com/u/9840435?v=4",
diff --git a/.commitlintrc.js b/.commitlintrc.js
index 9aeea215d3..96554aa907 100644
--- a/.commitlintrc.js
+++ b/.commitlintrc.js
@@ -1,7 +1,14 @@
const fs = require('fs')
const path = require('path')
-const VuepressPackages = fs.readdirSync(path.resolve(__dirname, 'packages/@vuepress'))
+const vuepressPackages = fs.readdirSync(path.resolve(__dirname, 'packages/@vuepress'))
+const availableScopes = [
+ 'all',
+ 'cli',
+ 'zh',
+ 'types',
+ ...vuepressPackages
+]
module.exports = {
extends: [
@@ -12,10 +19,9 @@ module.exports = {
2,
'always',
[
- 'cli',
- 'zh',
- ...VuepressPackages
- ].map(name => `$${name}`)
+ ...availableScopes,
+ ...availableScopes.map(name => `$${name}`)
+ ]
]
}
}
diff --git a/.eslintignore b/.eslintignore
index 1fe0836392..06f676251d 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -4,3 +4,4 @@
!.vuepress
packages/@vuepress/shared-utils/lib
packages/@vuepress/shared-utils/types
+packages/@vuepress/types
diff --git a/.github/workflows/pull-request-ci.yml b/.github/workflows/pull-request-ci.yml
index 77633b3135..fb7243160d 100644
--- a/.github/workflows/pull-request-ci.yml
+++ b/.github/workflows/pull-request-ci.yml
@@ -7,20 +7,19 @@ jobs:
pr:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v1
- - uses: actions/setup-node@v1
+ - uses: actions/checkout@v2
+ - uses: actions/setup-node@v2
with:
- node-version: '12'
+ node-version: '14'
+ check-latest: true
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- - uses: actions/cache@v1
+
+ - uses: actions/cache@v2
with:
- path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
- key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-node-modules-
- ${{ runner.os }}-
+ path: '**/node_modules'
+ key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- name: Install dependencies
if: steps.yarn-cache.outputs.cache-hit != 'true'
diff --git a/.gitignore b/.gitignore
index 11af7c36c2..7f080e36cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,7 +11,6 @@ node_modules
TODOs.md
# Editors
-.vscode
.idea
# VuePress temp directory
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000000..93454edc3b
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,5 @@
+{
+ "recommendations": [
+ "amour1688.ts-in-markdown",
+ ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000000..cf17af09c7
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,48 @@
+{
+ "eslint.validate": [
+ "javascript",
+ "javascriptreact",
+ "typescript",
+ "typescriptreact",
+ "html",
+ "markdown"
+ ],
+ "editor.codeActionsOnSave": {
+ "source.fixAll.eslint": true
+ },
+ "search.exclude": {
+ "**/.git": true,
+ "**/.svn": true,
+ "**/.hg": true,
+ "**/CVS": true,
+ "**/.DS_Store": true,
+ "docs/docs/out/**": true,
+ "packages/*/lib/**": true
+ },
+ "typescript.tsdk": "node_modules/typescript/lib",
+ "[typescript]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[typescriptreact]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[javascript]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[javascriptreact]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[markdown]": {
+ "editor.quickSuggestions": {
+ "other": true,
+ "comments": true,
+ "strings": true
+ }
+ },
+ "eslint.trace.server": "verbose",
+ "cSpell.words": [
+ "commitlint",
+ "monoo"
+ ]
+ }
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index afeea586c2..03d55d2b8f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,13 +1,243 @@
+## [1.9.10](https://github.com/vuejs/vuepress/compare/v1.9.9...v1.9.10) (2023-08-14)
+
+
+### Bug Fixes
+
+* **core:** failed to resolve theme components when using theme inheritance (close: [#3163](https://github.com/vuejs/vuepress/issues/3163)) ([#3164](https://github.com/vuejs/vuepress/issues/3164)) ([546499b](https://github.com/vuejs/vuepress/commit/546499ba47a73c22e94c6237e8268fbce7459b6d))
+* **markdown:** replace double quotation marks in classname(fix [#3152](https://github.com/vuejs/vuepress/issues/3152)) ([#3154](https://github.com/vuejs/vuepress/issues/3154)) ([cef64e6](https://github.com/vuejs/vuepress/commit/cef64e642fb26076d42ca1342c0cf23a1b3384b7))
+
+
+
+## [1.9.9](https://github.com/vuejs/vuepress/compare/v1.9.8...v1.9.9) (2023-02-25)
+
+
+### Bug Fixes
+
+* remove non-existing :blur css pseudo selector ([#3118](https://github.com/vuejs/vuepress/issues/3118)) ([5e3a5a0](https://github.com/vuejs/vuepress/commit/5e3a5a098b5619f41c68b1e8daf6421d56194e77)) [@Niko Strijbol](https://github.com/Niko Strijbol)
+* **theme-default:** headings anchor should not be selectable ([#3063](https://github.com/vuejs/vuepress/issues/3063)) ([e5915a8](https://github.com/vuejs/vuepress/commit/e5915a85a6a5955f7aa7fa5ad208ccdd2a998f68)) [@Rami Yushuvaev](https://github.com/Rami Yushuvaev)
+* **types:** missing types for `initialOpenGroupIndex` (close: [#3129](https://github.com/vuejs/vuepress/issues/3129)) ([#3130](https://github.com/vuejs/vuepress/issues/3130)) ([9049d48](https://github.com/vuejs/vuepress/commit/9049d480ab176d0e53da3c1b859d28851703c13a)) [@ulivz](https://github.com/ulivz)
+* **types:** missing types for nested sidebar group (close: [#3127](https://github.com/vuejs/vuepress/issues/3127)) ([#3128](https://github.com/vuejs/vuepress/issues/3128)) ([74d5eec](https://github.com/vuejs/vuepress/commit/74d5eecf42226d297c05820b4c60b96da24e58cd)) [@ulivz](https://github.com/ulivz)
+
+
+
+## [1.9.8](https://github.com/vuejs/vuepress/compare/v1.9.7...v1.9.8) (2023-01-06)
+
+
+### Bug Fixes
+
+* **cli:** `.vuepress/config.ts` does not respect custom command (close: [#3113](https://github.com/vuejs/vuepress/issues/3113)) ([#3114](https://github.com/vuejs/vuepress/issues/3114)) ([7cd8b30](https://github.com/vuejs/vuepress/commit/7cd8b3052d12db637ca4c8d839364d6e3f4932f7)) [@ulivz](https://github.com/ulivz)
+
+
+
+## [1.9.7](https://github.com/vuejs/vuepress/compare/v1.9.6...v1.9.7) (2022-01-18)
+
+
+### Bug Fixes
+
+* **types:** missing `ariaLabel` at default theme config ([a7b12bf](https://github.com/vuejs/vuepress/commit/a7b12bf267c0c3a1f5756a1a88f870ddbbd7a005)) [@ulivz](https://github.com/ulivz)
+
+
+
+## [1.9.6](https://github.com/vuejs/vuepress/compare/v1.9.5...v1.9.6) (2022-01-17)
+
+
+### Bug Fixes
+
+* **core:** compatibility with node 10 (close: [#2981](https://github.com/vuejs/vuepress/issues/2981)) ([#2992](https://github.com/vuejs/vuepress/issues/2992)) ([f59598a](https://github.com/vuejs/vuepress/commit/f59598a2ae1c788ac01e7c23edc0d9a8bddd6911)) [@ulivz](https://github.com/ulivz)
+* **types:** missing `sidebarDepth` at default theme config ([5c6a16c](https://github.com/vuejs/vuepress/commit/5c6a16c3afe97311dc90ca8f18013240f6144a69)) [@ulivz](https://github.com/ulivz)
+
+
+### Features
+
+* add build concurrency control (close: [#1819](https://github.com/vuejs/vuepress/issues/1819)) ([#2953](https://github.com/vuejs/vuepress/issues/2953)) ([2f9a394](https://github.com/vuejs/vuepress/commit/2f9a3941d72d6cf920733e9f5de37fa26f9b78b4)) [@Troy Eagle](https://github.com/Troy Eagle)
+* **theme-default:** set home footer with markdown slot (close: [#2993](https://github.com/vuejs/vuepress/issues/2993)) ([#2994](https://github.com/vuejs/vuepress/issues/2994)) ([753df05](https://github.com/vuejs/vuepress/commit/753df0567ea10c41124ae7c6c2616a74ca1032f5)) [@ulivz](https://github.com/ulivz)
+
+
+
+## [1.9.5](https://github.com/vuejs/vuepress/compare/v1.9.4...v1.9.5) (2021-12-25)
+
+
+### Features
+
+* **types:** `ctx.getLibFilePath` ([17c8fe4](https://github.com/vuejs/vuepress/commit/17c8fe4)) [@ulivz](https://github.com/ulivz)
+* **types:** `ctx.getSiteData` ([332dac7](https://github.com/vuejs/vuepress/commit/332dac7)) [@ulivz](https://github.com/ulivz)
+* **types:** `ctx.themeAPI` ([4269714](https://github.com/vuejs/vuepress/commit/4269714)) [@ulivz](https://github.com/ulivz)
+* **types:** `definePlugin` supports declare theme config type ([5f1e3b0](https://github.com/vuejs/vuepress/commit/5f1e3b0)) [@ulivz](https://github.com/ulivz)
+
+
+
+## [1.9.4](https://github.com/vuejs/vuepress/compare/v1.9.3...v1.9.4) (2021-12-24)
+
+
+### Bug Fixes
+
+* **types:** '_filePath' implicitly has an 'any' type ([66a6c27](https://github.com/vuejs/vuepress/commit/66a6c27)) [@ulivz](https://github.com/ulivz)
+* **types:** add missing default theme config `activeHeaderLinks` ([075ec62](https://github.com/vuejs/vuepress/commit/075ec62)) [@ulivz](https://github.com/ulivz)
+* **types:** cannot find module '../../shared-utils/src/datatypes' ([e919d14](https://github.com/vuejs/vuepress/commit/e919d14)) [@ulivz](https://github.com/ulivz)
+
+
+### Features
+
+* **types:** expose all plugin types ([7aeff34](https://github.com/vuejs/vuepress/commit/7aeff34)) [@ulivz](https://github.com/ulivz)
+
+
+
+## [1.9.3](https://github.com/vuejs/vuepress/compare/v1.9.2...v1.9.3) (2021-12-23)
+
+
+### Bug Fixes
+
+* **types:** all plugin option api should be optional ([b5c4744](https://github.com/vuejs/vuepress/commit/b5c4744)) [@ulivz](https://github.com/ulivz)
+
+
+
+## [1.9.2](https://github.com/vuejs/vuepress/compare/v1.9.1...v1.9.2) (2021-12-23)
+
+
+### Bug Fixes
+
+* **types:** regression issue of reusing define helpers ([f0ba93c](https://github.com/vuejs/vuepress/commit/f0ba93c)) [@ulivz](https://github.com/ulivz)
+
+
+### Features
+
+* **types:** `definePluginEntry` helper to infer type for plugin entry ([cb07377](https://github.com/vuejs/vuepress/commit/cb07377)) [@ulivz](https://github.com/ulivz)
+* **types:** `defineThemeEntry` helper to infer type for theme entry ([84250cc](https://github.com/vuejs/vuepress/commit/84250cc)) [@ulivz](https://github.com/ulivz)
+* **types:** init `@vuepress/types` ([7ac6aa8](https://github.com/vuejs/vuepress/commit/7ac6aa8)) [@ulivz](https://github.com/ulivz)
+
+
+
+## [1.9.1](https://github.com/vuejs/vuepress/compare/v1.9.0...v1.9.1) (2021-12-22)
+
+
+### Bug Fixes
+
+* **types:** support plain string usage for known third-party plugins ([dd6e3ef](https://github.com/vuejs/vuepress/commit/dd6e3ef)) [@ulivz](https://github.com/ulivz)
+
+
+
+# [1.9.0](https://github.com/vuejs/vuepress/compare/v1.8.3...v1.9.0) (2021-12-22)
+
+
+### Features
+
+* Typescript Support for Config File ([#2973](https://github.com/vuejs/vuepress/issues/2973)) ([daa6404](https://github.com/vuejs/vuepress/commit/daa6404)) [@ulivz](https://github.com/ulivz)
+
+> For more information please head [VuePress 1.9](./changelog/1.9/index.md).
+
+
+## [1.8.3](https://github.com/vuejs/vuepress/compare/v1.8.2...v1.8.3) (2021-12-20)
+
+
+### Bug Fixes
+
+* **$core:** escape meta tags correctly (fix [#2831](https://github.com/vuejs/vuepress/issues/2831)) ([#2832](https://github.com/vuejs/vuepress/issues/2832)) ([b877b3b](https://github.com/vuejs/vuepress/commit/b877b3b)) [@Sangeeth Sudheer](https://github.com/Sangeeth Sudheer)
+* **theme-default:** fix display text for danger container ([#2849](https://github.com/vuejs/vuepress/issues/2849)) ([6d15511](https://github.com/vuejs/vuepress/commit/6d15511)) [@Taiga](https://github.com/Taiga)
+
+
+### Features
+
+* **plugin-last-updated:** inject `lastUpdatedTimestamp` to `$page` ([#1778](https://github.com/vuejs/vuepress/issues/1778)) ([2345902](https://github.com/vuejs/vuepress/commit/2345902)) [@Christoph Wiechert](https://github.com/Christoph Wiechert)
+
+
+
+## [1.8.2](https://github.com/vuejs/vuepress/compare/v1.8.1...v1.8.2) (2021-02-18)
+
+
+### Bug Fixes
+
+* **$default-theme:** sidebar groups are not opened when directly navigating to these pages (fix [#2564](https://github.com/vuejs/vuepress/issues/2564)) ([#2565](https://github.com/vuejs/vuepress/issues/2565)) ([3ab9fca](https://github.com/vuejs/vuepress/commit/3ab9fca)) [@echojoshchen](https://github.com/echojoshchen)
+* **$markdown:** support path without file extension when importing code snippets ([#2677](https://github.com/vuejs/vuepress/issues/2677)) ([bb4ae4e](https://github.com/vuejs/vuepress/commit/bb4ae4e)) [@mitjat](https://github.com/mitjat)
+
+
+
+## [1.8.2](https://github.com/vuejs/vuepress/compare/v1.8.1...v1.8.2) (2021-02-18)
+
+
+### Bug Fixes
+
+* **$default-theme:** sidebar groups are not opened when directly navigating to these pages (fix [#2564](https://github.com/vuejs/vuepress/issues/2564)) ([#2565](https://github.com/vuejs/vuepress/issues/2565)) ([3ab9fca](https://github.com/vuejs/vuepress/commit/3ab9fca)) [@echojoshchen](https://github.com/echojoshchen)
+* **$markdown:** support path without file extension when importing code snippets ([#2677](https://github.com/vuejs/vuepress/issues/2677)) ([bb4ae4e](https://github.com/vuejs/vuepress/commit/bb4ae4e)) [@mitjat](https://github.com/mitjat)
+
+
+
+## [1.8.1](https://github.com/vuejs/vuepress/compare/v1.8.0...v1.8.1) (2021-02-11)
+
+
+### Bug Fixes
+
+* **$core:** component CodeGroup loads correctly on clientfix [#2711](https://github.com/vuejs/vuepress/issues/2711) ([#2794](https://github.com/vuejs/vuepress/issues/2794)) ([51277f8](https://github.com/vuejs/vuepress/commit/51277f8)) [@Derek Pollard](https://github.com/Derek Pollard)
+* **$theme-default:** override algoliaOptions correctly ([ba89f39](https://github.com/vuejs/vuepress/commit/ba89f39)) [@meteorlxy](https://github.com/meteorlxy)
+* **deps:** [security] bump ini from 1.3.5 to 1.3.8 ([aeb8dce](https://github.com/vuejs/vuepress/commit/aeb8dce)) [@dependabot-preview[bot]](https://github.com/dependabot-preview[bot])
+* **deps:** bump autoprefixer from 9.6.1 to 9.8.6 ([775b3de](https://github.com/vuejs/vuepress/commit/775b3de)) [@dependabot-preview[bot]](https://github.com/dependabot-preview[bot])
+* **deps:** bump vue from 2.6.10 to 2.6.12 ([830dd4c](https://github.com/vuejs/vuepress/commit/830dd4c)) [@dependabot-preview[bot]](https://github.com/dependabot-preview[bot])
+
+
+
+# [1.8.0](https://github.com/vuejs/vuepress/compare/v1.7.1...v1.8.0) (2021-01-05)
+
+
+### Bug Fixes
+
+* **$plugin-google-analytics:** report site base ([#2687](https://github.com/vuejs/vuepress/issues/2687)) (close [#2169](https://github.com/vuejs/vuepress/issues/2169)) ([6bbcc69](https://github.com/vuejs/vuepress/commit/6bbcc69)) [@Vittorio Minacori](https://github.com/Vittorio Minacori)
+* **$shared-utils:** improve title inference and header extraction for markdown links syntax ([d264e50](https://github.com/vuejs/vuepress/commit/d264e50)) [@Superman](https://github.com/Superman)
+* **$theme-default:** display header-anchor links when using keyboard navigation ([#2699](https://github.com/vuejs/vuepress/issues/2699)) ([81cce39](https://github.com/vuejs/vuepress/commit/81cce39)) [@Rami Yushuvaev](https://github.com/Rami Yushuvaev)
+* Only empty the `.temp` directory at most once per run (fix [#2254](https://github.com/vuejs/vuepress/issues/2254)) ([#2612](https://github.com/vuejs/vuepress/issues/2612)) ([970b434](https://github.com/vuejs/vuepress/commit/970b434)) [@Thai Pangsakulyanont](https://github.com/Thai Pangsakulyanont)
+
+
+### Features
+
+* **$markdown:** make page suffix configurable (close [#2452](https://github.com/vuejs/vuepress/issues/2452)) ([#2674](https://github.com/vuejs/vuepress/issues/2674)) ([db16389](https://github.com/vuejs/vuepress/commit/db16389)) [@Dennis Reimann](https://github.com/Dennis Reimann)
+
+
+
+## [1.7.1](https://github.com/vuejs/vuepress/compare/v1.7.0...v1.7.1) (2020-10-15)
+
+
+### Bug Fixes
+
+* **$core:** add missing styles for OutboundLink ([#2662](https://github.com/vuejs/vuepress/issues/2662)) ([e2b6641](https://github.com/vuejs/vuepress/commit/e2b6641)) [@Mr.Hope](https://github.com/Mr.Hope)
+* **$core:** reference correct canonical Url frontmatter property (fix [#2665](https://github.com/vuejs/vuepress/issues/2665)) ([fbf5e5d](https://github.com/vuejs/vuepress/commit/fbf5e5d)) [@Adam DeHaven](https://github.com/Adam DeHaven)
+
+
+
+# [1.7.0](https://github.com/vuejs/vuepress/compare/v1.6.0...v1.7.0) (2020-10-13)
+
+
+### Bug Fixes
+
+* **$core:** [#2627](https://github.com/vuejs/vuepress/issues/2627) Dup ID violates HTML5-4 ([#2650](https://github.com/vuejs/vuepress/issues/2650)) ([931e7d9](https://github.com/vuejs/vuepress/commit/931e7d9)) [@adico](https://github.com/adico)
+* adds accessibility to code-group component ([#2630](https://github.com/vuejs/vuepress/issues/2630)) ([35865ec](https://github.com/vuejs/vuepress/commit/35865ec)) [@Lucien Bénié](https://github.com/Lucien Bénié)
+* scroll hash encoded when non-english chars are used fix [#2633](https://github.com/vuejs/vuepress/issues/2633) ([#2639](https://github.com/vuejs/vuepress/issues/2639)) ([5fcbd88](https://github.com/vuejs/vuepress/commit/5fcbd88)) [@Derek Pollard](https://github.com/Derek Pollard)
+* textlint bug causing PR's to fail checks fix [#2636](https://github.com/vuejs/vuepress/issues/2636) ([#2637](https://github.com/vuejs/vuepress/issues/2637)) ([64e92ca](https://github.com/vuejs/vuepress/commit/64e92ca)) [@Derek Pollard](https://github.com/Derek Pollard)
+
+
+### Features
+
+* **$core:** add canonical link to frontmatter ([#2658](https://github.com/vuejs/vuepress/issues/2658)) ([ff6c51a](https://github.com/vuejs/vuepress/commit/ff6c51a)) [@Derek Pollard](https://github.com/Derek Pollard)
+
+
+
+# [1.6.0](https://github.com/vuejs/vuepress/compare/v1.5.4...v1.6.0) (2020-09-25)
+
+
+### Features
+
+* **$theme-default:** add code group and code block components ([#2594](https://github.com/vuejs/vuepress/issues/2594)) ([394c4f6](https://github.com/vuejs/vuepress/commit/394c4f6)) [@Derek Pollard](https://github.com/Derek Pollard)
+* **$theme-default:** inform screen readers link opens in new tab/window (fix [#2601](https://github.com/vuejs/vuepress/issues/2601)) ([#2603](https://github.com/vuejs/vuepress/issues/2603)) ([8d10119](https://github.com/vuejs/vuepress/commit/8d10119)) [@Derek Pollard](https://github.com/Derek Pollard)
+
+
+
## [1.5.4](https://github.com/vuejs/vuepress/compare/v1.5.3...v1.5.4) (2020-08-23)
### Bug Fixes
-* **$core:** decode regularPath when generate router config (fix [#1946](https://github.com/vuejs/vuepress/issues/1946)) ([#1947](https://github.com/vuejs/vuepress/issues/1947)) ([dd26c7c](https://github.com/vuejs/vuepress/commit/dd26c7c))
-* **$shared-utils:** fix date parse logic for permalinks ([#2181](https://github.com/vuejs/vuepress/issues/2181)) ([d4d0380](https://github.com/vuejs/vuepress/commit/d4d0380))
-* **$shared-utils:** replace diacritics with regex ([#1855](https://github.com/vuejs/vuepress/issues/1855)) ([a03e93d](https://github.com/vuejs/vuepress/commit/a03e93d))
-* **$theme-default:** overlap navbar dropdown menus (fix [#2227](https://github.com/vuejs/vuepress/issues/2227)) ([#2365](https://github.com/vuejs/vuepress/issues/2365)) ([ceb0fa9](https://github.com/vuejs/vuepress/commit/ceb0fa9))
-* **$theme-default:** remove invalidate aria-labelledby on homepage title([#2277](https://github.com/vuejs/vuepress/issues/2277)) ([94a7de4](https://github.com/vuejs/vuepress/commit/94a7de4))
+* **$core:** decode regularPath when generate router config (fix [#1946](https://github.com/vuejs/vuepress/issues/1946)) ([#1947](https://github.com/vuejs/vuepress/issues/1947)) ([dd26c7c](https://github.com/vuejs/vuepress/commit/dd26c7c)) [@Binwei Fang](https://github.com/Binwei Fang)
+* **$shared-utils:** fix date parse logic for permalinks ([#2181](https://github.com/vuejs/vuepress/issues/2181)) ([d4d0380](https://github.com/vuejs/vuepress/commit/d4d0380)) [@enagic](https://github.com/enagic)
+* **$shared-utils:** replace diacritics with regex ([#1855](https://github.com/vuejs/vuepress/issues/1855)) ([a03e93d](https://github.com/vuejs/vuepress/commit/a03e93d)) [@Sergey Larionov](https://github.com/Sergey Larionov)
+* **$theme-default:** overlap navbar dropdown menus (fix [#2227](https://github.com/vuejs/vuepress/issues/2227)) ([#2365](https://github.com/vuejs/vuepress/issues/2365)) ([ceb0fa9](https://github.com/vuejs/vuepress/commit/ceb0fa9)) [@Billyyyyy3320](https://github.com/Billyyyyy3320)
+* **$theme-default:** remove invalidate aria-labelledby on homepage title([#2277](https://github.com/vuejs/vuepress/issues/2277)) ([94a7de4](https://github.com/vuejs/vuepress/commit/94a7de4)) [@Billyyyyy3320](https://github.com/Billyyyyy3320)
@@ -16,18 +246,18 @@
### Bug Fixes
-* **$theme-default:** fix editLink for repos hosted on gitlab.com ([#2523](https://github.com/vuejs/vuepress/issues/2523)) ([1c3967c](https://github.com/vuejs/vuepress/commit/1c3967c))
-* add toml dependencyt to shared-utils ([b858a6e](https://github.com/vuejs/vuepress/commit/b858a6e))
-* regular files should not be executable ([#2535](https://github.com/vuejs/vuepress/issues/2535)) ([ffb8527](https://github.com/vuejs/vuepress/commit/ffb8527))
-* **$theme-default:** improve last-updated text color contrast ([#2282](https://github.com/vuejs/vuepress/issues/2282)) ([7ca9fbc](https://github.com/vuejs/vuepress/commit/7ca9fbc))
-* allows no rel attribute on external links in the nav ([#2338](https://github.com/vuejs/vuepress/issues/2338)) ([b343cd3](https://github.com/vuejs/vuepress/commit/b343cd3))
-* **$core:** style loss under build for package that specifies `sideEffects: false` (fix [#2350](https://github.com/vuejs/vuepress/issues/2350)) ([#2471](https://github.com/vuejs/vuepress/issues/2471)) ([7e29900](https://github.com/vuejs/vuepress/commit/7e29900))
-* **$markdown:** line highlighting not working correctly when importing code snippets ([#2441](https://github.com/vuejs/vuepress/issues/2441)) ([d0f2e42](https://github.com/vuejs/vuepress/commit/d0f2e42))
+* **$theme-default:** fix editLink for repos hosted on gitlab.com ([#2523](https://github.com/vuejs/vuepress/issues/2523)) ([1c3967c](https://github.com/vuejs/vuepress/commit/1c3967c)) [@fulop](https://github.com/fulop)
+* add toml dependencyt to shared-utils ([b858a6e](https://github.com/vuejs/vuepress/commit/b858a6e)) [@Franck](https://github.com/Franck)
+* regular files should not be executable ([#2535](https://github.com/vuejs/vuepress/issues/2535)) ([ffb8527](https://github.com/vuejs/vuepress/commit/ffb8527)) [@zacanger](https://github.com/zacanger)
+* **$theme-default:** improve last-updated text color contrast ([#2282](https://github.com/vuejs/vuepress/issues/2282)) ([7ca9fbc](https://github.com/vuejs/vuepress/commit/7ca9fbc)) [@cyrilf](https://github.com/cyrilf)
+* allows no rel attribute on external links in the nav ([#2338](https://github.com/vuejs/vuepress/issues/2338)) ([b343cd3](https://github.com/vuejs/vuepress/commit/b343cd3)) [@Alex Bea](https://github.com/Alex Bea)
+* **$core:** style loss under build for package that specifies `sideEffects: false` (fix [#2350](https://github.com/vuejs/vuepress/issues/2350)) ([#2471](https://github.com/vuejs/vuepress/issues/2471)) ([7e29900](https://github.com/vuejs/vuepress/commit/7e29900)) [@nashaofu](https://github.com/nashaofu)
+* **$markdown:** line highlighting not working correctly when importing code snippets ([#2441](https://github.com/vuejs/vuepress/issues/2441)) ([d0f2e42](https://github.com/vuejs/vuepress/commit/d0f2e42)) [@Diogo Correia](https://github.com/Diogo Correia)
### Features
-* **$theme-default:** add initial open group index option ([#2408](https://github.com/vuejs/vuepress/issues/2408)) ([465ae40](https://github.com/vuejs/vuepress/commit/465ae40))
+* **$theme-default:** add initial open group index option ([#2408](https://github.com/vuejs/vuepress/issues/2408)) ([465ae40](https://github.com/vuejs/vuepress/commit/465ae40)) [@Dennis Reimann](https://github.com/Dennis Reimann)
@@ -36,13 +266,13 @@
### Bug Fixes
-* **$core:** check if meta is from head before removing it ([#2403](https://github.com/vuejs/vuepress/issues/2403)) ([3c94f71](https://github.com/vuejs/vuepress/commit/3c94f71))
-* **$theme-default:** handle algolia search result with Chinese hash (close: [#2431](https://github.com/vuejs/vuepress/issues/2431)) ([#2432](https://github.com/vuejs/vuepress/issues/2432)) ([6183840](https://github.com/vuejs/vuepress/commit/6183840))
+* **$core:** check if meta is from head before removing it ([#2403](https://github.com/vuejs/vuepress/issues/2403)) ([3c94f71](https://github.com/vuejs/vuepress/commit/3c94f71)) [@Hugo Alliaume](https://github.com/Hugo Alliaume)
+* **$theme-default:** handle algolia search result with Chinese hash (close: [#2431](https://github.com/vuejs/vuepress/issues/2431)) ([#2432](https://github.com/vuejs/vuepress/issues/2432)) ([6183840](https://github.com/vuejs/vuepress/commit/6183840)) [@大喵](https://github.com/大喵)
### Features
-* **$theme-default:** allow 'auto' in defined sidebars (close: [#1252](https://github.com/vuejs/vuepress/issues/1252)) ([#2380](https://github.com/vuejs/vuepress/issues/2380)) ([597f83b](https://github.com/vuejs/vuepress/commit/597f83b))
+* **$theme-default:** allow 'auto' in defined sidebars (close: [#1252](https://github.com/vuejs/vuepress/issues/1252)) ([#2380](https://github.com/vuejs/vuepress/issues/2380)) ([597f83b](https://github.com/vuejs/vuepress/commit/597f83b)) [@Robert Lin](https://github.com/Robert Lin)
@@ -51,8 +281,8 @@
### Bug Fixes
-* **$core**: HMR issue caused by chokidar v3 (close: [#2392](https://github.com/vuejs/vuepress/issues/2392)) ([#2436](https://github.com/vuejs/vuepress/issues/2392)) ([7e9d0c1](https://github.com/vuejs/vuepress/commit/7e9d0c1f42196dee52daabfaf796e0cdaa7bd6eb))
-* **$shared-utils:** use title variable for homepage (close: [#2247](https://github.com/vuejs/vuepress/issues/2247)) ([#2307](https://github.com/vuejs/vuepress/issues/2307)) ([869eb8d](https://github.com/vuejs/vuepress/commit/869eb8d))
+* **$core**: HMR issue caused by chokidar v3 (close: [#2392](https://github.com/vuejs/vuepress/issues/2392)) ([#2436](https://github.com/vuejs/vuepress/issues/2392)) ([7e9d0c1](https://github.com/vuejs/vuepress/commit/7e9d0c1f42196dee52daabfaf796e0cdaa7bd6eb)) [@Carlos Rodrigues](https://github.com/Carlos Rodrigues)
+* **$shared-utils:** use title variable for homepage (close: [#2247](https://github.com/vuejs/vuepress/issues/2247)) ([#2307](https://github.com/vuejs/vuepress/issues/2307)) ([869eb8d](https://github.com/vuejs/vuepress/commit/869eb8d)) [@Hassan Alizadeh](https://github.com/Hassan Alizadeh)
@@ -61,18 +291,18 @@
### Bug Fixes
-* **$core:** include polyfills correctly (close [#1168](https://github.com/vuejs/vuepress/issues/1168)) ([#2317](https://github.com/vuejs/vuepress/issues/2317)) ([69c193a](https://github.com/vuejs/vuepress/commit/69c193a))
-* **$core:** no dynamic import style ([#1490](https://github.com/vuejs/vuepress/issues/1490)) ([c80c36b](https://github.com/vuejs/vuepress/commit/c80c36b))
+* **$core:** include polyfills correctly (close [#1168](https://github.com/vuejs/vuepress/issues/1168)) ([#2317](https://github.com/vuejs/vuepress/issues/2317)) ([69c193a](https://github.com/vuejs/vuepress/commit/69c193a)) [@Paul Salaets](https://github.com/Paul Salaets)
+* **$core:** no dynamic import style ([#1490](https://github.com/vuejs/vuepress/issues/1490)) ([c80c36b](https://github.com/vuejs/vuepress/commit/c80c36b)) [@Shigma](https://github.com/Shigma)
### Features
-* **$markdown:** snippet partial import ([#2225](https://github.com/vuejs/vuepress/issues/2225)) ([2f1327b](https://github.com/vuejs/vuepress/commit/2f1327b))
+* **$markdown:** snippet partial import ([#2225](https://github.com/vuejs/vuepress/issues/2225)) ([2f1327b](https://github.com/vuejs/vuepress/commit/2f1327b)) [@Noël Macé](https://github.com/Noël Macé)
### Reverts
-* **fix($theme-default)**: close dropdown on mouseout (fix [#2227](https://github.com/vuejs/vuepress/issues/2227))" ([f54b389](https://github.com/vuejs/vuepress/commit/f54b389))
+* **fix($theme-default)**: close dropdown on mouseout (fix [#2227](https://github.com/vuejs/vuepress/issues/2227))" ([f54b389](https://github.com/vuejs/vuepress/commit/f54b389)) [@Billyyyyy3320](https://github.com/Billyyyyy3320)
@@ -81,11 +311,11 @@
### Bug Fixes
-* **$core:** missing 404 page (close [#2248](https://github.com/vuejs/vuepress/issues/2248)) ([#2250](https://github.com/vuejs/vuepress/issues/2250)) ([28a4eab](https://github.com/vuejs/vuepress/commit/28a4eab))
-* **$core:** duplicate meta tags ([#2164](https://github.com/vuejs/vuepress/issues/2164)) ([01cd096](https://github.com/vuejs/vuepress/commit/01cd096))
-* **$plugin-search:** match non-ASCII chars (close [#2242](https://github.com/vuejs/vuepress/issues/2242)) ([#2283](https://github.com/vuejs/vuepress/issues/2283)) ([9f3f49c](https://github.com/vuejs/vuepress/commit/9f3f49c))
-* **$shared-utils:** fail to resolve markdown-it plugins (close [#2286](https://github.com/vuejs/vuepress/issues/2286))([#2289](https://github.com/vuejs/vuepress/issues/2289)) ([16df156](https://github.com/vuejs/vuepress/commit/16df156))
-* **$theme-default:** close dropdown on mouseout (fix [#2227](https://github.com/vuejs/vuepress/issues/2227)) ([#2303](https://github.com/vuejs/vuepress/issues/2303)) ([430b917](https://github.com/vuejs/vuepress/commit/430b917))
+* **$core:** missing 404 page (close [#2248](https://github.com/vuejs/vuepress/issues/2248)) ([#2250](https://github.com/vuejs/vuepress/issues/2250)) ([28a4eab](https://github.com/vuejs/vuepress/commit/28a4eab)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$core:** duplicate meta tags ([#2164](https://github.com/vuejs/vuepress/issues/2164)) ([01cd096](https://github.com/vuejs/vuepress/commit/01cd096)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$plugin-search:** match non-ASCII chars (close [#2242](https://github.com/vuejs/vuepress/issues/2242)) ([#2283](https://github.com/vuejs/vuepress/issues/2283)) ([9f3f49c](https://github.com/vuejs/vuepress/commit/9f3f49c)) [@meteorlxy](https://github.com/meteorlxy)
+* **$shared-utils:** fail to resolve markdown-it plugins (close [#2286](https://github.com/vuejs/vuepress/issues/2286))([#2289](https://github.com/vuejs/vuepress/issues/2289)) ([16df156](https://github.com/vuejs/vuepress/commit/16df156)) [@meteorlxy](https://github.com/meteorlxy)
+* **$theme-default:** close dropdown on mouseout (fix [#2227](https://github.com/vuejs/vuepress/issues/2227)) ([#2303](https://github.com/vuejs/vuepress/issues/2303)) ([430b917](https://github.com/vuejs/vuepress/commit/430b917)) [@Mr.Hope](https://github.com/Mr.Hope)
@@ -94,17 +324,17 @@
### Bug Fixes
-* **$plugin-pwa:** work with register-service-worker 1.7.0 (close [#2222](https://github.com/vuejs/vuepress/issues/2222)) ([#2229](https://github.com/vuejs/vuepress/issues/2229)) ([604052b](https://github.com/vuejs/vuepress/commit/604052b))
-* **$shared-utils:** Slugify em/en dash in urls ([#2174](https://github.com/vuejs/vuepress/issues/2174)) ([8d9968d](https://github.com/vuejs/vuepress/commit/8d9968d))
-* **$theme-default:** remove error logs for nested sidebar groups ([#2191](https://github.com/vuejs/vuepress/issues/2191)) ([c3a943c](https://github.com/vuejs/vuepress/commit/c3a943c))
-* **$test-utils:** fail to test specific package ([#2099](https://github.com/vuejs/vuepress/issues/2099)) ([0aadf05](https://github.com/vuejs/vuepress/commit/0aadf05))
+* **$plugin-pwa:** work with register-service-worker 1.7.0 (close [#2222](https://github.com/vuejs/vuepress/issues/2222)) ([#2229](https://github.com/vuejs/vuepress/issues/2229)) ([604052b](https://github.com/vuejs/vuepress/commit/604052b)) [@meteorlxy](https://github.com/meteorlxy)
+* **$shared-utils:** Slugify em/en dash in urls ([#2174](https://github.com/vuejs/vuepress/issues/2174)) ([8d9968d](https://github.com/vuejs/vuepress/commit/8d9968d)) [@David Porter](https://github.com/David Porter)
+* **$theme-default:** remove error logs for nested sidebar groups ([#2191](https://github.com/vuejs/vuepress/issues/2191)) ([c3a943c](https://github.com/vuejs/vuepress/commit/c3a943c)) [@Kieran Hunt](https://github.com/Kieran Hunt)
+* **$test-utils:** fail to test specific package ([#2099](https://github.com/vuejs/vuepress/issues/2099)) ([0aadf05](https://github.com/vuejs/vuepress/commit/0aadf05)) [@Billyyyyy3320](https://github.com/Billyyyyy3320)
### Features
-* **$core:** Improve VuePress build time ([#2163](https://github.com/vuejs/vuepress/issues/2163)) ([76da780](https://github.com/vuejs/vuepress/commit/76da780))
-* **$plugin-last-updated:** add dateOptions to options ([#2192](https://github.com/vuejs/vuepress/issues/2192)) ([369c315](https://github.com/vuejs/vuepress/commit/369c315))
-* **$plugin-search:** improve the native search algorithm ([#1557](https://github.com/vuejs/vuepress/issues/1557)) ([e9fde5c](https://github.com/vuejs/vuepress/commit/e9fde5c))
+* **$core:** Improve VuePress build time ([#2163](https://github.com/vuejs/vuepress/issues/2163)) ([76da780](https://github.com/vuejs/vuepress/commit/76da780)) [@Franck Abgrall](https://github.com/Franck Abgrall)
+* **$plugin-last-updated:** add dateOptions to options ([#2192](https://github.com/vuejs/vuepress/issues/2192)) ([369c315](https://github.com/vuejs/vuepress/commit/369c315)) [@Ramona](https://github.com/Ramona)
+* **$plugin-search:** improve the native search algorithm ([#1557](https://github.com/vuejs/vuepress/issues/1557)) ([e9fde5c](https://github.com/vuejs/vuepress/commit/e9fde5c)) [@Youri Noel Nelson](https://github.com/Youri Noel Nelson)
@@ -113,15 +343,15 @@
### Bug Fixes
-* **$core:** resolve jsx files by default (close [#2058](https://github.com/vuejs/vuepress/issues/2058)) ([#2059](https://github.com/vuejs/vuepress/issues/2059)) ([f083d8d](https://github.com/vuejs/vuepress/commit/f083d8d))
-* **$core:** transpile vuepress packages and md files (close [#1606](https://github.com/vuejs/vuepress/issues/1606), [#1990](https://github.com/vuejs/vuepress/issues/1990)) ([#2064](https://github.com/vuejs/vuepress/issues/2064)) ([0ca620f](https://github.com/vuejs/vuepress/commit/0ca620f))
-* **$plugin-pwa:** popup component does not work (close [#2172](https://github.com/vuejs/vuepress/issues/2172)) ([#2187](https://github.com/vuejs/vuepress/issues/2187)) ([560b3c6](https://github.com/vuejs/vuepress/commit/560b3c6))
-* **$theme-default:** non-ASCII hash causes wrong sidebar highlight (close [#2078](https://github.com/vuejs/vuepress/issues/2078))([#2166](https://github.com/vuejs/vuepress/issues/2166)) ([ca3679c](https://github.com/vuejs/vuepress/commit/ca3679c))
+* **$core:** resolve jsx files by default (close [#2058](https://github.com/vuejs/vuepress/issues/2058)) ([#2059](https://github.com/vuejs/vuepress/issues/2059)) ([f083d8d](https://github.com/vuejs/vuepress/commit/f083d8d)) [@meteorlxy](https://github.com/meteorlxy)
+* **$core:** transpile vuepress packages and md files (close [#1606](https://github.com/vuejs/vuepress/issues/1606), [#1990](https://github.com/vuejs/vuepress/issues/1990)) ([#2064](https://github.com/vuejs/vuepress/issues/2064)) ([0ca620f](https://github.com/vuejs/vuepress/commit/0ca620f)) [@meteorlxy](https://github.com/meteorlxy)
+* **$plugin-pwa:** popup component does not work (close [#2172](https://github.com/vuejs/vuepress/issues/2172)) ([#2187](https://github.com/vuejs/vuepress/issues/2187)) ([560b3c6](https://github.com/vuejs/vuepress/commit/560b3c6)) [@meteorlxy](https://github.com/meteorlxy)
+* **$theme-default:** non-ASCII hash causes wrong sidebar highlight (close [#2078](https://github.com/vuejs/vuepress/issues/2078))([#2166](https://github.com/vuejs/vuepress/issues/2166)) ([ca3679c](https://github.com/vuejs/vuepress/commit/ca3679c)) [@Sun Haoran](https://github.com/Sun Haoran)
### Features
-* **$core:** support async enhanceApp (close [#2074](https://github.com/vuejs/vuepress/issues/2074)) ([#2075](https://github.com/vuejs/vuepress/issues/2075)) ([2d53fbb](https://github.com/vuejs/vuepress/commit/2d53fbb))
+* **$core:** support async enhanceApp (close [#2074](https://github.com/vuejs/vuepress/issues/2074)) ([#2075](https://github.com/vuejs/vuepress/issues/2075)) ([2d53fbb](https://github.com/vuejs/vuepress/commit/2d53fbb)) [@meteorlxy](https://github.com/meteorlxy)
@@ -130,36 +360,36 @@
### Bug Fixes
-* **$cli:** update known command list ([#2146](https://github.com/vuejs/vuepress/issues/2146)) ([2b25740](https://github.com/vuejs/vuepress/commit/2b25740))
-* **$cli:** inferUserDocsDirectory ignore all node_modules ([#2137](https://github.com/vuejs/vuepress/issues/2137)) ([df59909](https://github.com/vuejs/vuepress/commit/df59909))
-* **$core:** set NODE_ENV before creating app ([#1972](https://github.com/vuejs/vuepress/issues/1972)) ([245be8d](https://github.com/vuejs/vuepress/commit/245be8d))
-* **$core:** temp option in siteConfig has not effect (fix [#2038](https://github.com/vuejs/vuepress/issues/2038)) ([#2040](https://github.com/vuejs/vuepress/issues/2040)) ([0bb85a4](https://github.com/vuejs/vuepress/commit/0bb85a4))
-* **$default-theme:** deep sidebar links rendenring ([#1973](https://github.com/vuejs/vuepress/issues/1973)) ([0e5519a](https://github.com/vuejs/vuepress/commit/0e5519a))
-* **$docs:** Fixed typo ([#1997](https://github.com/vuejs/vuepress/issues/1997)) ([7d6e420](https://github.com/vuejs/vuepress/commit/7d6e420))
-* **$docs:** Uniforming VuePress labels in documentation (fix [#1998](https://github.com/vuejs/vuepress/issues/1998)) ([6a84126](https://github.com/vuejs/vuepress/commit/6a84126))
-* **$markdown:** Fix four spaces codeblocks rendering (Closes [#1921](https://github.com/vuejs/vuepress/issues/1921)) ([#1958](https://github.com/vuejs/vuepress/issues/1958)) ([7bc5825](https://github.com/vuejs/vuepress/commit/7bc5825))
-* **$plugin-google-analytics:** duplicate tracking of first page (fix [#2017](https://github.com/vuejs/vuepress/issues/2017)) ([#2039](https://github.com/vuejs/vuepress/issues/2039)) ([a69df21](https://github.com/vuejs/vuepress/commit/a69df21))
-* **$plugin-pwa:** no global-ui-component when updatePopup is disabled ([#2041](https://github.com/vuejs/vuepress/issues/2041)) ([6f9e478](https://github.com/vuejs/vuepress/commit/6f9e478))
-* **$shared-utils:** Add curly quotes to rSpecial ([#1934](https://github.com/vuejs/vuepress/issues/1934)) ([28a0ed9](https://github.com/vuejs/vuepress/commit/28a0ed9))
-* **$theme-default:** close dropdown-links when focusout on the last item (close [#1948](https://github.com/vuejs/vuepress/issues/1948)) ([#1952](https://github.com/vuejs/vuepress/issues/1952)) ([cd72acc](https://github.com/vuejs/vuepress/commit/cd72acc))
-* **$theme-default:** slots don't allow customization for Sidebar & Page (close: [#1950](https://github.com/vuejs/vuepress/issues/1950)) ([#1951](https://github.com/vuejs/vuepress/issues/1951)) ([890e85d](https://github.com/vuejs/vuepress/commit/890e85d))
-* **$theme-default:** use alias for nested SidebarLinks (close [#2049](https://github.com/vuejs/vuepress/issues/2049)) ([ceccca3](https://github.com/vuejs/vuepress/commit/ceccca3))
-* **$theme-default:** wrong algolia search route with base config ([#2007](https://github.com/vuejs/vuepress/issues/2007)) ([b00b277](https://github.com/vuejs/vuepress/commit/b00b277))
+* **$cli:** update known command list ([#2146](https://github.com/vuejs/vuepress/issues/2146)) ([2b25740](https://github.com/vuejs/vuepress/commit/2b25740)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$cli:** inferUserDocsDirectory ignore all node_modules ([#2137](https://github.com/vuejs/vuepress/issues/2137)) ([df59909](https://github.com/vuejs/vuepress/commit/df59909)) [@Candy.J](https://github.com/Candy.J)
+* **$core:** set NODE_ENV before creating app ([#1972](https://github.com/vuejs/vuepress/issues/1972)) ([245be8d](https://github.com/vuejs/vuepress/commit/245be8d)) [@Franck Abgrall](https://github.com/Franck Abgrall)
+* **$core:** temp option in siteConfig has not effect (fix [#2038](https://github.com/vuejs/vuepress/issues/2038)) ([#2040](https://github.com/vuejs/vuepress/issues/2040)) ([0bb85a4](https://github.com/vuejs/vuepress/commit/0bb85a4)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$default-theme:** deep sidebar links rendenring ([#1973](https://github.com/vuejs/vuepress/issues/1973)) ([0e5519a](https://github.com/vuejs/vuepress/commit/0e5519a)) [@Franck Abgrall](https://github.com/Franck Abgrall)
+* **$docs:** Fixed typo ([#1997](https://github.com/vuejs/vuepress/issues/1997)) ([7d6e420](https://github.com/vuejs/vuepress/commit/7d6e420)) [@Nimit Bhargava](https://github.com/Nimit Bhargava)
+* **$docs:** Uniforming VuePress labels in documentation (fix [#1998](https://github.com/vuejs/vuepress/issues/1998)) ([6a84126](https://github.com/vuejs/vuepress/commit/6a84126)) [@Nimit Bhargava](https://github.com/Nimit Bhargava)
+* **$markdown:** Fix four spaces codeblocks rendering (Closes [#1921](https://github.com/vuejs/vuepress/issues/1921)) ([#1958](https://github.com/vuejs/vuepress/issues/1958)) ([7bc5825](https://github.com/vuejs/vuepress/commit/7bc5825)) [@Pierre-Yves Aillet](https://github.com/Pierre-Yves Aillet)
+* **$plugin-google-analytics:** duplicate tracking of first page (fix [#2017](https://github.com/vuejs/vuepress/issues/2017)) ([#2039](https://github.com/vuejs/vuepress/issues/2039)) ([a69df21](https://github.com/vuejs/vuepress/commit/a69df21)) [@Ajit Panigrahi](https://github.com/Ajit Panigrahi)
+* **$plugin-pwa:** no global-ui-component when updatePopup is disabled ([#2041](https://github.com/vuejs/vuepress/issues/2041)) ([6f9e478](https://github.com/vuejs/vuepress/commit/6f9e478)) [@meteorlxy](https://github.com/meteorlxy)
+* **$shared-utils:** Add curly quotes to rSpecial ([#1934](https://github.com/vuejs/vuepress/issues/1934)) ([28a0ed9](https://github.com/vuejs/vuepress/commit/28a0ed9)) [@Jessica Parsons](https://github.com/Jessica Parsons)
+* **$theme-default:** close dropdown-links when focusout on the last item (close [#1948](https://github.com/vuejs/vuepress/issues/1948)) ([#1952](https://github.com/vuejs/vuepress/issues/1952)) ([cd72acc](https://github.com/vuejs/vuepress/commit/cd72acc)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$theme-default:** slots don't allow customization for Sidebar & Page (close: [#1950](https://github.com/vuejs/vuepress/issues/1950)) ([#1951](https://github.com/vuejs/vuepress/issues/1951)) ([890e85d](https://github.com/vuejs/vuepress/commit/890e85d)) [@Darrius Wright](https://github.com/Darrius Wright)
+* **$theme-default:** use alias for nested SidebarLinks (close [#2049](https://github.com/vuejs/vuepress/issues/2049)) ([ceccca3](https://github.com/vuejs/vuepress/commit/ceccca3)) [@meteorlxy](https://github.com/meteorlxy)
+* **$theme-default:** wrong algolia search route with base config ([#2007](https://github.com/vuejs/vuepress/issues/2007)) ([b00b277](https://github.com/vuejs/vuepress/commit/b00b277)) [@SigureMo](https://github.com/SigureMo)
### Features
-* **$cli:** Notify users of a newer release ([#2121](https://github.com/vuejs/vuepress/issues/2121)) ([7a09a72](https://github.com/vuejs/vuepress/commit/7a09a72))
-* **$cli:** run debug mode without clearing screen (close [#2100](https://github.com/vuejs/vuepress/issues/2100)) ([#2116](https://github.com/vuejs/vuepress/issues/2116)) ([c6a3cb5](https://github.com/vuejs/vuepress/commit/c6a3cb5))
-* **$core:** Add generator meta tag to ssr index.html template ([#2133](https://github.com/vuejs/vuepress/issues/2133)) ([2826cd7](https://github.com/vuejs/vuepress/commit/2826cd7))
-* **$theme-default:** add variable to config HomePage width (close [#2055](https://github.com/vuejs/vuepress/issues/2055)) ([#2086](https://github.com/vuejs/vuepress/issues/2086)) ([b72d145](https://github.com/vuejs/vuepress/commit/b72d145))
-* **$config:** Allow overriding badges colors (close [#1940](https://github.com/vuejs/vuepress/issues/1940)) ([#1941](https://github.com/vuejs/vuepress/issues/1941)) ([89a4a8d](https://github.com/vuejs/vuepress/commit/89a4a8d))
-* **$markdown:** `extractHeaders` option (close: [#1903](https://github.com/vuejs/vuepress/issues/1903)) ([#1945](https://github.com/vuejs/vuepress/issues/1945)) ([d2fef5d](https://github.com/vuejs/vuepress/commit/d2fef5d))
-* **$markdown:** Support for Rust file extension ([73089a0](https://github.com/vuejs/vuepress/commit/73089a0))
-* **$theme-default:** allow optional subtitle ([#1981](https://github.com/vuejs/vuepress/issues/1981)) ([a28804c](https://github.com/vuejs/vuepress/commit/a28804c))
-* **$theme-default:** external links in prev/next (close [#1962](https://github.com/vuejs/vuepress/issues/1962))([#1984](https://github.com/vuejs/vuepress/issues/1984)) ([9f28814](https://github.com/vuejs/vuepress/commit/9f28814))
-* **$theme-default:** markdown details custom block (close [#768](https://github.com/vuejs/vuepress/issues/768)) ([#2044](https://github.com/vuejs/vuepress/issues/2044)) ([7f2a997](https://github.com/vuejs/vuepress/commit/7f2a997))
-* **$theme-default:** Support configuring target and rel for nav links (close [#1353](https://github.com/vuejs/vuepress/issues/1353)) ([#1734](https://github.com/vuejs/vuepress/issues/1734)) ([770ba72](https://github.com/vuejs/vuepress/commit/770ba72))
+* **$cli:** Notify users of a newer release ([#2121](https://github.com/vuejs/vuepress/issues/2121)) ([7a09a72](https://github.com/vuejs/vuepress/commit/7a09a72)) [@James George](https://github.com/James George)
+* **$cli:** run debug mode without clearing screen (close [#2100](https://github.com/vuejs/vuepress/issues/2100)) ([#2116](https://github.com/vuejs/vuepress/issues/2116)) ([c6a3cb5](https://github.com/vuejs/vuepress/commit/c6a3cb5)) [@Billyyyyy3320](https://github.com/Billyyyyy3320)
+* **$core:** Add generator meta tag to ssr index.html template ([#2133](https://github.com/vuejs/vuepress/issues/2133)) ([2826cd7](https://github.com/vuejs/vuepress/commit/2826cd7)) [@Franck Abgrall](https://github.com/Franck Abgrall)
+* **$theme-default:** add variable to config HomePage width (close [#2055](https://github.com/vuejs/vuepress/issues/2055)) ([#2086](https://github.com/vuejs/vuepress/issues/2086)) ([b72d145](https://github.com/vuejs/vuepress/commit/b72d145)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$config:** Allow overriding badges colors (close [#1940](https://github.com/vuejs/vuepress/issues/1940)) ([#1941](https://github.com/vuejs/vuepress/issues/1941)) ([89a4a8d](https://github.com/vuejs/vuepress/commit/89a4a8d)) [@Franck Abgrall](https://github.com/Franck Abgrall)
+* **$markdown:** `extractHeaders` option (close: [#1903](https://github.com/vuejs/vuepress/issues/1903)) ([#1945](https://github.com/vuejs/vuepress/issues/1945)) ([d2fef5d](https://github.com/vuejs/vuepress/commit/d2fef5d)) [@Franck Abgrall](https://github.com/Franck Abgrall)
+* **$markdown:** Support for Rust file extension ([73089a0](https://github.com/vuejs/vuepress/commit/73089a0)) [@Tore](https://github.com/Tore)
+* **$theme-default:** allow optional subtitle ([#1981](https://github.com/vuejs/vuepress/issues/1981)) ([a28804c](https://github.com/vuejs/vuepress/commit/a28804c)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$theme-default:** external links in prev/next (close [#1962](https://github.com/vuejs/vuepress/issues/1962))([#1984](https://github.com/vuejs/vuepress/issues/1984)) ([9f28814](https://github.com/vuejs/vuepress/commit/9f28814)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$theme-default:** markdown details custom block (close [#768](https://github.com/vuejs/vuepress/issues/768)) ([#2044](https://github.com/vuejs/vuepress/issues/2044)) ([7f2a997](https://github.com/vuejs/vuepress/commit/7f2a997)) [@meteorlxy](https://github.com/meteorlxy)
+* **$theme-default:** Support configuring target and rel for nav links (close [#1353](https://github.com/vuejs/vuepress/issues/1353)) ([#1734](https://github.com/vuejs/vuepress/issues/1734)) ([770ba72](https://github.com/vuejs/vuepress/commit/770ba72)) [@Billyyyyy3320](https://github.com/Billyyyyy3320)
@@ -168,23 +398,23 @@
### Bug Fixes
-* **$core:** optimize error log (close: [#1296](https://github.com/vuejs/vuepress/issues/1296)) ([#1413](https://github.com/vuejs/vuepress/issues/1413)) ([51de6cf](https://github.com/vuejs/vuepress/commit/51de6cf))
-* **$markdown:** notify error when not found snippet (close: [#1872](https://github.com/vuejs/vuepress/issues/1872)) ([#1910](https://github.com/vuejs/vuepress/issues/1910)) ([6aaa7d7](https://github.com/vuejs/vuepress/commit/6aaa7d7))
-* **$theme-default:** regression of arrow spacing consistent (close: [#1427](https://github.com/vuejs/vuepress/issues/1427)) ([#1907](https://github.com/vuejs/vuepress/issues/1907)) ([dbda574](https://github.com/vuejs/vuepress/commit/dbda574))
-* **$theme-default:** make dropdown-title's UI consistent with nav-link ([#1890](https://github.com/vuejs/vuepress/issues/1890)) ([757e880](https://github.com/vuejs/vuepress/commit/757e880))
-* **$theme-default:** make navbar dropdown links accessible ([#1837](https://github.com/vuejs/vuepress/issues/1837)) ([a8ce645](https://github.com/vuejs/vuepress/commit/a8ce645))
-* **$theme-default:** regression of custom container default title ([#1875](https://github.com/vuejs/vuepress/issues/1875)) ([e0ef407](https://github.com/vuejs/vuepress/commit/e0ef407))
+* **$core:** optimize error log (close: [#1296](https://github.com/vuejs/vuepress/issues/1296)) ([#1413](https://github.com/vuejs/vuepress/issues/1413)) ([51de6cf](https://github.com/vuejs/vuepress/commit/51de6cf)) [@Shigma](https://github.com/Shigma)
+* **$markdown:** notify error when not found snippet (close: [#1872](https://github.com/vuejs/vuepress/issues/1872)) ([#1910](https://github.com/vuejs/vuepress/issues/1910)) ([6aaa7d7](https://github.com/vuejs/vuepress/commit/6aaa7d7)) [@Ivan Medina](https://github.com/Ivan Medina)
+* **$theme-default:** regression of arrow spacing consistent (close: [#1427](https://github.com/vuejs/vuepress/issues/1427)) ([#1907](https://github.com/vuejs/vuepress/issues/1907)) ([dbda574](https://github.com/vuejs/vuepress/commit/dbda574)) [@Kleis Auke Wolthuizen](https://github.com/Kleis Auke Wolthuizen)
+* **$theme-default:** make dropdown-title's UI consistent with nav-link ([#1890](https://github.com/vuejs/vuepress/issues/1890)) ([757e880](https://github.com/vuejs/vuepress/commit/757e880)) [@Sun Haoran](https://github.com/Sun Haoran)
+* **$theme-default:** make navbar dropdown links accessible ([#1837](https://github.com/vuejs/vuepress/issues/1837)) ([a8ce645](https://github.com/vuejs/vuepress/commit/a8ce645)) [@Hatice Edis](https://github.com/Hatice Edis)
+* **$theme-default:** regression of custom container default title ([#1875](https://github.com/vuejs/vuepress/issues/1875)) ([e0ef407](https://github.com/vuejs/vuepress/commit/e0ef407)) [@meteorlxy](https://github.com/meteorlxy)
### Features
-* **$core:** config "pattern" of resolved files (close: [#1700](https://github.com/vuejs/vuepress/issues/1700))([#1705](https://github.com/vuejs/vuepress/issues/1705)) ([1f3e4e2](https://github.com/vuejs/vuepress/commit/1f3e4e2))
-* **$core:** support async function exported in vuepress config (close: [#1185](https://github.com/vuejs/vuepress/issues/1185)) ([#1925](https://github.com/vuejs/vuepress/issues/1925)) ([cdbfd75](https://github.com/vuejs/vuepress/commit/cdbfd75))
-* **$core:** Upgrade vue version to `2.6.10` ([#1876](https://github.com/vuejs/vuepress/issues/1876)) ([c17c70e](https://github.com/vuejs/vuepress/commit/c17c70e))
-* **$theme-default:** smooth scroll (close [#567](https://github.com/vuejs/vuepress/issues/567)) ([#1881](https://github.com/vuejs/vuepress/issues/1881)) ([2e3efb4](https://github.com/vuejs/vuepress/commit/2e3efb4))
-* **$theme-default:**: enable editLink on specific page via frontmatter (close: [#1762]((https://github.com/vuejs/vuepress/issues/1825))) ([#1825](https://github.com/vuejs/vuepress/issues/1825)) ([0e8a442](https://github.com/vuejs/vuepress/commit/0e8a442))
-* **$markdown:** Highlight `kotlin` code on snippets import (close: [#1831](https://github.com/vuejs/vuepress/issues/1831))([#1874](https://github.com/vuejs/vuepress/issues/1874)) ([f913fea](https://github.com/vuejs/vuepress/commit/f913fea))
-* **$shared-utils:** resolve regularPath when getting permalink ([#1786](https://github.com/vuejs/vuepress/issues/1786)) ([c6ce6cf](https://github.com/vuejs/vuepress/commit/c6ce6cf))
+* **$core:** config "pattern" of resolved files (close: [#1700](https://github.com/vuejs/vuepress/issues/1700))([#1705](https://github.com/vuejs/vuepress/issues/1705)) ([1f3e4e2](https://github.com/vuejs/vuepress/commit/1f3e4e2)) [@Eduard Cot](https://github.com/Eduard Cot)
+* **$core:** support async function exported in vuepress config (close: [#1185](https://github.com/vuejs/vuepress/issues/1185)) ([#1925](https://github.com/vuejs/vuepress/issues/1925)) ([cdbfd75](https://github.com/vuejs/vuepress/commit/cdbfd75)) [@Martin Muzatko](https://github.com/Martin Muzatko)
+* **$core:** Upgrade vue version to `2.6.10` ([#1876](https://github.com/vuejs/vuepress/issues/1876)) ([c17c70e](https://github.com/vuejs/vuepress/commit/c17c70e)) [@Franck Abgrall](https://github.com/Franck Abgrall)
+* **$theme-default:** smooth scroll (close [#567](https://github.com/vuejs/vuepress/issues/567)) ([#1881](https://github.com/vuejs/vuepress/issues/1881)) ([2e3efb4](https://github.com/vuejs/vuepress/commit/2e3efb4)) [@meteorlxy](https://github.com/meteorlxy)
+* **$theme-default:**: enable editLink on specific page via frontmatter (close: [#1762]((https://github.com/vuejs/vuepress/issues/1825))) ([#1825](https://github.com/vuejs/vuepress/issues/1825)) ([0e8a442](https://github.com/vuejs/vuepress/commit/0e8a442)) [@Patryk Niedźwiedziński](https://github.com/Patryk Niedźwiedziński)
+* **$markdown:** Highlight `kotlin` code on snippets import (close: [#1831](https://github.com/vuejs/vuepress/issues/1831))([#1874](https://github.com/vuejs/vuepress/issues/1874)) ([f913fea](https://github.com/vuejs/vuepress/commit/f913fea)) [@Franck Abgrall](https://github.com/Franck Abgrall)
+* **$shared-utils:** resolve regularPath when getting permalink ([#1786](https://github.com/vuejs/vuepress/issues/1786)) ([c6ce6cf](https://github.com/vuejs/vuepress/commit/c6ce6cf)) [@Billyyyyy3320](https://github.com/Billyyyyy3320)
# [1.1.0](https://github.com/vuejs/vuepress/compare/v1.0.4...v1.1.0) (2019-09-14)
@@ -192,20 +422,20 @@
### Bug Fixes
-* **$security:** fix Security issue by bump js yaml version (close: [#1845](https://github.com/vuejs/vuepress/issues/1845)) ([#1846](https://github.com/vuejs/vuepress/issues/1846)) ([696717b](https://github.com/vuejs/vuepress/commit/696717b))
-* **$theme-default** Search box max suggestions ([#1728](https://github.com/vuejs/vuepress/issues/1728)) ([ade328f](https://github.com/vuejs/vuepress/commit/ade328f))
-* **$last-updated:** use file author time instead of submodule commit time ([#1640](https://github.com/vuejs/vuepress/issues/1640)) ([f964391](https://github.com/vuejs/vuepress/commit/f964391))
-* **$theme-default:** add text ellipsis to navbar ([#1683](https://github.com/vuejs/vuepress/issues/1683)) ([#1840](https://github.com/vuejs/vuepress/issues/1840)) ([74017c5](https://github.com/vuejs/vuepress/commit/74017c5))
-* **$theme-default:** Expand nested sidebar groups ([#1540](https://github.com/vuejs/vuepress/issues/1540)) ([eb231bf](https://github.com/vuejs/vuepress/commit/eb231bf))
+* **$security:** fix Security issue by bump js yaml version (close: [#1845](https://github.com/vuejs/vuepress/issues/1845)) ([#1846](https://github.com/vuejs/vuepress/issues/1846)) ([696717b](https://github.com/vuejs/vuepress/commit/696717b)) [@YJ](https://github.com/YJ)
+* **$theme-default** Search box max suggestions ([#1728](https://github.com/vuejs/vuepress/issues/1728)) ([ade328f](https://github.com/vuejs/vuepress/commit/ade328f)) [@Vinicius Julião](https://github.com/Vinicius Julião)
+* **$last-updated:** use file author time instead of submodule commit time ([#1640](https://github.com/vuejs/vuepress/issues/1640)) ([f964391](https://github.com/vuejs/vuepress/commit/f964391)) [@Daniël van de Giessen](https://github.com/Daniël van de Giessen)
+* **$theme-default:** add text ellipsis to navbar ([#1683](https://github.com/vuejs/vuepress/issues/1683)) ([#1840](https://github.com/vuejs/vuepress/issues/1840)) ([74017c5](https://github.com/vuejs/vuepress/commit/74017c5)) [@emmm](https://github.com/emmm)
+* **$theme-default:** Expand nested sidebar groups ([#1540](https://github.com/vuejs/vuepress/issues/1540)) ([eb231bf](https://github.com/vuejs/vuepress/commit/eb231bf)) [@Anton Wilhelm](https://github.com/Anton Wilhelm)
### Features
* **core:** make extendPageData async ready without breaking changes ([#1546](https://github
-.com/vuejs/vuepress/issues/1546)) ([543fd6c](https://github.com/vuejs/vuepress/commit/543fd6c))
-* **$core:** better error log for layouts ([#1455](https://github.com/vuejs/vuepress/issues/1455)) ([3b68913](https://github.com/vuejs/vuepress/commit/3b68913))
+.com/vuejs/vuepress/issues/1546)) ([543fd6c](https://github.com/vuejs/vuepress/commit/543fd6c)) [@Antoine Caron](https://github.com/Antoine Caron)
+* **$core:** better error log for layouts ([#1455](https://github.com/vuejs/vuepress/issues/1455)) ([3b68913](https://github.com/vuejs/vuepress/commit/3b68913)) [@Shigma](https://github.com/Shigma)
* **$plugin-search:** add support for search hotkeys ([#1848](https://github.com/vuejs/vuepress/issues/1848))
-([1ba06ae](https://github.com/vuejs/vuepress/commit/1ba06ae))
+([1ba06ae](https://github.com/vuejs/vuepress/commit/1ba06ae)) [@eryn L. K](https://github.com/eryn L. K)
@@ -215,14 +445,14 @@
### Bug Fixes
-* **$core:** Do not transpile core packages' dependencies ([b69b107](https://github.com/vuejs/vuepress/commit/b69b107))
-* **$core:** Add missing hash in [#1706](https://github.com/vuejs/vuepress/issues/1706) ([#1780](https://github.com/vuejs/vuepress/issues/1780)) ([25777e4](https://github.com/vuejs/vuepress/commit/25777e4))
+* **$core:** Do not transpile core packages' dependencies ([b69b107](https://github.com/vuejs/vuepress/commit/b69b107)) [@Haoqun Jiang](https://github.com/Haoqun Jiang)
+* **$core:** Add missing hash in [#1706](https://github.com/vuejs/vuepress/issues/1706) ([#1780](https://github.com/vuejs/vuepress/issues/1780)) ([25777e4](https://github.com/vuejs/vuepress/commit/25777e4)) [@Kid](https://github.com/Kid)
### Features
-* **$core:** Use any custom protocol for outboundRE ([#1731](https://github.com/vuejs/vuepress/issues/1731)) ([120d885](https://github.com/vuejs/vuepress/commit/120d885))
-* **$theme-default:** Disable next and prev links from global config ([#1761](https://github.com/vuejs/vuepress/issues/1761)) ([92a1c02](https://github.com/vuejs/vuepress/commit/92a1c02))
+* **$core:** Use any custom protocol for outboundRE ([#1731](https://github.com/vuejs/vuepress/issues/1731)) ([120d885](https://github.com/vuejs/vuepress/commit/120d885)) [@xr0master](https://github.com/xr0master)
+* **$theme-default:** Disable next and prev links from global config ([#1761](https://github.com/vuejs/vuepress/issues/1761)) ([92a1c02](https://github.com/vuejs/vuepress/commit/92a1c02)) [@Franck Abgrall](https://github.com/Franck Abgrall)
@@ -234,17 +464,17 @@
### 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))
+* **$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)) [@zthxxx](https://github.com/zthxxx) 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)) [@Colin Kinloch](https://github.com/Colin Kinloch)
+* **$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)) [@Massimo Siani](https://github.com/Massimo Siani)
+* **$plugin-medium-zoom:** disable zoom for links ([#1719](https://github.com/vuejs/vuepress/issues/1719)) ([e3393e3](https://github.com/vuejs/vuepress/commit/e3393e3)) [@Kid](https://github.com/Kid)
+* **$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)) [@Oscar](https://github.com/Oscar)
### 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))
+* **$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)) [@Devon Bull](https://github.com/Devon Bull)
+* **$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)) [@Kid](https://github.com/Kid)
@@ -253,14 +483,14 @@
### Bug Fixes
-* **$core:** cannot resolve agreement file from parent theme ([1aaa6e3](https://github.com/vuejs/vuepress/commit/1aaa6e3))
-* **$core:** url display in dev log ([#1670](https://github.com/vuejs/vuepress/issues/1670)) ([17ba325](https://github.com/vuejs/vuepress/commit/17ba325))
-* **$plugin-medium-zoom:** doesn't work with default plugin options in default theme ([42f19e0](https://github.com/vuejs/vuepress/commit/42f19e0))
+* **$core:** cannot resolve agreement file from parent theme ([1aaa6e3](https://github.com/vuejs/vuepress/commit/1aaa6e3)) [@ulivz](https://github.com/ulivz)
+* **$core:** url display in dev log ([#1670](https://github.com/vuejs/vuepress/issues/1670)) ([17ba325](https://github.com/vuejs/vuepress/commit/17ba325)) [@云游君](https://github.com/云游君)
+* **$plugin-medium-zoom:** doesn't work with default plugin options in default theme ([42f19e0](https://github.com/vuejs/vuepress/commit/42f19e0)) [@ulivz](https://github.com/ulivz)
### Features
-* **$plugin-medium-zoom:** custom options ([#1649](https://github.com/vuejs/vuepress/issues/1649)) ([54bb2f3](https://github.com/vuejs/vuepress/commit/54bb2f3))
+* **$plugin-medium-zoom:** custom options ([#1649](https://github.com/vuejs/vuepress/issues/1649)) ([54bb2f3](https://github.com/vuejs/vuepress/commit/54bb2f3)) [@Alexey](https://github.com/Alexey)
@@ -269,12 +499,12 @@
### Bug Fixes
-* **$theme-default:** using '.theme-default-content' to replace '.content' in 404 layout ([#1646](https://github.com/vuejs/vuepress/issues/1646)) ([f0d1344](https://github.com/vuejs/vuepress/commit/f0d1344))
+* **$theme-default:** using '.theme-default-content' to replace '.content' in 404 layout ([#1646](https://github.com/vuejs/vuepress/issues/1646)) ([f0d1344](https://github.com/vuejs/vuepress/commit/f0d1344)) [@Nguyen Van Ngoc](https://github.com/Nguyen Van Ngoc)
### Features
-* **$theme-default:** enhance the styles of `blockquote` ([9d20d5f](https://github.com/vuejs/vuepress/commit/9d20d5f))
+* **$theme-default:** enhance the styles of `blockquote` ([9d20d5f](https://github.com/vuejs/vuepress/commit/9d20d5f)) [@ulivz](https://github.com/ulivz)
# [1.0.0](https://github.com/vuejs/vuepress/compare/v1.0.0-rc.1...v1.0.0) (2019-06-08)
@@ -291,7 +521,7 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** failed to render `` with dynamic pageKey from current $page. ([83b02ba](https://github.com/vuejs/vuepress/commit/83b02ba))
+* **$core:** failed to render `` with dynamic pageKey from current $page. ([83b02ba](https://github.com/vuejs/vuepress/commit/83b02ba)) [@ulivz](https://github.com/ulivz)
@@ -308,12 +538,12 @@ It seems no any changes here.
* A VuePress Blog Theme implemented in around 70 lines**: https://github.com/ulivz/70-lines-of-vuepress-blog-theme
* **Default Blog Theme**: [@vuepress/plugin-blog](https://github.com/ulivz/vuepress-theme-blog)
- * Live Example: http://example.vuepress-theme-blog.ulivz.com
+ * Live Example: http://example.vuepress-theme-blog.billyyyyy3320.com
### BREAKING CHANGES
-* Deprecated `@vuepress/plugin-blog` at alpha stage. ([10dfb66](https://github.com/vuejs/vuepress/commit/10dfb66))
-* Deprecated `@vuepress/plugin-pagination` at alpha stage. ([3722192](https://github.com/vuejs/vuepress/commit/3722192))
+* Deprecated `@vuepress/plugin-blog` at alpha stage. ([10dfb66](https://github.com/vuejs/vuepress/commit/10dfb66)) [@ulivz](https://github.com/ulivz)
+* Deprecated `@vuepress/plugin-pagination` at alpha stage. ([3722192](https://github.com/vuejs/vuepress/commit/3722192)) [@ulivz](https://github.com/ulivz)
# [1.0.0-alpha.50](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.49...v1.0.0-alpha.50) (2019-06-04)
@@ -321,7 +551,7 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** window is not defined ([d30e078](https://github.com/vuejs/vuepress/commit/d30e078))
+* **$core:** window is not defined ([d30e078](https://github.com/vuejs/vuepress/commit/d30e078)) [@ulivz](https://github.com/ulivz)
# [1.0.0-alpha.49](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.48...v1.0.0-alpha.49) (2019-06-03)
@@ -329,15 +559,15 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** cannot load theme with shortcut. ([7eed1f4](https://github.com/vuejs/vuepress/commit/7eed1f4))
-* **$core:** cannot retrieve the correct theme name when them path is a local absolute path linked to a javascript file. ([50f64b4](https://github.com/vuejs/vuepress/commit/50f64b4))
+* **$core:** cannot load theme with shortcut. ([7eed1f4](https://github.com/vuejs/vuepress/commit/7eed1f4)) [@ulivz](https://github.com/ulivz)
+* **$core:** cannot retrieve the correct theme name when them path is a local absolute path linked to a javascript file. ([50f64b4](https://github.com/vuejs/vuepress/commit/50f64b4)) [@ulivz](https://github.com/ulivz)
### Features
-* **$core:** global variable "__VUEPRESS__" to store runtime key infos ([bd0bdf9](https://github.com/vuejs/vuepress/commit/bd0bdf9))
-* **$core:** safer class name of content outlet ([7d0542e](https://github.com/vuejs/vuepress/commit/7d0542e))
-* **$theme-default:** using '.theme-default-content' to replace '.content' in `` outlet. ([85ff630](https://github.com/vuejs/vuepress/commit/85ff630))
+* **$core:** global variable "__VUEPRESS__" to store runtime key infos ([bd0bdf9](https://github.com/vuejs/vuepress/commit/bd0bdf9)) [@ulivz](https://github.com/ulivz)
+* **$core:** safer class name of content outlet ([7d0542e](https://github.com/vuejs/vuepress/commit/7d0542e)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** using '.theme-default-content' to replace '.content' in `` outlet. ([85ff630](https://github.com/vuejs/vuepress/commit/85ff630)) [@ulivz](https://github.com/ulivz)
@@ -347,18 +577,18 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** Failed to load theme when using `layouts/Layout.vue` as entry file (close: [#1563](https://github.com/vuejs/vuepress/issues/1563)) ([#1564](https://github.com/vuejs/vuepress/issues/1564)) ([057d8bf](https://github.com/vuejs/vuepress/commit/057d8bf))
-* **$core:** Search result cannot jump to the correct hash anchor (close: [#1594](https://github.com/vuejs/vuepress/issues/1594)) ([#1599](https://github.com/vuejs/vuepress/issues/1599)) ([e6af68f](https://github.com/vuejs/vuepress/commit/e6af68f))
-* **$core:** Use directory name to compute slug if filename is readme or index (close: [#1443](https://github.com/vuejs/vuepress/issues/1443)) ([#1535](https://github.com/vuejs/vuepress/issues/1535)) ([9efc678](https://github.com/vuejs/vuepress/commit/9efc678))
-* **$core:** webpack externals (ref: [#451](https://github.com/vuejs/vuepress/issues/451)) ([fb324d5](https://github.com/vuejs/vuepress/commit/fb324d5))
+* **$core:** Failed to load theme when using `layouts/Layout.vue` as entry file (close: [#1563](https://github.com/vuejs/vuepress/issues/1563)) ([#1564](https://github.com/vuejs/vuepress/issues/1564)) ([057d8bf](https://github.com/vuejs/vuepress/commit/057d8bf)) [@ocavue](https://github.com/ocavue)
+* **$core:** Search result cannot jump to the correct hash anchor (close: [#1594](https://github.com/vuejs/vuepress/issues/1594)) ([#1599](https://github.com/vuejs/vuepress/issues/1599)) ([e6af68f](https://github.com/vuejs/vuepress/commit/e6af68f)) [@ulivz](https://github.com/ulivz)
+* **$core:** Use directory name to compute slug if filename is readme or index (close: [#1443](https://github.com/vuejs/vuepress/issues/1443)) ([#1535](https://github.com/vuejs/vuepress/issues/1535)) ([9efc678](https://github.com/vuejs/vuepress/commit/9efc678)) [@Rahul Kadyan](https://github.com/Rahul Kadyan)
+* **$core:** webpack externals (ref: [#451](https://github.com/vuejs/vuepress/issues/451)) ([fb324d5](https://github.com/vuejs/vuepress/commit/fb324d5)) [@ulivz](https://github.com/ulivz)
### Features
-* **$core:** Infer page's date via directory name ([#1553](https://github.com/vuejs/vuepress/issues/1553)) ([2c930c9](https://github.com/vuejs/vuepress/commit/2c930c9))
-* **$core:** `info` command ([#1573](https://github.com/vuejs/vuepress/issues/1573)) ([3eeb080](https://github.com/vuejs/vuepress/commit/3eeb080))
-* **$core:** Prevent duplicate route ([#1525](https://github.com/vuejs/vuepress/issues/1525)) ([441f023](https://github.com/vuejs/vuepress/commit/441f023))
-* **$theme-default:** Support external links in sidebar (close: [#764](https://github.com/vuejs/vuepress/issues/764))([#1534](https://github.com/vuejs/vuepress/issues/1534)) ([141bd11](https://github.com/vuejs/vuepress/commit/141bd11))
+* **$core:** Infer page's date via directory name ([#1553](https://github.com/vuejs/vuepress/issues/1553)) ([2c930c9](https://github.com/vuejs/vuepress/commit/2c930c9)) [@zyxd](https://github.com/zyxd)
+* **$core:** `info` command ([#1573](https://github.com/vuejs/vuepress/issues/1573)) ([3eeb080](https://github.com/vuejs/vuepress/commit/3eeb080)) [@James George](https://github.com/James George)
+* **$core:** Prevent duplicate route ([#1525](https://github.com/vuejs/vuepress/issues/1525)) ([441f023](https://github.com/vuejs/vuepress/commit/441f023)) [@Shigma](https://github.com/Shigma)
+* **$theme-default:** Support external links in sidebar (close: [#764](https://github.com/vuejs/vuepress/issues/764))([#1534](https://github.com/vuejs/vuepress/issues/1534)) ([141bd11](https://github.com/vuejs/vuepress/commit/141bd11)) [@Anton Wilhelm](https://github.com/Anton Wilhelm)
@@ -368,16 +598,16 @@ It seems no any changes here.
### 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))
+* **$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)) [@ulivz](https://github.com/ulivz)
+* **$core:** `routerBase` will always get '/' (close: [#1503](https://github.com/vuejs/vuepress/issues/1503)) ([9fba549](https://github.com/vuejs/vuepress/commit/9fba549)) [@ulivz](https://github.com/ulivz)
+* **$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)) [@Nick Evans](https://github.com/Nick Evans)
### 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))
+* **$core:** assert return type for functional plugin ([#1516](https://github.com/vuejs/vuepress/issues/1516)) ([74887c5](https://github.com/vuejs/vuepress/commit/74887c5)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@ulivz](https://github.com/ulivz)
+* **$plugin-pwa:** allow using local workbox files (close: [#539](https://github.com/vuejs/vuepress/issues/539)) ([4640614](https://github.com/vuejs/vuepress/commit/4640614)) [@ulivz](https://github.com/ulivz)
@@ -387,7 +617,7 @@ It seems no any changes here.
### 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))
+* **$core:** regression of introducing dynamic `routerBase` (close: [#1498](https://github.com/vuejs/vuepress/issues/1498)) ([5e12b49](https://github.com/vuejs/vuepress/commit/5e12b49)) [@ulivz](https://github.com/ulivz)
@@ -397,27 +627,27 @@ It seems no any changes here.
### 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))
+* **$core:** do not register component in render function ([#1449](https://github.com/vuejs/vuepress/issues/1449)) ([ef82c47](https://github.com/vuejs/vuepress/commit/ef82c47)) [@Rahul Kadyan](https://github.com/Rahul Kadyan)
+* **$core:** do not use stylus in outbound link ([d34e038](https://github.com/vuejs/vuepress/commit/d34e038)) [@Shigma](https://github.com/Shigma)
+* **$core:** should default host be 0.0.0.0 ([699492a](https://github.com/vuejs/vuepress/commit/699492a)) [@ulivz](https://github.com/ulivz)
+* **$markdown:** treat styl as stylus language ([#1433](https://github.com/vuejs/vuepress/issues/1433)) ([f44e2db](https://github.com/vuejs/vuepress/commit/f44e2db)) [@Barchiel](https://github.com/Barchiel)
+* **$markdown-loader:** always use `/` instead of `\` in `relPath` ([#1484](https://github.com/vuejs/vuepress/issues/1484)) ([944ebe4](https://github.com/vuejs/vuepress/commit/944ebe4)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@Kyle Shaver](https://github.com/Kyle Shaver)
+* **$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)) [@Coolyang](https://github.com/Coolyang)
+* **$plugin-pwa:** fix a typo in `opacity` ([#1444](https://github.com/vuejs/vuepress/issues/1444)) ([c174f0d](https://github.com/vuejs/vuepress/commit/c174f0d)) [@Vinayak Kulkarni](https://github.com/Vinayak Kulkarni)
+* **$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)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@Kyle Shaver](https://github.com/Kyle Shaver)
### Features
-* **$core:** allow dynamic routeBase at runtime ([fc99d59](https://github.com/vuejs/vuepress/commit/fc99d59))
-* **$core:** decode page path for better readability ([#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))
+* **$core:** allow dynamic routeBase at runtime ([fc99d59](https://github.com/vuejs/vuepress/commit/fc99d59)) [@ulivz](https://github.com/ulivz)
+* **$core:** decode page path for better readability ([#1438](https://github.com/vuejs/vuepress/issues/1438)) ([93b2ca1](https://github.com/vuejs/vuepress/commit/93b2ca1)) [@Shigma](https://github.com/Shigma)
+* **$core:** export version ([#1486](https://github.com/vuejs/vuepress/issues/1486)) ([d7b8daf](https://github.com/vuejs/vuepress/commit/d7b8daf)) [@Shigma](https://github.com/Shigma)
+* **$core:** functional siteConfig.evergreen ([#1489](https://github.com/vuejs/vuepress/issues/1489)) ([19e0569](https://github.com/vuejs/vuepress/commit/19e0569)) [@Shigma](https://github.com/Shigma)
+* **$core:** support array as plugin options ([#1493](https://github.com/vuejs/vuepress/issues/1493)) ([9e07b1e](https://github.com/vuejs/vuepress/commit/9e07b1e)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@Shigma](https://github.com/Shigma)
### Breaking Changes
@@ -432,8 +662,8 @@ It seems no any changes here.
### Features
-* **$core:** optional `callback` when socket connection is ready under dev. ([547e4f9](https://github.com/vuejs/vuepress/commit/547e4f9))
-* **$core:** return current app instance in node api ([1c2a6b2](https://github.com/vuejs/vuepress/commit/1c2a6b2))
+* **$core:** optional `callback` when socket connection is ready under dev. ([547e4f9](https://github.com/vuejs/vuepress/commit/547e4f9)) [@ulivz](https://github.com/ulivz)
+* **$core:** return current app instance in node api ([1c2a6b2](https://github.com/vuejs/vuepress/commit/1c2a6b2)) [@ulivz](https://github.com/ulivz)
@@ -444,16 +674,16 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** cannot render another page with pageKey (close: [#1173](https://github.com/vuejs/vuepress/issues/1173)) ([9d01514](https://github.com/vuejs/vuepress/commit/9d01514))
-* **$core:** global components cannot be used as layouts (close: [#1321](https://github.com/vuejs/vuepress/issues/1321)) ([0306574](https://github.com/vuejs/vuepress/commit/0306574))
-* **$core:** PascalCase layouts cannot be used with camelCase nor hyphen-delimited (close: [#1391](https://github.com/vuejs/vuepress/issues/1391)) ([3e91eba](https://github.com/vuejs/vuepress/commit/3e91eba))
-* **$plugin-blog:** read `layoutComponents` from themeAPI ([#1396](https://github.com/vuejs/vuepress/issues/1396)) ([5bf4d24](https://github.com/vuejs/vuepress/commit/5bf4d24))
+* **$core:** cannot render another page with pageKey (close: [#1173](https://github.com/vuejs/vuepress/issues/1173)) ([9d01514](https://github.com/vuejs/vuepress/commit/9d01514)) [@ulivz](https://github.com/ulivz)
+* **$core:** global components cannot be used as layouts (close: [#1321](https://github.com/vuejs/vuepress/issues/1321)) ([0306574](https://github.com/vuejs/vuepress/commit/0306574)) [@ulivz](https://github.com/ulivz)
+* **$core:** PascalCase layouts cannot be used with camelCase nor hyphen-delimited (close: [#1391](https://github.com/vuejs/vuepress/issues/1391)) ([3e91eba](https://github.com/vuejs/vuepress/commit/3e91eba)) [@ulivz](https://github.com/ulivz)
+* **$plugin-blog:** read `layoutComponents` from themeAPI ([#1396](https://github.com/vuejs/vuepress/issues/1396)) ([5bf4d24](https://github.com/vuejs/vuepress/commit/5bf4d24)) [@JK](https://github.com/JK)
### Features
-* **$core:** refine node api ([#1395](https://github.com/vuejs/vuepress/issues/1395)) ([e5d8ed4](https://github.com/vuejs/vuepress/commit/e5d8ed4))
-* **$cli:** `--no-clear-screen` flag (close: [#1421](https://github.com/vuejs/vuepress/issues/1421)) ([e5f51de](https://github.com/vuejs/vuepress/commit/e5f51de))
+* **$core:** refine node api ([#1395](https://github.com/vuejs/vuepress/issues/1395)) ([e5d8ed4](https://github.com/vuejs/vuepress/commit/e5d8ed4)) [@ulivz](https://github.com/ulivz)
+* **$cli:** `--no-clear-screen` flag (close: [#1421](https://github.com/vuejs/vuepress/issues/1421)) ([e5f51de](https://github.com/vuejs/vuepress/commit/e5f51de)) [@ulivz](https://github.com/ulivz)
@@ -463,7 +693,7 @@ It seems no any changes here.
### 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))
+* **$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)) [@Shigma](https://github.com/Shigma)
@@ -472,18 +702,18 @@ It seems no any changes here.
### 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))
+* **$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)) [@JYX](https://github.com/JYX)
+* **$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)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@Shigma](https://github.com/Shigma)
### 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))
+* **$plugin-container:** init ([#1381](https://github.com/vuejs/vuepress/issues/1381)) ([ad0ff72](https://github.com/vuejs/vuepress/commit/ad0ff72)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@Shigma](https://github.com/Shigma)
+* **$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)) [@meteorlxy](https://github.com/meteorlxy)
@@ -493,22 +723,22 @@ It seems no any changes here.
### Bug Fixes
-* **$cli:** re-support option `--open` (close: [#1320](https://github.com/vuejs/vuepress/issues/1320)) ([#1329](https://github.com/vuejs/vuepress/issues/1329)) ([b97e9ee](https://github.com/vuejs/vuepress/commit/b97e9ee))
-* **$core:** handle redirect based on lower case ([#1333](https://github.com/vuejs/vuepress/issues/1333)) ([505fea6](https://github.com/vuejs/vuepress/commit/505fea6))
-* **$core:** update outbound link icon alignment ([#1308](https://github.com/vuejs/vuepress/issues/1308)) ([6de1c30](https://github.com/vuejs/vuepress/commit/6de1c30))
-* **$plugin-pwa:** service worker doesn't work under sub directory (close: [#1311](https://github.com/vuejs/vuepress/issues/1311)) ([0d56a99](https://github.com/vuejs/vuepress/commit/0d56a99))
+* **$cli:** re-support option `--open` (close: [#1320](https://github.com/vuejs/vuepress/issues/1320)) ([#1329](https://github.com/vuejs/vuepress/issues/1329)) ([b97e9ee](https://github.com/vuejs/vuepress/commit/b97e9ee)) [@Shigma](https://github.com/Shigma)
+* **$core:** handle redirect based on lower case ([#1333](https://github.com/vuejs/vuepress/issues/1333)) ([505fea6](https://github.com/vuejs/vuepress/commit/505fea6)) [@Shigma](https://github.com/Shigma)
+* **$core:** update outbound link icon alignment ([#1308](https://github.com/vuejs/vuepress/issues/1308)) ([6de1c30](https://github.com/vuejs/vuepress/commit/6de1c30)) [@George Tsiolis](https://github.com/George Tsiolis)
+* **$plugin-pwa:** service worker doesn't work under sub directory (close: [#1311](https://github.com/vuejs/vuepress/issues/1311)) ([0d56a99](https://github.com/vuejs/vuepress/commit/0d56a99)) [@ulivz](https://github.com/ulivz)
### Features
-* **$core:** refine theme api ([d16d3d5](https://github.com/vuejs/vuepress/commit/d16d3d5)) ([#1319](https://github.com/vuejs/vuepress/issues/1319))
- - Check out [Theme Inheritance](https://v1.vuepress.vuejs.org/theme/inheritance.html) for more details.
-* **$markdown:** code snippet hmr (close [#1309](https://github.com/vuejs/vuepress/issues/1309)) ([#1358](https://github.com/vuejs/vuepress/issues/1358)) ([8f83a17](https://github.com/vuejs/vuepress/commit/8f83a17))
-* **$markdown:** refine markdown api ([#1337](https://github.com/vuejs/vuepress/issues/1337)) ([b79768c](https://github.com/vuejs/vuepress/commit/b79768c))
-* **$markdown:** cache parser ([#1359](https://github.com/vuejs/vuepress/issues/1359)) ([f04adbf](https://github.com/vuejs/vuepress/commit/f04adbf))
-* **$theme-default:** add ruby shortcut `rb` support for syntax highlighting ([#1312](https://github.com/vuejs/vuepress/issues/1312)) ([dad2928](https://github.com/vuejs/vuepress/commit/dad2928))
-* **$theme-default:** should allow for optional `h1` text at homepage ([#1326](https://github.com/vuejs/vuepress/issues/1326)) ([598799f](https://github.com/vuejs/vuepress/commit/598799f))
-* **$plugin-clean-urls:** init ([#1339](https://github.com/vuejs/vuepress/issues/1339)) ([40b3da8](https://github.com/vuejs/vuepress/commit/40b3da8))
+* **$core:** refine theme api ([d16d3d5](https://github.com/vuejs/vuepress/commit/d16d3d5)) [@ulivz](https://github.com/ulivz)([#1319](https://github.com/vuejs/vuepress/issues/1319))
+ - Check out [Theme Inheritance](https://vuepress.vuejs.org/theme/inheritance.html) for more details.
+* **$markdown:** code snippet hmr (close [#1309](https://github.com/vuejs/vuepress/issues/1309)) ([#1358](https://github.com/vuejs/vuepress/issues/1358)) ([8f83a17](https://github.com/vuejs/vuepress/commit/8f83a17)) [@Shigma](https://github.com/Shigma)
+* **$markdown:** refine markdown api ([#1337](https://github.com/vuejs/vuepress/issues/1337)) ([b79768c](https://github.com/vuejs/vuepress/commit/b79768c)) [@Shigma](https://github.com/Shigma)
+* **$markdown:** cache parser ([#1359](https://github.com/vuejs/vuepress/issues/1359)) ([f04adbf](https://github.com/vuejs/vuepress/commit/f04adbf)) [@Shigma](https://github.com/Shigma)
+* **$theme-default:** add ruby shortcut `rb` support for syntax highlighting ([#1312](https://github.com/vuejs/vuepress/issues/1312)) ([dad2928](https://github.com/vuejs/vuepress/commit/dad2928)) [@Fabio Anselmo](https://github.com/Fabio Anselmo)
+* **$theme-default:** should allow for optional `h1` text at homepage ([#1326](https://github.com/vuejs/vuepress/issues/1326)) ([598799f](https://github.com/vuejs/vuepress/commit/598799f)) [@Ahmad Nassri](https://github.com/Ahmad Nassri)
+* **$plugin-clean-urls:** init ([#1339](https://github.com/vuejs/vuepress/issues/1339)) ([40b3da8](https://github.com/vuejs/vuepress/commit/40b3da8)) [@Shigma](https://github.com/Shigma)
@@ -518,9 +748,9 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** cannot read property 'globalLayout' of null (close: [#1304](https://github.com/vuejs/vuepress/issues/1304)) ([94dab12](https://github.com/vuejs/vuepress/commit/94dab12))
-* **$core:** cannot use relative path in a permalink page (close: [#1227](https://github.com/vuejs/vuepress/issues/1227))([#1298](https://github.com/vuejs/vuepress/issues/1298)) ([d560e22](https://github.com/vuejs/vuepress/commit/d560e22))
- - Check out the [blog post](https://vuepress-relative-paths.ulivz.com/) for more details.
+* **$core:** cannot read property 'globalLayout' of null (close: [#1304](https://github.com/vuejs/vuepress/issues/1304)) ([94dab12](https://github.com/vuejs/vuepress/commit/94dab12)) [@ulivz](https://github.com/ulivz)
+* **$core:** cannot use relative path in a permalink page (close: [#1227](https://github.com/vuejs/vuepress/issues/1227))([#1298](https://github.com/vuejs/vuepress/issues/1298)) ([d560e22](https://github.com/vuejs/vuepress/commit/d560e22)) [@Shigma](https://github.com/Shigma)
+ - Check out the [blog post](https://vuepress-relative-paths.billyyyyy3320.com/) for more details.
@@ -529,14 +759,14 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-pwa:** set current registration scope for service worker (close: [#1271](https://github.com/vuejs/vuepress/issues/1271)) ([#1302](https://github.com/vuejs/vuepress/issues/1302)) ([4b2b0f4](https://github.com/vuejs/vuepress/commit/4b2b0f4))
-* **$theme-default:** sidebar group item cannot contain empty children (close: [#1278](https://github.com/vuejs/vuepress/issues/1278)) ([5f1eb0e](https://github.com/vuejs/vuepress/commit/5f1eb0e))
+* **$plugin-pwa:** set current registration scope for service worker (close: [#1271](https://github.com/vuejs/vuepress/issues/1271)) ([#1302](https://github.com/vuejs/vuepress/issues/1302)) ([4b2b0f4](https://github.com/vuejs/vuepress/commit/4b2b0f4)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** sidebar group item cannot contain empty children (close: [#1278](https://github.com/vuejs/vuepress/issues/1278)) ([5f1eb0e](https://github.com/vuejs/vuepress/commit/5f1eb0e)) [@ulivz](https://github.com/ulivz)
### Features
-* **$core:** support global layout (close: [#1226](https://github.com/vuejs/vuepress/issues/1226)) ([c91f55a](https://github.com/vuejs/vuepress/commit/c91f55a))
-* **$theme-default:** disable search box via frontmatter (close: [#1287](https://github.com/vuejs/vuepress/issues/1287)) ([#1288](https://github.com/vuejs/vuepress/issues/1288)) ([54e9eb0](https://github.com/vuejs/vuepress/commit/54e9eb0))
+* **$core:** support global layout (close: [#1226](https://github.com/vuejs/vuepress/issues/1226)) ([c91f55a](https://github.com/vuejs/vuepress/commit/c91f55a)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** disable search box via frontmatter (close: [#1287](https://github.com/vuejs/vuepress/issues/1287)) ([#1288](https://github.com/vuejs/vuepress/issues/1288)) ([54e9eb0](https://github.com/vuejs/vuepress/commit/54e9eb0)) [@Andrew Salib](https://github.com/Andrew Salib)
@@ -547,10 +777,10 @@ It seems no any changes here.
### Features
-* **$core:** redirects for clean urls ([#1269](https://github.com/vuejs/vuepress/issues/1269)) ([213bb34](https://github.com/vuejs/vuepress/commit/213bb34))
-* **$theme-default:** fallback current group node to page node if children doesn't exist ([11ce576](https://github.com/vuejs/vuepress/commit/11ce576))
-* **$theme-default:** highlight sidebar link text at root level like sidebar group heading text ([05e793f](https://github.com/vuejs/vuepress/commit/05e793f))
-* **$theme-default:** unify the text color of sidebar heading text and root-level sidebar link ([3e47a20](https://github.com/vuejs/vuepress/commit/3e47a20))
+* **$core:** redirects for clean urls ([#1269](https://github.com/vuejs/vuepress/issues/1269)) ([213bb34](https://github.com/vuejs/vuepress/commit/213bb34)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** fallback current group node to page node if children doesn't exist ([11ce576](https://github.com/vuejs/vuepress/commit/11ce576)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** highlight sidebar link text at root level like sidebar group heading text ([05e793f](https://github.com/vuejs/vuepress/commit/05e793f)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** unify the text color of sidebar heading text and root-level sidebar link ([3e47a20](https://github.com/vuejs/vuepress/commit/3e47a20)) [@ulivz](https://github.com/ulivz)
@@ -560,12 +790,12 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** SFC page compile error (close: [#1110](https://github.com/vuejs/vuepress/issues/1110)) ([8f5b0cd](https://github.com/vuejs/vuepress/commit/8f5b0cd))
+* **$core:** SFC page compile error (close: [#1110](https://github.com/vuejs/vuepress/issues/1110)) ([8f5b0cd](https://github.com/vuejs/vuepress/commit/8f5b0cd)) [@ulivz](https://github.com/ulivz)
### Features
-* **$theme-default:** refine sidebar groups ([#1257](https://github.com/vuejs/vuepress/issues/1257)) ([01dd45b](https://github.com/vuejs/vuepress/commit/01dd45b)), closes [#814](https://github.com/vuejs/vuepress/issues/814) [#783](https://github.com/vuejs/vuepress/issues/783) [#287](https://github.com/vuejs/vuepress/issues/287)
+* **$theme-default:** refine sidebar groups ([#1257](https://github.com/vuejs/vuepress/issues/1257)) ([01dd45b](https://github.com/vuejs/vuepress/commit/01dd45b)) [@ulivz](https://github.com/ulivz) closes [#814](https://github.com/vuejs/vuepress/issues/814) [#783](https://github.com/vuejs/vuepress/issues/783) [#287](https://github.com/vuejs/vuepress/issues/287)
- `sidebarDepth` for a specified sidebar group.
- Nested sidebar groups.
- Clickable heading for sidebar groups.
@@ -578,15 +808,15 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** bust cache of extra watching files ([075f470](https://github.com/vuejs/vuepress/commit/075f470))
-* **$core:** never throw error if layout component does not exist ([#1247](https://github.com/vuejs/vuepress/issues/1247)) ([49c5983](https://github.com/vuejs/vuepress/commit/49c5983))
-* **$core:** style and platte path sep on windows ([#1246](https://github.com/vuejs/vuepress/issues/1246)) ([592918a](https://github.com/vuejs/vuepress/commit/592918a))
-* **$theme-default:** bitbucket edit link goes to wrong link (close: [#1235](https://github.com/vuejs/vuepress/issues/1235)) ([#1248](https://github.com/vuejs/vuepress/issues/1248)) ([3c5b3a6](https://github.com/vuejs/vuepress/commit/3c5b3a6))
+* **$core:** bust cache of extra watching files ([075f470](https://github.com/vuejs/vuepress/commit/075f470)) [@ulivz](https://github.com/ulivz)
+* **$core:** never throw error if layout component does not exist ([#1247](https://github.com/vuejs/vuepress/issues/1247)) ([49c5983](https://github.com/vuejs/vuepress/commit/49c5983)) [@Liu Xinyu](https://github.com/Liu Xinyu)
+* **$core:** style and platte path sep on windows ([#1246](https://github.com/vuejs/vuepress/issues/1246)) ([592918a](https://github.com/vuejs/vuepress/commit/592918a)) [@Liu Xinyu](https://github.com/Liu Xinyu)
+* **$theme-default:** bitbucket edit link goes to wrong link (close: [#1235](https://github.com/vuejs/vuepress/issues/1235)) ([#1248](https://github.com/vuejs/vuepress/issues/1248)) ([3c5b3a6](https://github.com/vuejs/vuepress/commit/3c5b3a6)) [@nickngqs](https://github.com/nickngqs)
### Features
-* **$core:** exclude temp dir from being ignored watching ([c6797dd](https://github.com/vuejs/vuepress/commit/c6797dd))
+* **$core:** exclude temp dir from being ignored watching ([c6797dd](https://github.com/vuejs/vuepress/commit/c6797dd)) [@ulivz](https://github.com/ulivz)
@@ -596,15 +826,15 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** Cannot load assets when `base` is not '/' (close: [#1238](https://github.com/vuejs/vuepress/issues/1238))([#1239](https://github.com/vuejs/vuepress/issues/1239)) ([8a234bb](https://github.com/vuejs/vuepress/commit/8a234bb))
+* **$core:** Cannot load assets when `base` is not '/' (close: [#1238](https://github.com/vuejs/vuepress/issues/1238))([#1239](https://github.com/vuejs/vuepress/issues/1239)) ([8a234bb](https://github.com/vuejs/vuepress/commit/8a234bb)) [@Steve Young](https://github.com/Steve Young)
This is a regression issue of leverage webpack-dev-server at [#1195](https://github.com/vuejs/vuepress/issues/1195).
-* **$markdown:** Remove colon as separator for [Import Code Snippets](https://v1.vuepress.vuejs.org/guide/markdown.html#import-code-snippets) (close: [#1151](https://github.com/vuejs/vuepress/issues/1151)) ([#1236](https://github.com/vuejs/vuepress/issues/1236)) ([099d346](https://github.com/vuejs/vuepress/commit/099d346))
+* **$markdown:** Remove colon as separator for [Import Code Snippets](https://vuepress.vuejs.org/guide/markdown.html#import-code-snippets) (close: [#1151](https://github.com/vuejs/vuepress/issues/1151)) ([#1236](https://github.com/vuejs/vuepress/issues/1236)) ([099d346](https://github.com/vuejs/vuepress/commit/099d346)) [@Shigma](https://github.com/Shigma)
### Features
-* **$core:** Support extra watching files ([02cc268](https://github.com/vuejs/vuepress/commit/02cc268)),
+* **$core:** Support extra watching files ([02cc268](https://github.com/vuejs/vuepress/commit/02cc268)) [@ulivz](https://github.com/ulivz)
e.g.
```js
// .vuepress/config.js
@@ -624,18 +854,18 @@ It seems no any changes here.
### Features
-* **$core:** Leverage `webpack-dev-server` and sunset `webpack-serve` ([#1195](https://github.com/vuejs/vuepress/issues/1195)) ([81e3ef6](https://github.com/vuejs/vuepress/commit/81e3ef6))
- - Add new plugin option api [beforeDevServer](https://v1.vuepress.vuejs.org/plugin/option-api.html#beforedevserver) and [afterDevServer](https://v1.vuepress.vuejs.org/plugin/option-api.html#afterdevserver).
+* **$core:** Leverage `webpack-dev-server` and sunset `webpack-serve` ([#1195](https://github.com/vuejs/vuepress/issues/1195)) ([81e3ef6](https://github.com/vuejs/vuepress/commit/81e3ef6)) [@ulivz](https://github.com/ulivz)
+ - Add new plugin option api [beforeDevServer](https://vuepress.vuejs.org/plugin/option-api.html#beforedevserver) and [afterDevServer](https://vuepress.vuejs.org/plugin/option-api.html#afterdevserver).
- Remove `enhanceDevServer`.
- Publish [vuepress-plugin-export](https://github.com/ulivz/vuepress-plugin-export).
-* **$core:** Allow a theme package using a sub directory (close [#1204](https://github.com/vuejs/vuepress/issues/1204)) ([#1206](https://github.com/vuejs/vuepress/issues/1206)) ([febe3a7](https://github.com/vuejs/vuepress/commit/febe3a7))
-* **$theme-default:** Support shortcut for `sh` and `yml`. (close: [#1221](https://github.com/vuejs/vuepress/issues/1221)) ([fc5dba8](https://github.com/vuejs/vuepress/commit/fc5dba8))
+* **$core:** Allow a theme package using a sub directory (close [#1204](https://github.com/vuejs/vuepress/issues/1204)) ([#1206](https://github.com/vuejs/vuepress/issues/1206)) ([febe3a7](https://github.com/vuejs/vuepress/commit/febe3a7)) [@Liu Xinyu](https://github.com/Liu Xinyu)
+* **$theme-default:** Support shortcut for `sh` and `yml`. (close: [#1221](https://github.com/vuejs/vuepress/issues/1221)) ([fc5dba8](https://github.com/vuejs/vuepress/commit/fc5dba8)) [@ulivz](https://github.com/ulivz)
### BREAKING CHANGES
* **$core:** - Plugin option `enhanceDevServer` was removed.
- **For 0.x users**, there is no any effect since we didn't expose API to modify it.
- - **For 1.x users whose version of VuePress is lower than 1.0.0-alpha.33**, you should use [`beforeDevServer`](https://v1.vuepress.vuejs.org/plugin/option-api.html#beforedevserver)(i.e. [before](https://webpack.js.org/configuration/dev-server/#devserver-before) in `webpack-dev-server`) to replace `enhanceDevServer`, you can also use [`afterDevServer`](https://v1.vuepress.vuejs.org/plugin/option-api.html#afterdevserver)(i.e. [after](https://webpack.js.org/configuration/dev-server/#devserver-after) in `webpack-dev-server`) to execute custom middleware after all other middleware internally within the server.
+ - **For 1.x users whose version of VuePress is lower than 1.0.0-alpha.33**, you should use [`beforeDevServer`](https://vuepress.vuejs.org/plugin/option-api.html#beforedevserver)(i.e. [before](https://webpack.js.org/configuration/dev-server/#devserver-before) in `webpack-dev-server`) to replace `enhanceDevServer`, you can also use [`afterDevServer`](https://vuepress.vuejs.org/plugin/option-api.html#afterdevserver)(i.e. [after](https://webpack.js.org/configuration/dev-server/#devserver-after) in `webpack-dev-server`) to execute custom middleware after all other middleware internally within the server.
# [1.0.0-alpha.32](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.31...v1.0.0-alpha.32) (2019-01-15)
@@ -643,11 +873,11 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-blog,$plugin-google-analytics:** Uniform plugin file name to `enhanceAppFile` ([#1194](https://github.com/vuejs/vuepress/issues/1194)) ([dce17c6](https://github.com/vuejs/vuepress/commit/dce17c6))
-* **$core:** Move cac dependency to `vuepress` package (close: [#1183](https://github.com/vuejs/vuepress/issues/1183)) ([#1184](https://github.com/vuejs/vuepress/issues/1184)) ([d160e68](https://github.com/vuejs/vuepress/commit/d160e68))
-* **$plugin-pagination:** Won't work when `perPagePosts` is 1 and total posts is 2 ([#1176](https://github.com/vuejs/vuepress/issues/1176)) ([8735d2c](https://github.com/vuejs/vuepress/commit/8735d2c))
-* **$shared-utils:** missing `gray-matter` dependency (close: [#1190](https://github.com/vuejs/vuepress/issues/1190)) ([02bf7b9](https://github.com/vuejs/vuepress/commit/02bf7b9))
-* **$theme-default:** Tag `` has no matching end tag ([#1181](https://github.com/vuejs/vuepress/issues/1181)) ([c82cc10](https://github.com/vuejs/vuepress/commit/c82cc10))
+* **$plugin-blog,$plugin-google-analytics:** Uniform plugin file name to `enhanceAppFile` ([#1194](https://github.com/vuejs/vuepress/issues/1194)) ([dce17c6](https://github.com/vuejs/vuepress/commit/dce17c6)) [@caojiafeng](https://github.com/caojiafeng)
+* **$core:** Move cac dependency to `vuepress` package (close: [#1183](https://github.com/vuejs/vuepress/issues/1183)) ([#1184](https://github.com/vuejs/vuepress/issues/1184)) ([d160e68](https://github.com/vuejs/vuepress/commit/d160e68)) [@Sergey Larionov](https://github.com/Sergey Larionov)
+* **$plugin-pagination:** Won't work when `perPagePosts` is 1 and total posts is 2 ([#1176](https://github.com/vuejs/vuepress/issues/1176)) ([8735d2c](https://github.com/vuejs/vuepress/commit/8735d2c)) [@lihaoze](https://github.com/lihaoze)
+* **$shared-utils:** missing `gray-matter` dependency (close: [#1190](https://github.com/vuejs/vuepress/issues/1190)) ([02bf7b9](https://github.com/vuejs/vuepress/commit/02bf7b9)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** Tag `` has no matching end tag ([#1181](https://github.com/vuejs/vuepress/issues/1181)) ([c82cc10](https://github.com/vuejs/vuepress/commit/c82cc10)) [@Nelson Martell](https://github.com/Nelson Martell)
@@ -657,19 +887,19 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** Check if layout exists ([#1166](https://github.com/vuejs/vuepress/issues/1166)) ([38d1dea](https://github.com/vuejs/vuepress/commit/38d1dea))
-* **$core:** `NotFound` component doesn't work (close: [#1130](https://github.com/vuejs/vuepress/issues/1130)) ([b562972](https://github.com/vuejs/vuepress/commit/b562972))
-* **$core:** Mormalize override stylus file path in windows ([#1164](https://github.com/vuejs/vuepress/issues/1164)) ([9665196](https://github.com/vuejs/vuepress/commit/9665196))
-* **$core:** frontmatter attribute in `additionalPages` is ignored when combined with content (close: [#1157](https://github.com/vuejs/vuepress/issues/1157)) ([87894ff](https://github.com/vuejs/vuepress/commit/87894ff))
-* **$plugin-back-to-top:** use `$accent-color`. (close: [#1121](https://github.com/vuejs/vuepress/issues/1121)) ([#1122](https://github.com/vuejs/vuepress/issues/1122)) ([929da11](https://github.com/vuejs/vuepress/commit/929da11))
-* **$theme-default:** style is incompatible in low version iOS (<= iOS9) ([#1136](https://github.com/vuejs/vuepress/issues/1136)) ([f46de67](https://github.com/vuejs/vuepress/commit/f46de67))
+* **$core:** Check if layout exists ([#1166](https://github.com/vuejs/vuepress/issues/1166)) ([38d1dea](https://github.com/vuejs/vuepress/commit/38d1dea)) [@Liu Xinyu](https://github.com/Liu Xinyu)
+* **$core:** `NotFound` component doesn't work (close: [#1130](https://github.com/vuejs/vuepress/issues/1130)) ([b562972](https://github.com/vuejs/vuepress/commit/b562972)) [@ulivz](https://github.com/ulivz)
+* **$core:** Mormalize override stylus file path in windows ([#1164](https://github.com/vuejs/vuepress/issues/1164)) ([9665196](https://github.com/vuejs/vuepress/commit/9665196)) [@Sascha](https://github.com/Sascha)
+* **$core:** frontmatter attribute in `additionalPages` is ignored when combined with content (close: [#1157](https://github.com/vuejs/vuepress/issues/1157)) ([87894ff](https://github.com/vuejs/vuepress/commit/87894ff)) [@ulivz](https://github.com/ulivz)
+* **$plugin-back-to-top:** use `$accent-color`. (close: [#1121](https://github.com/vuejs/vuepress/issues/1121)) ([#1122](https://github.com/vuejs/vuepress/issues/1122)) ([929da11](https://github.com/vuejs/vuepress/commit/929da11)) [@Dmitry Sharshakov aka. sh7dm](https://github.com/Dmitry Sharshakov aka. sh7dm)
+* **$theme-default:** style is incompatible in low version iOS (<= iOS9) ([#1136](https://github.com/vuejs/vuepress/issues/1136)) ([f46de67](https://github.com/vuejs/vuepress/commit/f46de67)) [@红发](https://github.com/红发)
### Features
-* **$new-package:** standalone nprogress plugin ([25db1ba](https://github.com/vuejs/vuepress/commit/25db1ba))
-* **$plugin-google-analytics:** set `anonymizeIp` to true in order to be compliant with GDPR.([#1153](https://github.com/vuejs/vuepress/issues/1153)) ([122e024](https://github.com/vuejs/vuepress/commit/122e024))
-* **$theme-default:** semantic HTML (close: [#1154](https://github.com/vuejs/vuepress/issues/1154))([#1156](https://github.com/vuejs/vuepress/issues/1156)) ([ede57b0](https://github.com/vuejs/vuepress/commit/ede57b0))
+* **$new-package:** standalone nprogress plugin ([25db1ba](https://github.com/vuejs/vuepress/commit/25db1ba)) [@ulivz](https://github.com/ulivz)
+* **$plugin-google-analytics:** set `anonymizeIp` to true in order to be compliant with GDPR.([#1153](https://github.com/vuejs/vuepress/issues/1153)) ([122e024](https://github.com/vuejs/vuepress/commit/122e024)) [@Vittorio Minacori](https://github.com/Vittorio Minacori)
+* **$theme-default:** semantic HTML (close: [#1154](https://github.com/vuejs/vuepress/issues/1154))([#1156](https://github.com/vuejs/vuepress/issues/1156)) ([ede57b0](https://github.com/vuejs/vuepress/commit/ede57b0)) [@Markus Siering](https://github.com/Markus Siering)
@@ -679,17 +909,17 @@ It seems no any changes here.
### Features
-* **$core:** add `--open` argument to open browser automatically (close: [#1100](https://github.com/vuejs/vuepress/issues/1100))([#1109](https://github.com/vuejs/vuepress/issues/1109)) ([550317e](https://github.com/vuejs/vuepress/commit/550317e))
-* **$core:** re-enable behavior of scrolling to anchor link (close: [#1107](https://github.com/vuejs/vuepress/issues/1107))([#1108](https://github.com/vuejs/vuepress/issues/1108)) ([7ad0a42](https://github.com/vuejs/vuepress/commit/7ad0a42))
+* **$core:** add `--open` argument to open browser automatically (close: [#1100](https://github.com/vuejs/vuepress/issues/1100))([#1109](https://github.com/vuejs/vuepress/issues/1109)) ([550317e](https://github.com/vuejs/vuepress/commit/550317e)) [@Dmitriy Sharshakov aka. sh7dm](https://github.com/Dmitriy Sharshakov aka. sh7dm)
+* **$core:** re-enable behavior of scrolling to anchor link (close: [#1107](https://github.com/vuejs/vuepress/issues/1107))([#1108](https://github.com/vuejs/vuepress/issues/1108)) ([7ad0a42](https://github.com/vuejs/vuepress/commit/7ad0a42)) [@Jan Vennemann](https://github.com/Jan Vennemann)
### Breaking Changes
-* **$core:** remove `contentLoading` and refine scroll behavior ([#1117](https://github.com/vuejs/vuepress/issues/1117)) ([0a7d85b](https://github.com/vuejs/vuepress/commit/0a7d85b))
+* **$core:** remove `contentLoading` and refine scroll behavior ([#1117](https://github.com/vuejs/vuepress/issues/1117)) ([0a7d85b](https://github.com/vuejs/vuepress/commit/0a7d85b)) [@ulivz](https://github.com/ulivz)
- It also fixes the existing issues about anchor links. (Refs: [#1113](https://github.com/vuejs/vuepress/issues/1113), [#1016](https://github.com/vuejs/vuepress/issues/1016), [#1011](https://github.com/vuejs/vuepress/issues/1011), [#895](https://github.com/vuejs/vuepress/issues/895))
### Performance Improvements
-* **$core:** improve ssr performance ([#1068](https://github.com/vuejs/vuepress/issues/1068)) ([1c2aa08](https://github.com/vuejs/vuepress/commit/1c2aa08))
+* **$core:** improve ssr performance ([#1068](https://github.com/vuejs/vuepress/issues/1068)) ([1c2aa08](https://github.com/vuejs/vuepress/commit/1c2aa08)) [@Jan Vennemann](https://github.com/Jan Vennemann)
@@ -699,8 +929,8 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-blog:** fix blog layout rendering error (close: [#1073](https://github.com/vuejs/vuepress/issues/1073)) ([#1095](https://github.com/vuejs/vuepress/issues/1095)) ([f8469eb](https://github.com/vuejs/vuepress/commit/f8469eb))
-* **$core:** variable `parent` is undefined in build process ([#1098](https://github.com/vuejs/vuepress/issues/1098)) ([dc7be95](https://github.com/vuejs/vuepress/commit/dc7be95))
+* **$plugin-blog:** fix blog layout rendering error (close: [#1073](https://github.com/vuejs/vuepress/issues/1073)) ([#1095](https://github.com/vuejs/vuepress/issues/1095)) ([f8469eb](https://github.com/vuejs/vuepress/commit/f8469eb)) [@minfive](https://github.com/minfive)
+* **$core:** variable `parent` is undefined in build process ([#1098](https://github.com/vuejs/vuepress/issues/1098)) ([dc7be95](https://github.com/vuejs/vuepress/commit/dc7be95)) [@Telepenin Nikolay](https://github.com/Telepenin Nikolay)
@@ -710,19 +940,19 @@ It seems no any changes here.
### Bug Fixes
-* **$cli:** bump CAC version ([#1062](https://github.com/vuejs/vuepress/issues/1062)) ([172afa3](https://github.com/vuejs/vuepress/commit/172afa3))
-* **$core:** async function support for plugin option `additionalPages` (close: [#1077](https://github.com/vuejs/vuepress/issues/1077))([#1080](https://github.com/vuejs/vuepress/issues/1080)) ([3095106](https://github.com/vuejs/vuepress/commit/3095106))
-* **$core:** `'slotKey'` must be defined as props in user's markdown's script tag (close: [#975](https://github.com/vuejs/vuepress/issues/975)) ([ece2e1e](https://github.com/vuejs/vuepress/commit/ece2e1e))
-* **$core:** remove smoothing scroll (close: [#1071](https://github.com/vuejs/vuepress/issues/1071)) ([#1075](https://github.com/vuejs/vuepress/issues/1075)) ([26c0628](https://github.com/vuejs/vuepress/commit/26c0628))
-* **$theme-default:** fix height of input in SearchBox for IE11 ([#1093](https://github.com/vuejs/vuepress/issues/1093)) ([04510e9](https://github.com/vuejs/vuepress/commit/04510e9))
+* **$cli:** bump CAC version ([#1062](https://github.com/vuejs/vuepress/issues/1062)) ([172afa3](https://github.com/vuejs/vuepress/commit/172afa3)) [@spiltcoffee](https://github.com/spiltcoffee)
+* **$core:** async function support for plugin option `additionalPages` (close: [#1077](https://github.com/vuejs/vuepress/issues/1077))([#1080](https://github.com/vuejs/vuepress/issues/1080)) ([3095106](https://github.com/vuejs/vuepress/commit/3095106)) [@Jan Vennemann](https://github.com/Jan Vennemann)
+* **$core:** `'slotKey'` must be defined as props in user's markdown's script tag (close: [#975](https://github.com/vuejs/vuepress/issues/975)) ([ece2e1e](https://github.com/vuejs/vuepress/commit/ece2e1e)) [@ulivz](https://github.com/ulivz)
+* **$core:** remove smoothing scroll (close: [#1071](https://github.com/vuejs/vuepress/issues/1071)) ([#1075](https://github.com/vuejs/vuepress/issues/1075)) ([26c0628](https://github.com/vuejs/vuepress/commit/26c0628)) [@Daniel Castillo](https://github.com/Daniel Castillo)
+* **$theme-default:** fix height of input in SearchBox for IE11 ([#1093](https://github.com/vuejs/vuepress/issues/1093)) ([04510e9](https://github.com/vuejs/vuepress/commit/04510e9)) [@Dylan Broussard](https://github.com/Dylan Broussard)
### Features
-* **$core:** pass generated page paths to `generated` hook ([#925](https://github.com/vuejs/vuepress/issues/925)) ([5ee2b2b](https://github.com/vuejs/vuepress/commit/5ee2b2b))
-* **$core:** `extendCli` Plugin Option API ([#1069](https://github.com/vuejs/vuepress/issues/1069)) ([e963731](https://github.com/vuejs/vuepress/commit/e963731))
- - See [docs](https://v1.vuepress.vuejs.org/plugin/option-api.html#extendcli).
-* **$plugin-search:** searchable paths with test RegExp ([#1032](https://github.com/vuejs/vuepress/issues/1032)) ([d6bddf1](https://github.com/vuejs/vuepress/commit/d6bddf1))
+* **$core:** pass generated page paths to `generated` hook ([#925](https://github.com/vuejs/vuepress/issues/925)) ([5ee2b2b](https://github.com/vuejs/vuepress/commit/5ee2b2b)) [@Michael Smith](https://github.com/Michael Smith)
+* **$core:** `extendCli` Plugin Option API ([#1069](https://github.com/vuejs/vuepress/issues/1069)) ([e963731](https://github.com/vuejs/vuepress/commit/e963731)) [@ulivz](https://github.com/ulivz)
+ - See [docs](https://vuepress.vuejs.org/plugin/option-api.html#extendcli).
+* **$plugin-search:** searchable paths with test RegExp ([#1032](https://github.com/vuejs/vuepress/issues/1032)) ([d6bddf1](https://github.com/vuejs/vuepress/commit/d6bddf1)) [@Robson Tenório](https://github.com/Robson Tenório)
@@ -732,7 +962,7 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** `vuepress dev` broken on nodejs v10 and greater (close: [#1063](https://github.com/vuejs/vuepress/issues/1063)) (close: [#1064](https://github.com/vuejs/vuepress/issues/1064)) ([39e9673](https://github.com/vuejs/vuepress/commit/39e9673))
+* **$core:** `vuepress dev` broken on nodejs v10 and greater (close: [#1063](https://github.com/vuejs/vuepress/issues/1063)) (close: [#1064](https://github.com/vuejs/vuepress/issues/1064)) ([39e9673](https://github.com/vuejs/vuepress/commit/39e9673)) [@ulivz](https://github.com/ulivz)
# [1.0.0-alpha.26](https://github.com/vuejs/vuepress/compare/v1.0.0-alpha.25...v1.0.0-alpha.26) (2018-12-02)
@@ -740,16 +970,16 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** changing `frontmatter` always took a long time to refresh page ([68add19](https://github.com/vuejs/vuepress/commit/68add19))
+* **$core:** changing `frontmatter` always took a long time to refresh page ([68add19](https://github.com/vuejs/vuepress/commit/68add19)) [@ulivz](https://github.com/ulivz)
- From now on `AppContext` has become a `singleton`.
### Features
-* **$cli:** allow unknown options in dev and build command ([0ecd099](https://github.com/vuejs/vuepress/commit/0ecd099))
-* **$core:** debug to see performance ([0876491](https://github.com/vuejs/vuepress/commit/0876491))
+* **$cli:** allow unknown options in dev and build command ([0ecd099](https://github.com/vuejs/vuepress/commit/0ecd099)) [@ulivz](https://github.com/ulivz)
+* **$core:** debug to see performance ([0876491](https://github.com/vuejs/vuepress/commit/0876491)) [@ulivz](https://github.com/ulivz)
- Using `--developer` flag to see the performance for 1st dev and build. note that `--developer` flag is a separate flag which doesn't have log level.
-* **$core:** support Vue SFCs as source files ([dfb0bba](https://github.com/vuejs/vuepress/commit/dfb0bba))
+* **$core:** support Vue SFCs as source files ([dfb0bba](https://github.com/vuejs/vuepress/commit/dfb0bba)) [@ulivz](https://github.com/ulivz)
- Note that when Vue SFCs are source files, VuePress will treat them as `layout components` directly.
@@ -758,17 +988,17 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** content property of additionalPages doesn't work (close: [#1050](https://github.com/vuejs/vuepress/issues/1050)) ([4f505a8](https://github.com/vuejs/vuepress/commit/4f505a8))
-* **$core:** markdown slots doesn't work (close: [#1048](https://github.com/vuejs/vuepress/issues/1048))([#1054](https://github.com/vuejs/vuepress/issues/1054)) ([c07949d](https://github.com/vuejs/vuepress/commit/c07949d))
-* **$theme-default:** Extending `Layout.vue` causes the Sidebar to disappear (close: [#1045](https://github.com/vuejs/vuepress/issues/1045)) ([8dd418e](https://github.com/vuejs/vuepress/commit/8dd418e))
+* **$core:** content property of additionalPages doesn't work (close: [#1050](https://github.com/vuejs/vuepress/issues/1050)) ([4f505a8](https://github.com/vuejs/vuepress/commit/4f505a8)) [@ulivz](https://github.com/ulivz)
+* **$core:** markdown slots doesn't work (close: [#1048](https://github.com/vuejs/vuepress/issues/1048))([#1054](https://github.com/vuejs/vuepress/issues/1054)) ([c07949d](https://github.com/vuejs/vuepress/commit/c07949d)) [@Jan Vennemann](https://github.com/Jan Vennemann)
+* **$theme-default:** Extending `Layout.vue` causes the Sidebar to disappear (close: [#1045](https://github.com/vuejs/vuepress/issues/1045)) ([8dd418e](https://github.com/vuejs/vuepress/commit/8dd418e)) [@ulivz](https://github.com/ulivz)
### Features
-* **$cli:** migrate to CAC ([#1049](https://github.com/vuejs/vuepress/issues/1049)) ([1a897cb](https://github.com/vuejs/vuepress/commit/1a897cb))
-* **$core:** support debug in dev process ([#1051](https://github.com/vuejs/vuepress/issues/1051)) ([e570252](https://github.com/vuejs/vuepress/commit/e570252))
-* **$core:** AppContext was still expecting --outDir instead of --dest ([#1041](https://github.com/vuejs/vuepress/issues/1041)) ([5d9f87b](https://github.com/vuejs/vuepress/commit/5d9f87b))
-* **$markdown:** pass rest options to instantiate markdown-it ([d8db81c](https://github.com/vuejs/vuepress/commit/d8db81c)), closes [#1040](https://github.com/vuejs/vuepress/issues/1040)
+* **$cli:** migrate to CAC ([#1049](https://github.com/vuejs/vuepress/issues/1049)) ([1a897cb](https://github.com/vuejs/vuepress/commit/1a897cb)) [@ulivz](https://github.com/ulivz)
+* **$core:** support debug in dev process ([#1051](https://github.com/vuejs/vuepress/issues/1051)) ([e570252](https://github.com/vuejs/vuepress/commit/e570252)) [@ulivz](https://github.com/ulivz)
+* **$core:** AppContext was still expecting --outDir instead of --dest ([#1041](https://github.com/vuejs/vuepress/issues/1041)) ([5d9f87b](https://github.com/vuejs/vuepress/commit/5d9f87b)) [@spiltcoffee](https://github.com/spiltcoffee)
+* **$markdown:** pass rest options to instantiate markdown-it ([d8db81c](https://github.com/vuejs/vuepress/commit/d8db81c)) [@ulivz](https://github.com/ulivz) closes [#1040](https://github.com/vuejs/vuepress/issues/1040)
@@ -778,20 +1008,20 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** distracting and time wasting after importing smoothing scroll ([58981fb](https://github.com/vuejs/vuepress/commit/58981fb))
-* **$cli:** 'vuepress eject' doesn't copy files (close: [#1028](https://github.com/vuejs/vuepress/issues/1028)) ([aad86b9](https://github.com/vuejs/vuepress/commit/aad86b9))
-* **$markdown:** "index" is dropped in a link with "*index" pattern ([e8b78c4](https://github.com/vuejs/vuepress/commit/e8b78c4)), closes [#996](https://github.com/vuejs/vuepress/issues/996)
-* **$plugin-blog:** blocking front matter custom layout config (close: [#906](https://github.com/vuejs/vuepress/issues/906)) ([#1027](https://github.com/vuejs/vuepress/issues/1027)) ([ab0e002](https://github.com/vuejs/vuepress/commit/ab0e002))
-* **$test-utils:** test failed due to wrong babel version ([8611c1c](https://github.com/vuejs/vuepress/commit/8611c1c))
-* **$theme-default:** hard to read in a dark-themed browser (close: [#1025](https://github.com/vuejs/vuepress/issues/1025)) ([d338468](https://github.com/vuejs/vuepress/commit/d338468))
-* **$theme-default:** shouldn't transform date string at client side (close: [#1035](https://github.com/vuejs/vuepress/issues/1035)) ([c059faa](https://github.com/vuejs/vuepress/commit/c059faa))
+* **$core:** distracting and time wasting after importing smoothing scroll ([58981fb](https://github.com/vuejs/vuepress/commit/58981fb)) [@ulivz](https://github.com/ulivz)
+* **$cli:** 'vuepress eject' doesn't copy files (close: [#1028](https://github.com/vuejs/vuepress/issues/1028)) ([aad86b9](https://github.com/vuejs/vuepress/commit/aad86b9)) [@ulivz](https://github.com/ulivz)
+* **$markdown:** "index" is dropped in a link with "*index" pattern ([e8b78c4](https://github.com/vuejs/vuepress/commit/e8b78c4)) [@ulivz](https://github.com/ulivz) closes [#996](https://github.com/vuejs/vuepress/issues/996)
+* **$plugin-blog:** blocking front matter custom layout config (close: [#906](https://github.com/vuejs/vuepress/issues/906)) ([#1027](https://github.com/vuejs/vuepress/issues/1027)) ([ab0e002](https://github.com/vuejs/vuepress/commit/ab0e002)) [@Nulla Wu](https://github.com/Nulla Wu)
+* **$test-utils:** test failed due to wrong babel version ([8611c1c](https://github.com/vuejs/vuepress/commit/8611c1c)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** hard to read in a dark-themed browser (close: [#1025](https://github.com/vuejs/vuepress/issues/1025)) ([d338468](https://github.com/vuejs/vuepress/commit/d338468)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** shouldn't transform date string at client side (close: [#1035](https://github.com/vuejs/vuepress/issues/1035)) ([c059faa](https://github.com/vuejs/vuepress/commit/c059faa)) [@ulivz](https://github.com/ulivz)
### Features
-* **$cli:** '--silent' option ([df99cb6](https://github.com/vuejs/vuepress/commit/df99cb6))
-* **$core:** disable smoothing scroll by default ([de72c91](https://github.com/vuejs/vuepress/commit/de72c91))
-* **$core:** more concise logger ([9c61390](https://github.com/vuejs/vuepress/commit/9c61390))
+* **$cli:** '--silent' option ([df99cb6](https://github.com/vuejs/vuepress/commit/df99cb6)) [@ulivz](https://github.com/ulivz)
+* **$core:** disable smoothing scroll by default ([de72c91](https://github.com/vuejs/vuepress/commit/de72c91)) [@ulivz](https://github.com/ulivz)
+* **$core:** more concise logger ([9c61390](https://github.com/vuejs/vuepress/commit/9c61390)) [@ulivz](https://github.com/ulivz)
@@ -801,20 +1031,20 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** anchor links not updating current URL (closes [#1011](https://github.com/vuejs/vuepress/issues/1011)) ([#1014](https://github.com/vuejs/vuepress/issues/1014)) ([1a87017](https://github.com/vuejs/vuepress/commit/1a87017))
-* **$core:** siteConfig.chainWebpack was executed twice. ([0d45cf4](https://github.com/vuejs/vuepress/commit/0d45cf4))
-* **$core:** NodeList.prototype.forEach doesn't exist in IE11 ([a3938b2](https://github.com/vuejs/vuepress/commit/a3938b2))
-* **$plugin-search:** collapsed in IE11 ([8e555f6](https://github.com/vuejs/vuepress/commit/8e555f6))
-* **$theme-default:** fit image for hero image ([#980](https://github.com/vuejs/vuepress/issues/980)) ([efece12](https://github.com/vuejs/vuepress/commit/efece12))
-* **$theme-default:** IE11 doesn't support shortcut of flex ([6734a60](https://github.com/vuejs/vuepress/commit/6734a60))
-* **$theme-default:** prev/next links disappears when url contains space. (close: [#1010](https://github.com/vuejs/vuepress/issues/1010)) ([e8d728f](https://github.com/vuejs/vuepress/commit/e8d728f))
+* **$core:** anchor links not updating current URL (closes [#1011](https://github.com/vuejs/vuepress/issues/1011)) ([#1014](https://github.com/vuejs/vuepress/issues/1014)) ([1a87017](https://github.com/vuejs/vuepress/commit/1a87017)) [@Daniel Castillo](https://github.com/Daniel Castillo)
+* **$core:** siteConfig.chainWebpack was executed twice. ([0d45cf4](https://github.com/vuejs/vuepress/commit/0d45cf4)) [@ulivz](https://github.com/ulivz)
+* **$core:** NodeList.prototype.forEach doesn't exist in IE11 ([a3938b2](https://github.com/vuejs/vuepress/commit/a3938b2)) [@ulivz](https://github.com/ulivz)
+* **$plugin-search:** collapsed in IE11 ([8e555f6](https://github.com/vuejs/vuepress/commit/8e555f6)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** fit image for hero image ([#980](https://github.com/vuejs/vuepress/issues/980)) ([efece12](https://github.com/vuejs/vuepress/commit/efece12)) [@Владислав Люминарский](https://github.com/Владислав Люминарский)
+* **$theme-default:** IE11 doesn't support shortcut of flex ([6734a60](https://github.com/vuejs/vuepress/commit/6734a60)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** prev/next links disappears when url contains space. (close: [#1010](https://github.com/vuejs/vuepress/issues/1010)) ([e8d728f](https://github.com/vuejs/vuepress/commit/e8d728f)) [@ulivz](https://github.com/ulivz)
### Features
-* **$plugin-active-header-links:** add option for specifying the top offset ([#1005](https://github.com/vuejs/vuepress/issues/1005)) ([100bbf2](https://github.com/vuejs/vuepress/commit/100bbf2))
-* **$plugin-active-header-links:** simplify implementation ([6b9b38b](https://github.com/vuejs/vuepress/commit/6b9b38b))
-* **$core:** using 'smooth-scroll' ([5b0cdcf](https://github.com/vuejs/vuepress/commit/5b0cdcf))
+* **$plugin-active-header-links:** add option for specifying the top offset ([#1005](https://github.com/vuejs/vuepress/issues/1005)) ([100bbf2](https://github.com/vuejs/vuepress/commit/100bbf2)) [@Brian Retterer](https://github.com/Brian Retterer)
+* **$plugin-active-header-links:** simplify implementation ([6b9b38b](https://github.com/vuejs/vuepress/commit/6b9b38b)) [@ulivz](https://github.com/ulivz)
+* **$core:** using 'smooth-scroll' ([5b0cdcf](https://github.com/vuejs/vuepress/commit/5b0cdcf)) [@ulivz](https://github.com/ulivz)
@@ -823,7 +1053,7 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** `.vuepress/style.styl` does not take effect in the production environment. ([#977](https://github.com/vuejs/vuepress/issues/977)) ([2dafd88](https://github.com/vuejs/vuepress/commit/2dafd88))
+* **$core:** `.vuepress/style.styl` does not take effect in the production environment. ([#977](https://github.com/vuejs/vuepress/issues/977)) ([2dafd88](https://github.com/vuejs/vuepress/commit/2dafd88)) [@ulivz](https://github.com/ulivz)
@@ -832,15 +1062,15 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-medium-zoom:** not updating on component update ([#994](https://github.com/vuejs/vuepress/issues/994)) ([6aa4d91](https://github.com/vuejs/vuepress/commit/6aa4d91))
+* **$plugin-medium-zoom:** not updating on component update ([#994](https://github.com/vuejs/vuepress/issues/994)) ([6aa4d91](https://github.com/vuejs/vuepress/commit/6aa4d91)) [@Daniel Castillo](https://github.com/Daniel Castillo)
### Features
-* **$core:** cache option (boolean | absolute path | relative path) ([3871f4a](https://github.com/vuejs/vuepress/commit/3871f4a)), closes [#993](https://github.com/vuejs/vuepress/issues/993)
-* **$markdown:** ability to disable built-in markdown extensions ([15af271](https://github.com/vuejs/vuepress/commit/15af271))
-* **$plugin-blog:** add postsDir option ([#998](https://github.com/vuejs/vuepress/issues/998)) ([ecb1920](https://github.com/vuejs/vuepress/commit/ecb1920))
-* **$plugin-blog:** Allow the permalink for blog posts to be configured. ([#997](https://github.com/vuejs/vuepress/issues/997)) ([615006d](https://github.com/vuejs/vuepress/commit/615006d))
+* **$core:** cache option (boolean | absolute path | relative path) ([3871f4a](https://github.com/vuejs/vuepress/commit/3871f4a)) [@ulivz](https://github.com/ulivz) closes [#993](https://github.com/vuejs/vuepress/issues/993)
+* **$markdown:** ability to disable built-in markdown extensions ([15af271](https://github.com/vuejs/vuepress/commit/15af271)) [@ulivz](https://github.com/ulivz)
+* **$plugin-blog:** add postsDir option ([#998](https://github.com/vuejs/vuepress/issues/998)) ([ecb1920](https://github.com/vuejs/vuepress/commit/ecb1920)) [@Liu Xinyu](https://github.com/Liu Xinyu)
+* **$plugin-blog:** Allow the permalink for blog posts to be configured. ([#997](https://github.com/vuejs/vuepress/issues/997)) ([615006d](https://github.com/vuejs/vuepress/commit/615006d)) [@Michael Seifert](https://github.com/Michael Seifert)
@@ -850,15 +1080,15 @@ It seems no any changes here.
### Bug Fixes
-* **$theme-default:** missing edit links under non-contentLoading situations ([47e9654](https://github.com/vuejs/vuepress/commit/47e9654))
-* **$core:** globally installed vuepress cannot resolve '[@vuepress](https://github.com/vuepress)/default' ([256b7c4](https://github.com/vuejs/vuepress/commit/256b7c4)), closes [#985](https://github.com/vuejs/vuepress/issues/985)
+* **$theme-default:** missing edit links under non-contentLoading situations ([47e9654](https://github.com/vuejs/vuepress/commit/47e9654)) [@ulivz](https://github.com/ulivz)
+* **$core:** globally installed vuepress cannot resolve '[@vuepress](https://github.com/vuepress)/default' ([256b7c4](https://github.com/vuejs/vuepress/commit/256b7c4)) [@ulivz](https://github.com/ulivz) closes [#985](https://github.com/vuejs/vuepress/issues/985)
### Features
-* **$core:** global computed '$frontmatter' ([3a42c24](https://github.com/vuejs/vuepress/commit/3a42c24))
-* **$core:** better hash locate behavior ([5918ca9](https://github.com/vuejs/vuepress/commit/5918ca9))
-* **$plugin-pwa:** alias '[@sw-event](https://github.com/sw-event)' ([628c330](https://github.com/vuejs/vuepress/commit/628c330))
+* **$core:** global computed '$frontmatter' ([3a42c24](https://github.com/vuejs/vuepress/commit/3a42c24)) [@ulivz](https://github.com/ulivz)
+* **$core:** better hash locate behavior ([5918ca9](https://github.com/vuejs/vuepress/commit/5918ca9)) [@ulivz](https://github.com/ulivz)
+* **$plugin-pwa:** alias '[@sw-event](https://github.com/sw-event)' ([628c330](https://github.com/vuejs/vuepress/commit/628c330)) [@ulivz](https://github.com/ulivz)
@@ -868,18 +1098,18 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-active-header-links:** unexpected error when anchors were empty ([d658169](https://github.com/vuejs/vuepress/commit/d658169))
+* **$plugin-active-header-links:** unexpected error when anchors were empty ([d658169](https://github.com/vuejs/vuepress/commit/d658169)) [@ulivz](https://github.com/ulivz)
### Features
-* **$markdown-loader:** AsyncMarkdownContentLoaded event ([6f52012](https://github.com/vuejs/vuepress/commit/6f52012))
-* **$plugin-active-header-links:** sidebarLinkSelector & headerAnchorSelector option ([3a79635](https://github.com/vuejs/vuepress/commit/3a79635))
-* **$core:** built-in content loading ([216d04a](https://github.com/vuejs/vuepress/commit/216d04a))
-* **$core:** Client VuePress Plugin ([9c947b2](https://github.com/vuejs/vuepress/commit/9c947b2))
-* **$core:** 'contentLoading' site config option ([f8e42bc](https://github.com/vuejs/vuepress/commit/f8e42bc))
-* **$plugin-medium-zoom:** support selector option. ([ce7da09](https://github.com/vuejs/vuepress/commit/ce7da09))
-* **$theme-default:** display els of page bottom after content mounted ([d9a8ced](https://github.com/vuejs/vuepress/commit/d9a8ced))
+* **$markdown-loader:** AsyncMarkdownContentLoaded event ([6f52012](https://github.com/vuejs/vuepress/commit/6f52012)) [@ulivz](https://github.com/ulivz)
+* **$plugin-active-header-links:** sidebarLinkSelector & headerAnchorSelector option ([3a79635](https://github.com/vuejs/vuepress/commit/3a79635)) [@ulivz](https://github.com/ulivz)
+* **$core:** built-in content loading ([216d04a](https://github.com/vuejs/vuepress/commit/216d04a)) [@ulivz](https://github.com/ulivz)
+* **$core:** Client VuePress Plugin ([9c947b2](https://github.com/vuejs/vuepress/commit/9c947b2)) [@ulivz](https://github.com/ulivz)
+* **$core:** 'contentLoading' site config option ([f8e42bc](https://github.com/vuejs/vuepress/commit/f8e42bc)) [@ulivz](https://github.com/ulivz)
+* **$plugin-medium-zoom:** support selector option. ([ce7da09](https://github.com/vuejs/vuepress/commit/ce7da09)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** display els of page bottom after content mounted ([d9a8ced](https://github.com/vuejs/vuepress/commit/d9a8ced)) [@ulivz](https://github.com/ulivz)
@@ -889,15 +1119,15 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** themePath/templates/ssr.html doesn't work ([497ce80](https://github.com/vuejs/vuepress/commit/497ce80))
-* **$plugin-pagination:** pages number in the pagination plugin ([#963](https://github.com/vuejs/vuepress/issues/963)) ([8bdeb09](https://github.com/vuejs/vuepress/commit/8bdeb09))
-* **$theme-vue:** RangeError: Maximum call stack size exceeded (build) ([b3d4269](https://github.com/vuejs/vuepress/commit/b3d4269))
+* **$core:** themePath/templates/ssr.html doesn't work ([497ce80](https://github.com/vuejs/vuepress/commit/497ce80)) [@ulivz](https://github.com/ulivz)
+* **$plugin-pagination:** pages number in the pagination plugin ([#963](https://github.com/vuejs/vuepress/issues/963)) ([8bdeb09](https://github.com/vuejs/vuepress/commit/8bdeb09)) [@Martin Sotirov](https://github.com/Martin Sotirov)
+* **$theme-vue:** RangeError: Maximum call stack size exceeded (build) ([b3d4269](https://github.com/vuejs/vuepress/commit/b3d4269)) [@ulivz](https://github.com/ulivz)
### Features
-* **$new-package:** [@vuepress/theme-vue](https://github.com/vuepress) ([cb87532](https://github.com/vuejs/vuepress/commit/cb87532))
-* **$core:** `extend` option API for a theme ([84fd0ff](https://github.com/vuejs/vuepress/commit/84fd0ff))
+* **$new-package:** [@vuepress/theme-vue](https://github.com/vuepress) ([cb87532](https://github.com/vuejs/vuepress/commit/cb87532)) [@ulivz](https://github.com/ulivz)
+* **$core:** `extend` option API for a theme ([84fd0ff](https://github.com/vuejs/vuepress/commit/84fd0ff)) [@ulivz](https://github.com/ulivz)
- From now on, you can use the `extend` option to inherit an existing theme, and VuePres will automatically help you to resolve Layout components, palettes, styles, etc.
@@ -907,13 +1137,13 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** globally installed vuepress doesn't work (close: [#908](https://github.com/vuejs/vuepress/issues/908), [#949](https://github.com/vuejs/vuepress/issues/949)) ([af80c4b](https://github.com/vuejs/vuepress/commit/af80c4b))
-* **$webpack:** version of cache-loader ([636bd81](https://github.com/vuejs/vuepress/commit/636bd81))
+* **$core:** globally installed vuepress doesn't work (close: [#908](https://github.com/vuejs/vuepress/issues/908), [#949](https://github.com/vuejs/vuepress/issues/949)) ([af80c4b](https://github.com/vuejs/vuepress/commit/af80c4b)) [@ulivz](https://github.com/ulivz)
+* **$webpack:** version of cache-loader ([636bd81](https://github.com/vuejs/vuepress/commit/636bd81)) [@ulivz](https://github.com/ulivz)
### Features
-* **$core:** frontmatter.seoTitle ([c9b0700](https://github.com/vuejs/vuepress/commit/c9b0700))
+* **$core:** frontmatter.seoTitle ([c9b0700](https://github.com/vuejs/vuepress/commit/c9b0700)) [@ulivz](https://github.com/ulivz)
@@ -923,7 +1153,7 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-last-updated:** unexpected warning of last-updated plugin. ([daa4d09](https://github.com/vuejs/vuepress/commit/daa4d09))
+* **$plugin-last-updated:** unexpected warning of last-updated plugin. ([daa4d09](https://github.com/vuejs/vuepress/commit/daa4d09)) [@ulivz](https://github.com/ulivz)
@@ -933,7 +1163,7 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** cannot resolve local functional plugin name ([e8a35be](https://github.com/vuejs/vuepress/commit/e8a35be))
+* **$core:** cannot resolve local functional plugin name ([e8a35be](https://github.com/vuejs/vuepress/commit/e8a35be)) [@ulivz](https://github.com/ulivz)
@@ -943,13 +1173,13 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** content slots doesn't work ([704031f](https://github.com/vuejs/vuepress/commit/704031f))
+* **$core:** content slots doesn't work ([704031f](https://github.com/vuejs/vuepress/commit/704031f)) [@ulivz](https://github.com/ulivz)
### Features
-* **$markdown:** markdown slot shortcut ([bde4ac4](https://github.com/vuejs/vuepress/commit/bde4ac4))
-* **$new-package:** init blog & blog theme ([7276664](https://github.com/vuejs/vuepress/commit/7276664))
+* **$markdown:** markdown slot shortcut ([bde4ac4](https://github.com/vuejs/vuepress/commit/bde4ac4)) [@ulivz](https://github.com/ulivz)
+* **$new-package:** init blog & blog theme ([7276664](https://github.com/vuejs/vuepress/commit/7276664)) [@ulivz](https://github.com/ulivz)
@@ -959,8 +1189,8 @@ It seems no any changes here.
### Bug Fixes
-* **$markdown-loader:** unexpected reload at dev when md contains frontmatter ([54efcb8](https://github.com/vuejs/vuepress/commit/54efcb8))
-* **$theme-default:** remove custom layout legacy. (close: [#935](https://github.com/vuejs/vuepress/issues/935)) ([1f345d1](https://github.com/vuejs/vuepress/commit/1f345d1))
+* **$markdown-loader:** unexpected reload at dev when md contains frontmatter ([54efcb8](https://github.com/vuejs/vuepress/commit/54efcb8)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** remove custom layout legacy. (close: [#935](https://github.com/vuejs/vuepress/issues/935)) ([1f345d1](https://github.com/vuejs/vuepress/commit/1f345d1)) [@ulivz](https://github.com/ulivz)
@@ -970,9 +1200,9 @@ It seems no any changes here.
### Bug Fixes
-* **$theme-default**: algolia resolution error in theme-default ([#940](https://github.com/vuejs/vuepress/issues/940)) ([b084114](https://github.com/vuejs/vuepress/commit/b084114))
-* **$core**: wrong import path (close: [#937](https://github.com/vuejs/vuepress/issues/937)) ([1dd1b55](https://github.com/vuejs/vuepress/commit/1dd1b55))
-* **$plugin-blog:** category field in frontmatter doesn't work (close: [#941](https://github.com/vuejs/vuepress/issues/941)) ([00f5d3b](https://github.com/vuejs/vuepress/commit/00f5d3b))
+* **$theme-default**: algolia resolution error in theme-default ([#940](https://github.com/vuejs/vuepress/issues/940)) ([b084114](https://github.com/vuejs/vuepress/commit/b084114)) [@FreshBoy TripleDeluxe](https://github.com/FreshBoy TripleDeluxe)
+* **$core**: wrong import path (close: [#937](https://github.com/vuejs/vuepress/issues/937)) ([1dd1b55](https://github.com/vuejs/vuepress/commit/1dd1b55)) [@ulivz](https://github.com/ulivz)
+* **$plugin-blog:** category field in frontmatter doesn't work (close: [#941](https://github.com/vuejs/vuepress/issues/941)) ([00f5d3b](https://github.com/vuejs/vuepress/commit/00f5d3b)) [@ulivz](https://github.com/ulivz)
@@ -982,7 +1212,7 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-last-updated:** doesn't work due to internal api change ([b8ce22c](https://github.com/vuejs/vuepress/commit/b8ce22c))
+* **$plugin-last-updated:** doesn't work due to internal api change ([b8ce22c](https://github.com/vuejs/vuepress/commit/b8ce22c)) [@ulivz](https://github.com/ulivz)
@@ -992,8 +1222,8 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** correct swapped ssr.html and dev.html ([#924](https://github.com/vuejs/vuepress/issues/924)) ([3019339](https://github.com/vuejs/vuepress/commit/3019339))
-* **$core:** fix extra anonymous plugin message ([#926](https://github.com/vuejs/vuepress/issues/926)) ([c95c09f](https://github.com/vuejs/vuepress/commit/c95c09f))
+* **$core:** correct swapped ssr.html and dev.html ([#924](https://github.com/vuejs/vuepress/issues/924)) ([3019339](https://github.com/vuejs/vuepress/commit/3019339)) [@Michael Smith](https://github.com/Michael Smith)
+* **$core:** fix extra anonymous plugin message ([#926](https://github.com/vuejs/vuepress/issues/926)) ([c95c09f](https://github.com/vuejs/vuepress/commit/c95c09f)) [@Michael Smith](https://github.com/Michael Smith)
@@ -1003,7 +1233,7 @@ It seems no any changes here.
### Features
-* **$core:** register 'themePath/global-components' dir as global components ([04588cc](https://github.com/vuejs/vuepress/commit/04588cc)), closes [#916](https://github.com/vuejs/vuepress/issues/916)
+* **$core:** register 'themePath/global-components' dir as global components ([04588cc](https://github.com/vuejs/vuepress/commit/04588cc)) [@ulivz](https://github.com/ulivz) closes [#916](https://github.com/vuejs/vuepress/issues/916)
@@ -1013,7 +1243,7 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** theme/styles/index.styl doesn't work ([1995273](https://github.com/vuejs/vuepress/commit/1995273))
+* **$core:** theme/styles/index.styl doesn't work ([1995273](https://github.com/vuejs/vuepress/commit/1995273)) [@ulivz](https://github.com/ulivz)
@@ -1023,7 +1253,7 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** theme/styles/palette.styl doesn't work ([0a7e38a](https://github.com/vuejs/vuepress/commit/0a7e38a))
+* **$core:** theme/styles/palette.styl doesn't work ([0a7e38a](https://github.com/vuejs/vuepress/commit/0a7e38a)) [@ulivz](https://github.com/ulivz)
@@ -1033,7 +1263,7 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** fix windows output path issue ([d89f766](https://github.com/vuejs/vuepress/commit/d89f766))
+* **$core:** fix windows output path issue ([d89f766](https://github.com/vuejs/vuepress/commit/d89f766)) [@ulivz](https://github.com/ulivz)
@@ -1043,13 +1273,13 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-pagination:** patch for posts count ([#904](https://github.com/vuejs/vuepress/issues/904)) ([4a08d2d](https://github.com/vuejs/vuepress/commit/4a08d2d))
-* **$core:** try to fix windows output path issue ([f62cd73](https://github.com/vuejs/vuepress/commit/f62cd73))
+* **$plugin-pagination:** patch for posts count ([#904](https://github.com/vuejs/vuepress/issues/904)) ([4a08d2d](https://github.com/vuejs/vuepress/commit/4a08d2d)) [@stickmy](https://github.com/stickmy)
+* **$core:** try to fix windows output path issue ([f62cd73](https://github.com/vuejs/vuepress/commit/f62cd73)) [@ulivz](https://github.com/ulivz)
### Features
-* **$new-package:** plugin-notification ([79632c0](https://github.com/vuejs/vuepress/commit/79632c0))
+* **$new-package:** plugin-notification ([79632c0](https://github.com/vuejs/vuepress/commit/79632c0)) [@ulivz](https://github.com/ulivz)
@@ -1059,18 +1289,18 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** unexpected warning ([3fd51d5](https://github.com/vuejs/vuepress/commit/3fd51d5))
-* **$core:** Check path in lowercase (close[#897](https://github.com/vuejs/vuepress/issues/897)) ([#898](https://github.com/vuejs/vuepress/issues/898)) ([94658ae](https://github.com/vuejs/vuepress/commit/94658ae))
-* **plugin-google-analytics:** Google Analytics Plugin build error ([#893](https://github.com/vuejs/vuepress/issues/893)) ([d7647bc](https://github.com/vuejs/vuepress/commit/d7647bc))
-* **$theme-default:** header should be fixed ([d03b10d](https://github.com/vuejs/vuepress/commit/d03b10d))
+* **$core:** unexpected warning ([3fd51d5](https://github.com/vuejs/vuepress/commit/3fd51d5)) [@ulivz](https://github.com/ulivz)
+* **$core:** Check path in lowercase (close[#897](https://github.com/vuejs/vuepress/issues/897)) ([#898](https://github.com/vuejs/vuepress/issues/898)) ([94658ae](https://github.com/vuejs/vuepress/commit/94658ae)) [@Alex Jover](https://github.com/Alex Jover)
+* **plugin-google-analytics:** Google Analytics Plugin build error ([#893](https://github.com/vuejs/vuepress/issues/893)) ([d7647bc](https://github.com/vuejs/vuepress/commit/d7647bc)) [@Jin Hu](https://github.com/Jin Hu)
+* **$theme-default:** header should be fixed ([d03b10d](https://github.com/vuejs/vuepress/commit/d03b10d)) [@ulivz](https://github.com/ulivz)
### Features
-* **$core:** 'plugins' in plugin. ([7345515](https://github.com/vuejs/vuepress/commit/7345515))
-* **$core:** theme entry file as plugin. ([3fbef0d](https://github.com/vuejs/vuepress/commit/3fbef0d))
-* **$theme-default:** add PHP language text tag to code block. ([#892](https://github.com/vuejs/vuepress/issues/892)) ([cc056ba](https://github.com/vuejs/vuepress/commit/cc056ba))
-* **$theme-default:** vue-styled deleted & inserted code ([d987ea5](https://github.com/vuejs/vuepress/commit/d987ea5))
+* **$core:** 'plugins' in plugin. ([7345515](https://github.com/vuejs/vuepress/commit/7345515)) [@ulivz](https://github.com/ulivz)
+* **$core:** theme entry file as plugin. ([3fbef0d](https://github.com/vuejs/vuepress/commit/3fbef0d)) [@ulivz](https://github.com/ulivz)
+* **$theme-default:** add PHP language text tag to code block. ([#892](https://github.com/vuejs/vuepress/issues/892)) ([cc056ba](https://github.com/vuejs/vuepress/commit/cc056ba)) [@Jørgen Vatle](https://github.com/Jørgen Vatle)
+* **$theme-default:** vue-styled deleted & inserted code ([d987ea5](https://github.com/vuejs/vuepress/commit/d987ea5)) [@ulivz](https://github.com/ulivz)
@@ -1080,15 +1310,15 @@ It seems no any changes here.
### Bug Fixes
-* **$plugin-pwa:** z-index issue ([4cc317f](https://github.com/vuejs/vuepress/commit/4cc317f))
+* **$plugin-pwa:** z-index issue ([4cc317f](https://github.com/vuejs/vuepress/commit/4cc317f)) [@ulivz](https://github.com/ulivz)
### Features
-* **$core:** change style convention ([86736e8](https://github.com/vuejs/vuepress/commit/86736e8))
-* **$core:** custom data block ([f6bb414](https://github.com/vuejs/vuepress/commit/f6bb414))
-* **$markdown:** support 'vue' container ([3c430f8](https://github.com/vuejs/vuepress/commit/3c430f8))
-* **$markdown:** support pass in block data at compile time ([903138e](https://github.com/vuejs/vuepress/commit/903138e))
+* **$core:** change style convention ([86736e8](https://github.com/vuejs/vuepress/commit/86736e8)) [@ulivz](https://github.com/ulivz)
+* **$core:** custom data block ([f6bb414](https://github.com/vuejs/vuepress/commit/f6bb414)) [@ulivz](https://github.com/ulivz)
+* **$markdown:** support 'vue' container ([3c430f8](https://github.com/vuejs/vuepress/commit/3c430f8)) [@ulivz](https://github.com/ulivz)
+* **$markdown:** support pass in block data at compile time ([903138e](https://github.com/vuejs/vuepress/commit/903138e)) [@ulivz](https://github.com/ulivz)
@@ -1098,16 +1328,16 @@ It seems no any changes here.
### Bug Fixes
-* **$core:** cannot fallback to default NotFound layout correctly ([0b89d9c](https://github.com/vuejs/vuepress/commit/0b89d9c))
-* **$cli:** eject failed because `config.styl` not exist ([#874](https://github.com/vuejs/vuepress/issues/874)) ([6222170](https://github.com/vuejs/vuepress/commit/6222170))
+* **$core:** cannot fallback to default NotFound layout correctly ([0b89d9c](https://github.com/vuejs/vuepress/commit/0b89d9c)) [@ulivz](https://github.com/ulivz)
+* **$cli:** eject failed because `config.styl` not exist ([#874](https://github.com/vuejs/vuepress/issues/874)) ([6222170](https://github.com/vuejs/vuepress/commit/6222170)) [@Eko Eryanto](https://github.com/Eko Eryanto)
### Features
-* **$core:** do not register global components at themePath/components (close: [#877](https://github.com/vuejs/vuepress/issues/877)) ([4e8da95](https://github.com/vuejs/vuepress/commit/4e8da95))
-* **$core:** make palette globally enabled and improve doc ([2b2e308](https://github.com/vuejs/vuepress/commit/2b2e308))
-* **$core:** multiple layout directories ([20e520d](https://github.com/vuejs/vuepress/commit/20e520d))
-* **$core:** support themeIndexFile.devTemplate/ssrTemplate (close: [#882](https://github.com/vuejs/vuepress/issues/882)) ([6c6225d](https://github.com/vuejs/vuepress/commit/6c6225d))
+* **$core:** do not register global components at themePath/components (close: [#877](https://github.com/vuejs/vuepress/issues/877)) ([4e8da95](https://github.com/vuejs/vuepress/commit/4e8da95)) [@ulivz](https://github.com/ulivz)
+* **$core:** make palette globally enabled and improve doc ([2b2e308](https://github.com/vuejs/vuepress/commit/2b2e308)) [@ulivz](https://github.com/ulivz)
+* **$core:** multiple layout directories ([20e520d](https://github.com/vuejs/vuepress/commit/20e520d)) [@ulivz](https://github.com/ulivz)
+* **$core:** support themeIndexFile.devTemplate/ssrTemplate (close: [#882](https://github.com/vuejs/vuepress/issues/882)) ([6c6225d](https://github.com/vuejs/vuepress/commit/6c6225d)) [@ulivz](https://github.com/ulivz)
@@ -1117,7 +1347,7 @@ It seems no any changes here.
### Features
- **Plugin API**
- - [Documentation](https://v1.vuepress.vuejs.org/plugin/)
+ - [Documentation](https://vuepress.vuejs.org/plugin/)
- Multiple official plugins
- [@vuepress/plugin-active-header-links](https://github.com/vuejs/vuepress/tree/master/packages/@vuepress/plugin-active-header-links)
- [@vuepress/plugin-back-to-top](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/plugin-back-to-top) (Thanks to @ycmjason )
@@ -1132,18 +1362,18 @@ It seems no any changes here.
- **Refined Theme API**
- From now on, the theme will no longer use Layout.vue as the entry point, but you can have your own configuration. For example, a theme can have some built-in plugins.
- - [Documentation](https://v1.vuepress.vuejs.org/theme/)
+ - [Documentation](https://vuepress.vuejs.org/theme/)
- **Permalinks**
- From now on, VuePress supports custom routing in addition to the default file-level-based routing.
- - [Documentation](https://v1.vuepress.vuejs.org/guide/permalinks.html)
+ - [Documentation](https://vuepress.vuejs.org/guide/permalinks.html)
- **Markdown slots**
- - [Documentation](https://v1.vuepress.vuejs.org/guide/markdown-slot.html)
+ - [Documentation](https://vuepress.vuejs.org/guide/markdown-slot.html)
- **Free to add new pages**
- You can add new pages with content (i.e. pointing to markdown files) or no content (i.e. common routes).
- - [Documentation](https://v1.vuepress.vuejs.org/plugin/option-api.html#additionalpages)
+ - [Documentation](https://vuepress.vuejs.org/plugin/option-api.html#additionalpages)
- **Custom temp path**
- The running of VuePress actually depends on some temporary files generated during the build time. Before that, its default location is in `node_modules`, but now you can start configuring it, but don't forget to add it to gitignore.
@@ -1170,7 +1400,7 @@ It seems no any changes here.
### Bug Fixes
* **$core:** css cannot be extracted together (close: [#977](https://github.com/vuejs/vuepress/issues/977)) ([600ca3e](https://github.com/vuejs/vuepress/commit/600ca3e))
-* **$build:** Prevent files at node_modules from being watched (close: [#855](https://github.com/vuejs/vuepress/issues/855)) ([#856](https://github.com/vuejs/vuepress/issues/856)) ([2348e75](https://github.com/vuejs/vuepress/commit/2348e75))
+* **$build:** Prevent files at node_modules from being watched (close: [#855](https://github.com/vuejs/vuepress/issues/855)) ([#856](https://github.com/vuejs/vuepress/issues/856)) ([2348e75](https://github.com/vuejs/vuepress/commit/2348e75)) [@Barthélémy Ledoux](https://github.com/Barthélémy Ledoux)
@@ -1180,8 +1410,8 @@ It seems no any changes here.
### Bug Fixes
-* missing config.base in google analytics page view URL (close: [#818](https://github.com/vuejs/vuepress/issues/818)) ([#834](https://github.com/vuejs/vuepress/issues/834)) ([559888b](https://github.com/vuejs/vuepress/commit/559888b))
-* **$markdown:** sidebar headers not being detected (close: [#841](https://github.com/vuejs/vuepress/issues/841)) ([181c1e5](https://github.com/vuejs/vuepress/commit/181c1e5))
+* missing config.base in google analytics page view URL (close: [#818](https://github.com/vuejs/vuepress/issues/818)) ([#834](https://github.com/vuejs/vuepress/issues/834)) ([559888b](https://github.com/vuejs/vuepress/commit/559888b)) [@Andy Bruère](https://github.com/Andy Bruère)
+* **$markdown:** sidebar headers not being detected (close: [#841](https://github.com/vuejs/vuepress/issues/841)) ([181c1e5](https://github.com/vuejs/vuepress/commit/181c1e5)) [@ulivz](https://github.com/ulivz)
@@ -1191,7 +1421,7 @@ It seems no any changes here.
### Bug Fixes
-* **$build:** do not pick "babel.config.js" at user-land (close: [#797](https://github.com/vuejs/vuepress/issues/797)) ([48be61b](https://github.com/vuejs/vuepress/commit/48be61b))
+* **$build:** do not pick "babel.config.js" at user-land (close: [#797](https://github.com/vuejs/vuepress/issues/797)) ([48be61b](https://github.com/vuejs/vuepress/commit/48be61b)) [@ulivz](https://github.com/ulivz)
@@ -1201,7 +1431,7 @@ It seems no any changes here.
### Bug Fixes
-* SW-update popup only shows up on first page reload (close: [#677](https://github.com/vuejs/vuepress/issues/677)) ([6d8f813](https://github.com/vuejs/vuepress/commit/6d8f813))
+* SW-update popup only shows up on first page reload (close: [#677](https://github.com/vuejs/vuepress/issues/677)) ([6d8f813](https://github.com/vuejs/vuepress/commit/6d8f813)) [@ulivz](https://github.com/ulivz)
@@ -1210,8 +1440,8 @@ It seems no any changes here.
### Bug Fixes
-* **$default-theme:** default search box line wrap ([03c812b](https://github.com/vuejs/vuepress/commit/03c812b))
-* **$default-theme:** navbar's regression - siteName null check ([02a4713](https://github.com/vuejs/vuepress/commit/02a4713))
+* **$default-theme:** default search box line wrap ([03c812b](https://github.com/vuejs/vuepress/commit/03c812b)) [@Evan You](https://github.com/Evan You)
+* **$default-theme:** navbar's regression - siteName null check ([02a4713](https://github.com/vuejs/vuepress/commit/02a4713)) [@ulivz](https://github.com/ulivz)
@@ -1221,16 +1451,16 @@ It seems no any changes here.
### Bug Fixes
-* **$default-theme:** algolia search doesn't work well at i18n mode ([e8a6ab1](https://github.com/vuejs/vuepress/commit/e8a6ab1))
-* **$default-theme:** navbar's messy layout at narrow screen ([#714](https://github.com/vuejs/vuepress/issues/714)) ([3e1da57](https://github.com/vuejs/vuepress/commit/3e1da57))
-* **$default-theme:** set alias "collapsible" to "collapsable" (close: [#705](https://github.com/vuejs/vuepress/issues/705)) ([#706](https://github.com/vuejs/vuepress/issues/706)) ([ad66fa8](https://github.com/vuejs/vuepress/commit/ad66fa8))
-* **$build:** skip format data.head if not exist while loading toml config ([#707](https://github.com/vuejs/vuepress/issues/707)) ([bb48a77](https://github.com/vuejs/vuepress/commit/bb48a77))
+* **$default-theme:** algolia search doesn't work well at i18n mode ([e8a6ab1](https://github.com/vuejs/vuepress/commit/e8a6ab1)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** navbar's messy layout at narrow screen ([#714](https://github.com/vuejs/vuepress/issues/714)) ([3e1da57](https://github.com/vuejs/vuepress/commit/3e1da57)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** set alias "collapsible" to "collapsable" (close: [#705](https://github.com/vuejs/vuepress/issues/705)) ([#706](https://github.com/vuejs/vuepress/issues/706)) ([ad66fa8](https://github.com/vuejs/vuepress/commit/ad66fa8)) [@Arnav Gupta](https://github.com/Arnav Gupta)
+* **$build:** skip format data.head if not exist while loading toml config ([#707](https://github.com/vuejs/vuepress/issues/707)) ([bb48a77](https://github.com/vuejs/vuepress/commit/bb48a77)) [@Hsu Pu](https://github.com/Hsu Pu)
### Features
-* **core:** support writing HTML(Vue) anywhere in the header. ([#711](https://github.com/vuejs/vuepress/issues/711)) ([885496e](https://github.com/vuejs/vuepress/commit/885496e))
-* **$webpack:** display host url at dev HMR log ([2e8d69c](https://github.com/vuejs/vuepress/commit/2e8d69c))
+* **core:** support writing HTML(Vue) anywhere in the header. ([#711](https://github.com/vuejs/vuepress/issues/711)) ([885496e](https://github.com/vuejs/vuepress/commit/885496e)) [@ulivz](https://github.com/ulivz)
+* **$webpack:** display host url at dev HMR log ([2e8d69c](https://github.com/vuejs/vuepress/commit/2e8d69c)) [@ulivz](https://github.com/ulivz)
@@ -1240,8 +1470,8 @@ It seems no any changes here.
### Bug Fixes
-* **core:** normalize override file path in windows ([#692](https://github.com/vuejs/vuepress/issues/692)) (close: [#642](https://github.com/vuejs/vuepress/issues/642)) ([9537c2c](https://github.com/vuejs/vuepress/commit/9537c2c))
-* **$default-theme:** `py` lang label doesn't display in code block ([#690](https://github.com/vuejs/vuepress/issues/690)) ([88b65cc](https://github.com/vuejs/vuepress/commit/88b65cc))
+* **core:** normalize override file path in windows ([#692](https://github.com/vuejs/vuepress/issues/692)) (close: [#642](https://github.com/vuejs/vuepress/issues/642)) ([9537c2c](https://github.com/vuejs/vuepress/commit/9537c2c)) [@Jingzhe Yu](https://github.com/Jingzhe Yu)
+* **$default-theme:** `py` lang label doesn't display in code block ([#690](https://github.com/vuejs/vuepress/issues/690)) ([88b65cc](https://github.com/vuejs/vuepress/commit/88b65cc)) [@Liu Xinyu](https://github.com/Liu Xinyu)
@@ -1251,13 +1481,13 @@ It seems no any changes here.
### Bug Fixes
-* **$seo:** Avoid duplicate `description meta` at runtime. (close: [#665](https://github.com/vuejs/vuepress/issues/665)) ([b207a5f](https://github.com/vuejs/vuepress/commit/b207a5f))
-* **$default-theme:** Scoped styles of `Badge` component (close: [#653](https://github.com/vuejs/vuepress/issues/653)) ([#657](https://github.com/vuejs/vuepress/issues/657)) ([9b602f2](https://github.com/vuejs/vuepress/commit/9b602f2))
-* **$build:** set `babelrc: false` in babel-loader options ([#644](https://github.com/vuejs/vuepress/issues/644)) ([c500201](https://github.com/vuejs/vuepress/commit/c500201)) ([@posva](https://github.com/posva))
-* **$build:** exclude dest folder from pageFiles (close: [#654](https://github.com/vuejs/vuepress/issues/654)) ([#655](https://github.com/vuejs/vuepress/issues/655)) ([c1fe692](https://github.com/vuejs/vuepress/commit/c1fe692))
-* **$build:** markdown config should be included in `cache-loader` identifier ([0ad1a45](https://github.com/vuejs/vuepress/commit/0ad1a45))
-* **$markdown:** cannot highlight external python file (`.py`) correctly (close: [#660](https://github.com/vuejs/vuepress/issues/660)) ([2a33075](https://github.com/vuejs/vuepress/commit/2a33075))
-* **$markdown:** missing space between `italics` and `bold` (close: [#661](https://github.com/vuejs/vuepress/issues/661)) ([7730ee1](https://github.com/vuejs/vuepress/commit/7730ee1))
+* **$seo:** Avoid duplicate `description meta` at runtime. (close: [#665](https://github.com/vuejs/vuepress/issues/665)) ([b207a5f](https://github.com/vuejs/vuepress/commit/b207a5f)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** Scoped styles of `Badge` component (close: [#653](https://github.com/vuejs/vuepress/issues/653)) ([#657](https://github.com/vuejs/vuepress/issues/657)) ([9b602f2](https://github.com/vuejs/vuepress/commit/9b602f2)) [@Jordon Baade](https://github.com/Jordon Baade)
+* **$build:** set `babelrc: false` in babel-loader options ([#644](https://github.com/vuejs/vuepress/issues/644)) ([c500201](https://github.com/vuejs/vuepress/commit/c500201)) [@Eduardo San Martin Morote](https://github.com/Eduardo San Martin Morote)([@posva](https://github.com/posva))
+* **$build:** exclude dest folder from pageFiles (close: [#654](https://github.com/vuejs/vuepress/issues/654)) ([#655](https://github.com/vuejs/vuepress/issues/655)) ([c1fe692](https://github.com/vuejs/vuepress/commit/c1fe692)) [@Pedro Di Martino](https://github.com/Pedro Di Martino)
+* **$build:** markdown config should be included in `cache-loader` identifier ([0ad1a45](https://github.com/vuejs/vuepress/commit/0ad1a45)) [@ulivz](https://github.com/ulivz)
+* **$markdown:** cannot highlight external python file (`.py`) correctly (close: [#660](https://github.com/vuejs/vuepress/issues/660)) ([2a33075](https://github.com/vuejs/vuepress/commit/2a33075)) [@ulivz](https://github.com/ulivz)
+* **$markdown:** missing space between `italics` and `bold` (close: [#661](https://github.com/vuejs/vuepress/issues/661)) ([7730ee1](https://github.com/vuejs/vuepress/commit/7730ee1)) [@ulivz](https://github.com/ulivz)
1. `markdown-it` compiler will intendedly reserve this space between some inline elements, but `preserveWhitespace: false` will remove them. (Ref: [vue-template-compiler#options](https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#options))
2. **Performance Impact**: Size of whole assets of vuepress documentation:
- Before (1952 kb)
@@ -1265,9 +1495,9 @@ It seems no any changes here.
### Features
-* **$cli:** debug flag at dev mode ([231da6a](https://github.com/vuejs/vuepress/commit/231da6a))
-* **$default-theme:** transform `Badge` into async component ([de9a51b](https://github.com/vuejs/vuepress/commit/de9a51b))
-* **$default-theme**(**$pwa**): `themeConfig.serviceWorker.updatePopup` option (close: [#453](https://github.com/vuejs/vuepress/issues/453)) ([#533](https://github.com/vuejs/vuepress/issues/533)) ([14dbd1e](https://github.com/vuejs/vuepress/commit/14dbd1e)) ([@mysticatea](https://github.com/mysticatea))
+* **$cli:** debug flag at dev mode ([231da6a](https://github.com/vuejs/vuepress/commit/231da6a)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** transform `Badge` into async component ([de9a51b](https://github.com/vuejs/vuepress/commit/de9a51b)) [@ulivz](https://github.com/ulivz)
+* **$default-theme**(**$pwa**): `themeConfig.serviceWorker.updatePopup` option (close: [#453](https://github.com/vuejs/vuepress/issues/453)) ([#533](https://github.com/vuejs/vuepress/issues/533)) ([14dbd1e](https://github.com/vuejs/vuepress/commit/14dbd1e)) [@Toru Nagashima](https://github.com/Toru Nagashima)([@mysticatea](https://github.com/mysticatea))
``` js
module.exports = {
themeConfig: {
@@ -1286,16 +1516,16 @@ It seems no any changes here.
### Bug Fixes
-* **$build** npm audit vulnerability (close: [#493](https://github.com/vuejs/vuepress/issues/493))([#641](https://github.com/vuejs/vuepress/issues/641)) ([8dde5d8](https://github.com/vuejs/vuepress/commit/8dde5d8))
-* **$markdown**: wrong sidebar slugs and anchor link at content (close: [#645](https://github.com/vuejs/vuepress/issues/645)) ([c2eaff3](https://github.com/vuejs/vuepress/commit/c2eaff3))
+* **$build** npm audit vulnerability (close: [#493](https://github.com/vuejs/vuepress/issues/493))([#641](https://github.com/vuejs/vuepress/issues/641)) ([8dde5d8](https://github.com/vuejs/vuepress/commit/8dde5d8)) [@YuChao Liang](https://github.com/YuChao Liang)
+* **$markdown**: wrong sidebar slugs and anchor link at content (close: [#645](https://github.com/vuejs/vuepress/issues/645)) ([c2eaff3](https://github.com/vuejs/vuepress/commit/c2eaff3)) [@ulivz](https://github.com/ulivz)
### Features
-* **$core:**: version data layer ([0c5b752](https://github.com/vuejs/vuepress/commit/0c5b752))
-* **$default-theme:** new file-level API: `style.styl`. ([2f53f2f](https://github.com/vuejs/vuepress/commit/2f53f2f))
+* **$core:**: version data layer ([0c5b752](https://github.com/vuejs/vuepress/commit/0c5b752)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** new file-level API: `style.styl`. ([2f53f2f](https://github.com/vuejs/vuepress/commit/2f53f2f)) [@ulivz](https://github.com/ulivz)
1. Fixed overriding css variable doesn't work at `0.11.0` (close: [#639](https://github.com/vuejs/vuepress/issues/639))
- 2. Split `override.styl` into two APIs: `override.styl` and `style.styl`, the former will focus on ONLY the stylus constants override, while the latter will focus on styles override or custom styles. See also: https://v1.vuepress.vuejs.org/default-theme-config/#simple-css-override.
+ 2. Split `override.styl` into two APIs: `override.styl` and `style.styl`, the former will focus on ONLY the stylus constants override, while the latter will focus on styles override or custom styles. See also: https://vuepress.vuejs.org/default-theme-config/#simple-css-override.
@@ -1304,17 +1534,17 @@ It seems no any changes here.
### Bug Fixes
-* **$default-theme:** indent-styled code is invisible (close: [#609](https://github.com/vuejs/vuepress/issues/609)) ([fd46a26](https://github.com/vuejs/vuepress/commit/fd46a26))
-* **$default-theme:** cannot get sidebar when sidebar config contains non-ASCII chars. (close: [#628](https://github.com/vuejs/vuepress/issues/628)) ([8837e7a](https://github.com/vuejs/vuepress/commit/8837e7a))
-* **$core:** override style issues (close: [#637](https://github.com/vuejs/vuepress/issues/637)) ([#638](https://github.com/vuejs/vuepress/issues/638)) ([f998802](https://github.com/vuejs/vuepress/commit/f998802))
+* **$default-theme:** indent-styled code is invisible (close: [#609](https://github.com/vuejs/vuepress/issues/609)) ([fd46a26](https://github.com/vuejs/vuepress/commit/fd46a26)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** cannot get sidebar when sidebar config contains non-ASCII chars. (close: [#628](https://github.com/vuejs/vuepress/issues/628)) ([8837e7a](https://github.com/vuejs/vuepress/commit/8837e7a)) [@ulivz](https://github.com/ulivz)
+* **$core:** override style issues (close: [#637](https://github.com/vuejs/vuepress/issues/637)) ([#638](https://github.com/vuejs/vuepress/issues/638)) ([f998802](https://github.com/vuejs/vuepress/commit/f998802)) [@ulivz](https://github.com/ulivz)
1. Duplicated generated `override style`.
2. Unexpected style order, `override style` should be at the end of the extracted style bundle. (ref: [mini-css-extract-plugin#130](https://github.com/webpack-contrib/mini-css-extract-plugin#130))
### Features
-* **$default-theme:** page top slot ([f4c1059](https://github.com/vuejs/vuepress/commit/f4c1059))
-* **$build:** set exitCode to non-zero when catching error (close: [#598](https://github.com/vuejs/vuepress/issues/598) & [#570](https://github.com/vuejs/vuepress/issues/570)) ([#615](https://github.com/vuejs/vuepress/issues/615)) ([0907c7e](https://github.com/vuejs/vuepress/commit/0907c7e))
-* **$default-theme:** support display header links of all pages (close [#534](https://github.com/vuejs/vuepress/issues/534)) ([#595](https://github.com/vuejs/vuepress/issues/595)) ([36bb6a4](https://github.com/vuejs/vuepress/commit/36bb6a4))
+* **$default-theme:** page top slot ([f4c1059](https://github.com/vuejs/vuepress/commit/f4c1059)) [@Evan You](https://github.com/Evan You)
+* **$build:** set exitCode to non-zero when catching error (close: [#598](https://github.com/vuejs/vuepress/issues/598) & [#570](https://github.com/vuejs/vuepress/issues/570)) ([#615](https://github.com/vuejs/vuepress/issues/615)) ([0907c7e](https://github.com/vuejs/vuepress/commit/0907c7e)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** support display header links of all pages (close [#534](https://github.com/vuejs/vuepress/issues/534)) ([#595](https://github.com/vuejs/vuepress/issues/595)) ([36bb6a4](https://github.com/vuejs/vuepress/commit/36bb6a4)) [@Zhu Kaihao](https://github.com/Zhu Kaihao)
@@ -1324,16 +1554,16 @@ It seems no any changes here.
### Bug Fixes
-* build cannot exit (close: [#580](https://github.com/vuejs/vuepress/issues/580)) ([fa473a7](https://github.com/vuejs/vuepress/commit/fa473a7))
-* duplicate description meta (close: [#565](https://github.com/vuejs/vuepress/issues/565)) ([de35315](https://github.com/vuejs/vuepress/commit/de35315))
-* edit page from Bitbucket ([#569](https://github.com/vuejs/vuepress/issues/569)) ([5479d6e](https://github.com/vuejs/vuepress/commit/5479d6e))
-* multiple markdown tokens in header text ([#564](https://github.com/vuejs/vuepress/issues/564)) ([ec330f0](https://github.com/vuejs/vuepress/commit/ec330f0))
-* setting HMR port (close: [#582](https://github.com/vuejs/vuepress/issues/582)) ([#586](https://github.com/vuejs/vuepress/issues/586)) ([64bb80d](https://github.com/vuejs/vuepress/commit/64bb80d))
+* build cannot exit (close: [#580](https://github.com/vuejs/vuepress/issues/580)) ([fa473a7](https://github.com/vuejs/vuepress/commit/fa473a7)) [@ulivz](https://github.com/ulivz)
+* duplicate description meta (close: [#565](https://github.com/vuejs/vuepress/issues/565)) ([de35315](https://github.com/vuejs/vuepress/commit/de35315)) [@ulivz](https://github.com/ulivz)
+* edit page from Bitbucket ([#569](https://github.com/vuejs/vuepress/issues/569)) ([5479d6e](https://github.com/vuejs/vuepress/commit/5479d6e)) [@Dalton](https://github.com/Dalton)
+* multiple markdown tokens in header text ([#564](https://github.com/vuejs/vuepress/issues/564)) ([ec330f0](https://github.com/vuejs/vuepress/commit/ec330f0)) [@mechdude](https://github.com/mechdude)
+* setting HMR port (close: [#582](https://github.com/vuejs/vuepress/issues/582)) ([#586](https://github.com/vuejs/vuepress/issues/586)) ([64bb80d](https://github.com/vuejs/vuepress/commit/64bb80d)) [@r3stm4n](https://github.com/r3stm4n)
### Features
-* refine Badge's API ([d68199d](https://github.com/vuejs/vuepress/commit/d68199d))
+* refine Badge's API ([d68199d](https://github.com/vuejs/vuepress/commit/d68199d)) [@ulivz](https://github.com/ulivz)
@@ -1343,25 +1573,25 @@ It seems no any changes here.
### Bug Fixes
-* active side arrow not middle align ([#508](https://github.com/vuejs/vuepress/issues/508)). ([5fcac1b](https://github.com/vuejs/vuepress/commit/5fcac1b))
-* **$default-theme:** code renders language css as c (close: [#527](https://github.com/vuejs/vuepress/issues/527)) ([777c4f1](https://github.com/vuejs/vuepress/commit/777c4f1))
-* **$default-theme:** table tag cannot scroll horizontally (close: [#518](https://github.com/vuejs/vuepress/issues/518)) ([#519](https://github.com/vuejs/vuepress/issues/519)) ([e9cdee7](https://github.com/vuejs/vuepress/commit/e9cdee7))
-* **$dev:** using config.yml/toml doesn't reload changes (close: [#520](https://github.com/vuejs/vuepress/issues/520)) ([6048eb9](https://github.com/vuejs/vuepress/commit/6048eb9))
-* compilation error when chainWebpack's code contains ! (close: [#532](https://github.com/vuejs/vuepress/issues/532)) ([3b5991f](https://github.com/vuejs/vuepress/commit/3b5991f))
-* reserve '*' and '_' when detecting escape char '\' (close: [#544](https://github.com/vuejs/vuepress/issues/544)). ([4503cfc](https://github.com/vuejs/vuepress/commit/4503cfc))
-* search box throw a error with no suggestions ([#510](https://github.com/vuejs/vuepress/issues/510)) ([1186d6a](https://github.com/vuejs/vuepress/commit/1186d6a))
+* active side arrow not middle align ([#508](https://github.com/vuejs/vuepress/issues/508)). ([5fcac1b](https://github.com/vuejs/vuepress/commit/5fcac1b)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** code renders language css as c (close: [#527](https://github.com/vuejs/vuepress/issues/527)) ([777c4f1](https://github.com/vuejs/vuepress/commit/777c4f1)) [@ulivz](https://github.com/ulivz)
+* **$default-theme:** table tag cannot scroll horizontally (close: [#518](https://github.com/vuejs/vuepress/issues/518)) ([#519](https://github.com/vuejs/vuepress/issues/519)) ([e9cdee7](https://github.com/vuejs/vuepress/commit/e9cdee7)) [@jonkofee](https://github.com/jonkofee)
+* **$dev:** using config.yml/toml doesn't reload changes (close: [#520](https://github.com/vuejs/vuepress/issues/520)) ([6048eb9](https://github.com/vuejs/vuepress/commit/6048eb9)) [@ulivz](https://github.com/ulivz)
+* compilation error when chainWebpack's code contains ! (close: [#532](https://github.com/vuejs/vuepress/issues/532)) ([3b5991f](https://github.com/vuejs/vuepress/commit/3b5991f)) [@ulivz](https://github.com/ulivz)
+* reserve '*' and '_' when detecting escape char '\' (close: [#544](https://github.com/vuejs/vuepress/issues/544)). ([4503cfc](https://github.com/vuejs/vuepress/commit/4503cfc)) [@ulivz](https://github.com/ulivz)
+* search box throw a error with no suggestions ([#510](https://github.com/vuejs/vuepress/issues/510)) ([1186d6a](https://github.com/vuejs/vuepress/commit/1186d6a)) [@Liyuk](https://github.com/Liyuk)
### Features
-* **$seo:** show page title in front of site title ([#522](https://github.com/vuejs/vuepress/issues/522)) ([ffe12b9](https://github.com/vuejs/vuepress/commit/ffe12b9))
-* add support to import files as code fence ([#538](https://github.com/vuejs/vuepress/issues/538)) ([26ecff7](https://github.com/vuejs/vuepress/commit/26ecff7))
-* better log ([#506](https://github.com/vuejs/vuepress/issues/506)) ([d53807e](https://github.com/vuejs/vuepress/commit/d53807e))
-* enable header request Content-Range ([#555](https://github.com/vuejs/vuepress/issues/555)) ([825877c](https://github.com/vuejs/vuepress/commit/825877c))
-* headers badge ([#540](https://github.com/vuejs/vuepress/issues/540)) ([c3696d2](https://github.com/vuejs/vuepress/commit/c3696d2))
-* shouldPrefetch option for bundleRenderer (close: [#463](https://github.com/vuejs/vuepress/issues/463)) ([#514](https://github.com/vuejs/vuepress/issues/514)) ([9cb174d](https://github.com/vuejs/vuepress/commit/9cb174d))
-* support "themeConfig.sidebar: 'auto'" (close: [#552](https://github.com/vuejs/vuepress/issues/552)) ([56cbb5f](https://github.com/vuejs/vuepress/commit/56cbb5f))
-* support generic markdown file path reference ([#509](https://github.com/vuejs/vuepress/issues/509)) ([292e4bc](https://github.com/vuejs/vuepress/commit/292e4bc))
+* **$seo:** show page title in front of site title ([#522](https://github.com/vuejs/vuepress/issues/522)) ([ffe12b9](https://github.com/vuejs/vuepress/commit/ffe12b9)) [@Jing Zhou](https://github.com/Jing Zhou)
+* add support to import files as code fence ([#538](https://github.com/vuejs/vuepress/issues/538)) ([26ecff7](https://github.com/vuejs/vuepress/commit/26ecff7)) [@Rahul Kadyan](https://github.com/Rahul Kadyan)
+* better log ([#506](https://github.com/vuejs/vuepress/issues/506)) ([d53807e](https://github.com/vuejs/vuepress/commit/d53807e)) [@ulivz](https://github.com/ulivz)
+* enable header request Content-Range ([#555](https://github.com/vuejs/vuepress/issues/555)) ([825877c](https://github.com/vuejs/vuepress/commit/825877c)) [@kazuki sako](https://github.com/kazuki sako)
+* headers badge ([#540](https://github.com/vuejs/vuepress/issues/540)) ([c3696d2](https://github.com/vuejs/vuepress/commit/c3696d2)) [@ulivz](https://github.com/ulivz)
+* shouldPrefetch option for bundleRenderer (close: [#463](https://github.com/vuejs/vuepress/issues/463)) ([#514](https://github.com/vuejs/vuepress/issues/514)) ([9cb174d](https://github.com/vuejs/vuepress/commit/9cb174d)) [@林风](https://github.com/林风)
+* support "themeConfig.sidebar: 'auto'" (close: [#552](https://github.com/vuejs/vuepress/issues/552)) ([56cbb5f](https://github.com/vuejs/vuepress/commit/56cbb5f)) [@ulivz](https://github.com/ulivz)
+* support generic markdown file path reference ([#509](https://github.com/vuejs/vuepress/issues/509)) ([292e4bc](https://github.com/vuejs/vuepress/commit/292e4bc)) [@ulivz](https://github.com/ulivz)
@@ -1371,7 +1601,7 @@ It seems no any changes here.
### Features
-* upgrade to babel 7 + use [@vue](https://github.com/vue)/babel-preset-app ([c43c73d](https://github.com/vuejs/vuepress/commit/c43c73d))
+* upgrade to babel 7 + use [@vue](https://github.com/vue)/babel-preset-app ([c43c73d](https://github.com/vuejs/vuepress/commit/c43c73d)) [@Evan You](https://github.com/Evan You)
@@ -1381,16 +1611,16 @@ It seems no any changes here.
### Bug Fixes
-* avoid cache error (close [#492](https://github.com/vuejs/vuepress/issues/492)) ([75cdc74](https://github.com/vuejs/vuepress/commit/75cdc74))
-* fix config reload cache busting ([90f9689](https://github.com/vuejs/vuepress/commit/90f9689))
-* lastUpdated looks bad when editLinks is false. ([11b1830](https://github.com/vuejs/vuepress/commit/11b1830))
-* wrong OutboundLink insertion position (close: [#496](https://github.com/vuejs/vuepress/issues/496)) ([af96f28](https://github.com/vuejs/vuepress/commit/af96f28))
+* avoid cache error (close [#492](https://github.com/vuejs/vuepress/issues/492)) ([75cdc74](https://github.com/vuejs/vuepress/commit/75cdc74)) [@Evan You](https://github.com/Evan You)
+* fix config reload cache busting ([90f9689](https://github.com/vuejs/vuepress/commit/90f9689)) [@Evan You](https://github.com/Evan You)
+* lastUpdated looks bad when editLinks is false. ([11b1830](https://github.com/vuejs/vuepress/commit/11b1830)) [@ulivz](https://github.com/ulivz)
+* wrong OutboundLink insertion position (close: [#496](https://github.com/vuejs/vuepress/issues/496)) ([af96f28](https://github.com/vuejs/vuepress/commit/af96f28)) [@ulivz](https://github.com/ulivz)
### Features
-* allow for disabling of active hash on scroll ([#489](https://github.com/vuejs/vuepress/issues/489)) ([4c09627](https://github.com/vuejs/vuepress/commit/4c09627))
-* support filename that contains non-ASCII and unicode chars ([#473](https://github.com/vuejs/vuepress/issues/473)) ([566e681](https://github.com/vuejs/vuepress/commit/566e681))
+* allow for disabling of active hash on scroll ([#489](https://github.com/vuejs/vuepress/issues/489)) ([4c09627](https://github.com/vuejs/vuepress/commit/4c09627)) [@aaron hendrick](https://github.com/aaron hendrick)
+* support filename that contains non-ASCII and unicode chars ([#473](https://github.com/vuejs/vuepress/issues/473)) ([566e681](https://github.com/vuejs/vuepress/commit/566e681)) [@ulivz](https://github.com/ulivz)
@@ -1400,58 +1630,58 @@ It seems no any changes here.
### Bug Fixes
-* $page is missing at 404 page ([#388](https://github.com/vuejs/vuepress/issues/388)) ([cefc8c3](https://github.com/vuejs/vuepress/commit/cefc8c3))
-* avoid the searchbox exceeded out of screen in narrow screen ([#254](https://github.com/vuejs/vuepress/issues/254)) ([8f04081](https://github.com/vuejs/vuepress/commit/8f04081))
-* code looks not good at small screen (close: [#350](https://github.com/vuejs/vuepress/issues/350)) ([6514c8f](https://github.com/vuejs/vuepress/commit/6514c8f))
-* code looks not good at small screen (close: [#350](https://github.com/vuejs/vuepress/issues/350)) ([d0ef06f](https://github.com/vuejs/vuepress/commit/d0ef06f))
-* dropdown overlap due to word wrapping (close: [#359](https://github.com/vuejs/vuepress/issues/359)) ([#360](https://github.com/vuejs/vuepress/issues/360)) ([c65a8b7](https://github.com/vuejs/vuepress/commit/c65a8b7))
-* duplicate slash when docs dir is not set ([#361](https://github.com/vuejs/vuepress/issues/361)) ([0c59ed5](https://github.com/vuejs/vuepress/commit/0c59ed5))
-* emoji doesn't work in toc (close: [#417](https://github.com/vuejs/vuepress/issues/417)) ([#418](https://github.com/vuejs/vuepress/issues/418)) ([1b9012e](https://github.com/vuejs/vuepress/commit/1b9012e))
-* ensure `
diff --git a/packages/@vuepress/core/lib/client/redirect.js b/packages/@vuepress/core/lib/client/redirect.js
index 3f59573961..7e10b69a8c 100644
--- a/packages/@vuepress/core/lib/client/redirect.js
+++ b/packages/@vuepress/core/lib/client/redirect.js
@@ -50,5 +50,6 @@ export function handleRedirectForCleanUrls (router) {
}
function isRouteExists (router, path) {
- return router.options.routes.filter(route => route.path.toLowerCase() === path.toLowerCase()).length > 0
+ const pathLower = path.toLowerCase()
+ return router.options.routes.some(route => route.path.toLowerCase() === pathLower)
}
diff --git a/packages/@vuepress/core/lib/client/root-mixins/updateMeta.js b/packages/@vuepress/core/lib/client/root-mixins/updateMeta.js
index 485f544d38..880fa655b0 100644
--- a/packages/@vuepress/core/lib/client/root-mixins/updateMeta.js
+++ b/packages/@vuepress/core/lib/client/root-mixins/updateMeta.js
@@ -1,4 +1,5 @@
import unionBy from 'lodash/unionBy'
+import escape from 'escape-html'
export default {
// created will be called on both client and ssr
@@ -13,6 +14,7 @@ export default {
this.$ssrContext.title = this.$title
this.$ssrContext.lang = this.$lang
this.$ssrContext.pageMeta = renderPageMeta(mergedMetaItems)
+ this.$ssrContext.canonicalLink = renderCanonicalLink(this.$canonicalUrl)
}
},
// Other life cycles will only be called at client
@@ -22,6 +24,7 @@ export default {
// update title / meta tags
this.updateMeta()
+ this.updateCanonicalLink()
},
methods: {
@@ -39,18 +42,45 @@ export default {
// description needs special attention as it has too many entries
return unionBy([{ name: 'description', content: this.$description }],
pageMeta, this.siteMeta, metaIdentifier)
+ },
+
+ updateCanonicalLink () {
+ removeCanonicalLink()
+
+ if (!this.$canonicalUrl) {
+ return
+ }
+
+ document.head.insertAdjacentHTML('beforeend', renderCanonicalLink(this.$canonicalUrl))
}
},
watch: {
$page () {
this.updateMeta()
+ this.updateCanonicalLink()
}
},
beforeDestroy () {
updateMetaTags(null, this.currentMetaTags)
+ removeCanonicalLink()
+ }
+}
+
+function removeCanonicalLink () {
+ const canonicalEl = document.querySelector("link[rel='canonical']")
+
+ if (canonicalEl) {
+ canonicalEl.remove()
+ }
+}
+
+function renderCanonicalLink (link = '') {
+ if (!link) {
+ return ''
}
+ return ``
}
/**
@@ -103,7 +133,7 @@ function renderPageMeta (meta) {
return meta.map(m => {
let res = ` {
- res += ` ${key}="${m[key]}"`
+ res += ` ${key}="${escape(m[key])}"`
})
return res + `>`
}).join('\n ')
diff --git a/packages/@vuepress/core/lib/client/serverEntry.js b/packages/@vuepress/core/lib/client/serverEntry.js
index fca4628a05..6e4fc4a352 100644
--- a/packages/@vuepress/core/lib/client/serverEntry.js
+++ b/packages/@vuepress/core/lib/client/serverEntry.js
@@ -9,7 +9,8 @@ export default context => new Promise((resolve, reject) => {
return reject({ url: fullPath })
}
- router.push(url)
- router.onReady(() => resolve(app))
+ // error handled in onReady
+ router.push(url).catch(() => {})
+ router.onReady(() => resolve(app), reject)
})
})
diff --git a/packages/@vuepress/core/lib/node/App.js b/packages/@vuepress/core/lib/node/App.js
index a6d17320ff..60b7cb6bc9 100644
--- a/packages/@vuepress/core/lib/node/App.js
+++ b/packages/@vuepress/core/lib/node/App.js
@@ -61,7 +61,7 @@ module.exports = class App {
if (this.options.siteConfig) {
this.siteConfig = this.options.siteConfig
} else {
- let siteConfig = loadConfig(this.vuepressDir)
+ let siteConfig = await loadConfig(this.vuepressDir)
if (isFunction(siteConfig)) {
siteConfig = await siteConfig(this)
}
diff --git a/packages/@vuepress/core/lib/node/ClientComputedMixin.js b/packages/@vuepress/core/lib/node/ClientComputedMixin.js
index dbe8a3f7a5..20558f5b7e 100644
--- a/packages/@vuepress/core/lib/node/ClientComputedMixin.js
+++ b/packages/@vuepress/core/lib/node/ClientComputedMixin.js
@@ -65,6 +65,16 @@ module.exports = siteData => {
return this.$localeConfig.title || this.$site.title || ''
}
+ get $canonicalUrl () {
+ const { canonicalUrl } = this.$page.frontmatter
+
+ if (typeof canonicalUrl === 'string') {
+ return canonicalUrl
+ }
+
+ return false
+ }
+
get $title () {
const page = this.$page
const { metaTitle } = this.$page.frontmatter
diff --git a/packages/@vuepress/core/lib/node/Page.js b/packages/@vuepress/core/lib/node/Page.js
index 07f50b4b5c..bfa34c5a07 100644
--- a/packages/@vuepress/core/lib/node/Page.js
+++ b/packages/@vuepress/core/lib/node/Page.js
@@ -209,7 +209,7 @@ module.exports = class Page {
}
/**
- * get date of a page.
+ * date of current page.
*
* @returns {null|string}
* @api public
diff --git a/packages/@vuepress/core/lib/node/build/index.js b/packages/@vuepress/core/lib/node/build/index.js
index 80afc9d7f9..7f75850f5b 100644
--- a/packages/@vuepress/core/lib/node/build/index.js
+++ b/packages/@vuepress/core/lib/node/build/index.js
@@ -20,6 +20,7 @@ module.exports = class Build extends EventEmitter {
constructor (context) {
super()
this.context = context
+ this.maxConcurrency = this.context.options.maxConcurrency
this.outDir = this.context.outDir
}
@@ -91,9 +92,18 @@ module.exports = class Build extends EventEmitter {
// render pages
logger.wait('Rendering static HTML...')
- const pagePaths = await Promise.all(
- this.context.pages.map(page => this.renderPage(page))
- )
+ // If maxConcurrency is set, instead of rendering all pages concurrently,
+ // build task would render pages by smaller group to prevent OOM.
+ if (this.maxConcurrency) logger.info(`max concurrency set: ${this.maxConcurrency}`)
+ const pagePaths = []
+ const maxConcurrency = this.maxConcurrency || 100000
+ for (let i = 0; i < this.context.pages.length; i += maxConcurrency) {
+ const segmentPaths = await Promise.all(
+ this.context.pages.slice(i, i + maxConcurrency)
+ .map(page => this.renderPage(page))
+ )
+ pagePaths.push(...segmentPaths)
+ }
readline.clearLine(process.stdout, 0)
readline.cursorTo(process.stdout, 0)
diff --git a/packages/@vuepress/core/lib/node/createTemp.js b/packages/@vuepress/core/lib/node/createTemp.js
index 96b831e349..8f20207cb9 100644
--- a/packages/@vuepress/core/lib/node/createTemp.js
+++ b/packages/@vuepress/core/lib/node/createTemp.js
@@ -1,5 +1,15 @@
const { fs, path, chalk, logger } = require('@vuepress/shared-utils')
+// Only empty the `.temp` directory at most once per run to avoid
+// compilation errors caused by removed files.
+// See: https://github.com/vuejs/vuepress/issues/2254#issuecomment-689457157
+//
+// Known issue: This can cause the `.temp` directory to grow while the server
+// is running, but the impact is limited because the `.temp` directory will
+// be cleared when restarting the server.
+// See discussion in https://github.com/vuejs/vuepress/pull/2612
+let alreadyEmptied = false
+
/**
* Create a dynamic temp utility context that allow to lanuch
* multiple apps with isolated context at the same time.
@@ -19,8 +29,9 @@ module.exports = function createTemp (tempPath) {
if (!fs.existsSync(tempPath)) {
fs.ensureDirSync(tempPath)
- } else {
+ } else if (!alreadyEmptied) {
fs.emptyDirSync(tempPath)
+ alreadyEmptied = true
}
logger.debug(`Temp directory: ${chalk.gray(tempPath)}`)
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/dataBlock/index.js b/packages/@vuepress/core/lib/node/internal-plugins/dataBlock/index.js
index d5198d5dc5..6e706c006f 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/dataBlock/index.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/dataBlock/index.js
@@ -1,3 +1,6 @@
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
module.exports = () => ({
name: '@vuepress/internal-data-block',
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/enhanceApp.js b/packages/@vuepress/core/lib/node/internal-plugins/enhanceApp.js
index 7e90d4d751..8a9f6a983d 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/enhanceApp.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/enhanceApp.js
@@ -1,10 +1,13 @@
const { path } = require('@vuepress/shared-utils')
-module.exports = (options, context) => ({
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
+module.exports = (options, ctx) => ({
name: '@vuepress/internal-enhance-app',
enhanceAppFiles () {
- const { sourceDir, themeAPI } = context
+ const { sourceDir, themeAPI } = ctx
const enhanceAppPath = path.resolve(sourceDir, '.vuepress/enhanceApp.js')
const files = [enhanceAppPath]
if (themeAPI.existsParentTheme) {
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/frontmatterBlock/index.js b/packages/@vuepress/core/lib/node/internal-plugins/frontmatterBlock/index.js
index b49f7e07e7..7c9df6af34 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/frontmatterBlock/index.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/frontmatterBlock/index.js
@@ -1,3 +1,6 @@
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
module.exports = () => ({
name: '@vuepress/internal-frontmatter-block',
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/layoutComponents.js b/packages/@vuepress/core/lib/node/internal-plugins/layoutComponents.js
index d8b71a2417..9db9f47c85 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/layoutComponents.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/layoutComponents.js
@@ -1,3 +1,6 @@
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
module.exports = (options, ctx) => {
return {
name: '@vuepress/internal-layout-components',
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/pageComponents.js b/packages/@vuepress/core/lib/node/internal-plugins/pageComponents.js
index e4f1377888..f25f3126ce 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/pageComponents.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/pageComponents.js
@@ -1,3 +1,6 @@
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
module.exports = (options, ctx) => {
const { pages } = ctx
// const componentNames = Object.keys(layoutComponentMap)
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 49d162ec2e..eeb6ed1217 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/palette/index.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/palette/index.js
@@ -3,6 +3,9 @@ const {
datatypes: { isPlainObject }
} = require('@vuepress/shared-utils')
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
module.exports = (options, ctx) => ({
name: '@vuepress/internal-palette',
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/rootMixins.js b/packages/@vuepress/core/lib/node/internal-plugins/rootMixins.js
index c4f413ff2f..20167bf017 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/rootMixins.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/rootMixins.js
@@ -1,12 +1,15 @@
const { codegen: { pathsToModuleCode }} = require('@vuepress/shared-utils')
-module.exports = (options, context, api) => ({
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
+module.exports = (options, ctx, api) => ({
name: '@vuepress/internal-root-mixins',
// @internal/root-mixins
async clientDynamicModules () {
const builtInRootMixins = [
- context.getLibFilePath('client/root-mixins/updateMeta.js')
+ ctx.getLibFilePath('client/root-mixins/updateMeta.js')
]
const rootMixins = [
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/routes.js b/packages/@vuepress/core/lib/node/internal-plugins/routes.js
index b3635efb0d..d609f61f62 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/routes.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/routes.js
@@ -1,3 +1,6 @@
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
module.exports = (options, ctx) => ({
name: '@vuepress/internal-routes',
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/siteData.js b/packages/@vuepress/core/lib/node/internal-plugins/siteData.js
index 91a99baf4f..0c7628fa47 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/siteData.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/siteData.js
@@ -1,9 +1,12 @@
-module.exports = (options, context) => ({
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
+module.exports = (options, ctx) => ({
name: '@vuepress/internal-site-data',
// @internal/siteData
async clientDynamicModules () {
- const code = `export const siteData = ${JSON.stringify(context.getSiteData(), null, 2)}`
+ const code = `export const siteData = ${JSON.stringify(ctx.getSiteData(), null, 2)}`
return { name: 'siteData.js', content: code, dirname: 'internal' }
}
})
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 b8a54871e0..23485907bc 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/style/index.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/style/index.js
@@ -1,8 +1,7 @@
const { fs, path, logger, chalk } = require('@vuepress/shared-utils')
/**
- * @param options
- * @param {AppContext} ctx
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
*/
module.exports = (options, ctx) => ({
name: '@vuepress/internal-style',
diff --git a/packages/@vuepress/core/lib/node/internal-plugins/transformModule.js b/packages/@vuepress/core/lib/node/internal-plugins/transformModule.js
index ffdfdb05af..e570d62b15 100644
--- a/packages/@vuepress/core/lib/node/internal-plugins/transformModule.js
+++ b/packages/@vuepress/core/lib/node/internal-plugins/transformModule.js
@@ -2,6 +2,9 @@ const { fs, path } = require('@vuepress/shared-utils')
const DIR = 'transform'
+/**
+ * @type {import('@vuepress/types').Plugin<{}, import('@vuepress/types').DefaultThemeConfig>}
+ */
module.exports = (options, ctx) => ({
name: '@vuepress/internal-transform-modules',
diff --git a/packages/@vuepress/core/lib/node/loadConfig.js b/packages/@vuepress/core/lib/node/loadConfig.js
index c786e88d44..e1a83218b2 100644
--- a/packages/@vuepress/core/lib/node/loadConfig.js
+++ b/packages/@vuepress/core/lib/node/loadConfig.js
@@ -12,10 +12,11 @@ const tomlParser = require('toml')
* Expose loadConfig.
*/
-module.exports = function loadConfig (vuepressDir, bustCache = true) {
+module.exports = async function loadConfig (vuepressDir, bustCache = true) {
const configPath = path.resolve(vuepressDir, 'config.js')
const configYmlPath = path.resolve(vuepressDir, 'config.yml')
const configTomlPath = path.resolve(vuepressDir, 'config.toml')
+ const configTsPath = path.resolve(vuepressDir, 'config.ts')
if (bustCache) {
delete require.cache[configPath]
@@ -25,6 +26,11 @@ module.exports = function loadConfig (vuepressDir, bustCache = true) {
let siteConfig = {}
if (fs.existsSync(configYmlPath)) {
siteConfig = parseConfig(configYmlPath)
+ } else if (fs.existsSync(configTsPath)) {
+ const { mod } = await require('bundle-require').bundleRequire({
+ filepath: configTsPath
+ })
+ siteConfig = mod.default || mod
} else if (fs.existsSync(configTomlPath)) {
siteConfig = parseConfig(configTomlPath)
} else if (fs.existsSync(configPath)) {
diff --git a/packages/@vuepress/core/lib/node/theme-api/index.js b/packages/@vuepress/core/lib/node/theme-api/index.js
index f3fa586650..aebb0ed676 100644
--- a/packages/@vuepress/core/lib/node/theme-api/index.js
+++ b/packages/@vuepress/core/lib/node/theme-api/index.js
@@ -1,9 +1,9 @@
const {
logger,
fs,
+ globby,
path: { resolve }
} = require('@vuepress/shared-utils')
-const readdirSync = dir => (fs.existsSync(dir) && fs.readdirSync(dir)) || []
module.exports = class ThemeAPI {
constructor (theme, parentTheme) {
@@ -105,10 +105,12 @@ module.exports = class ThemeAPI {
function resolveSFCs (dirs) {
return dirs
- .map(layoutDir =>
- readdirSync(layoutDir)
- .filter(filename => filename.endsWith('.vue'))
- .map(filename => {
+ .map((layoutDir) =>
+ (fs.existsSync(layoutDir)
+ ? globby.sync('**/*.vue', { cwd: layoutDir, absolute: false })
+ : []
+ )
+ .map((filename) => {
const componentName = getComponentName(filename)
return {
filename,
diff --git a/packages/@vuepress/core/package.json b/packages/@vuepress/core/package.json
index 09c18f2e0a..5be43fbad0 100644
--- a/packages/@vuepress/core/package.json
+++ b/packages/@vuepress/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@vuepress/core",
- "version": "1.6.0",
+ "version": "1.9.10",
"description": "Minimalistic doc generator with Vue component based layout system",
"keywords": [
"documentation",
@@ -18,6 +18,12 @@
},
"license": "MIT",
"author": "Evan You",
+ "maintainers": [
+ {
+ "name": "ULIVZ",
+ "email": "chl814@foxmail.com"
+ }
+ ],
"main": "lib/index.js",
"browserslist": [
">1%"
@@ -25,13 +31,15 @@
"dependencies": {
"@babel/core": "^7.8.4",
"@vue/babel-preset-app": "^4.1.2",
- "@vuepress/markdown": "1.6.0",
- "@vuepress/markdown-loader": "1.6.0",
- "@vuepress/plugin-last-updated": "1.6.0",
- "@vuepress/plugin-register-components": "1.6.0",
- "@vuepress/shared-utils": "1.6.0",
+ "@vuepress/markdown": "1.9.10",
+ "@vuepress/markdown-loader": "1.9.10",
+ "@vuepress/plugin-last-updated": "1.9.10",
+ "@vuepress/plugin-register-components": "1.9.10",
+ "@vuepress/shared-utils": "1.9.10",
+ "@vuepress/types": "1.9.10",
"autoprefixer": "^9.5.1",
"babel-loader": "^8.0.4",
+ "bundle-require": "2.1.8",
"cache-loader": "^3.0.0",
"chokidar": "^2.0.3",
"connect-history-api-fallback": "^1.5.0",
@@ -39,6 +47,7 @@
"core-js": "^3.6.4",
"cross-spawn": "^6.0.5",
"css-loader": "^2.1.1",
+ "esbuild": "0.14.7",
"file-loader": "^3.0.1",
"js-yaml": "^3.13.1",
"lru-cache": "^5.1.1",
@@ -51,7 +60,7 @@
"url-loader": "^1.0.1",
"vue": "^2.6.10",
"vue-loader": "^15.7.1",
- "vue-router": "^3.1.3",
+ "vue-router": "^3.4.5",
"vue-server-renderer": "^2.6.10",
"vue-template-compiler": "^2.6.10",
"vuepress-html-webpack-plugin": "^3.2.0",
@@ -67,11 +76,5 @@
},
"publishConfig": {
"access": "public"
- },
- "maintainers": [
- {
- "name": "ULIVZ",
- "email": "chl814@foxmail.com"
- }
- ]
+ }
}
diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json
index e16ff5ad58..f116743141 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.6.0",
+ "version": "1.9.10",
"description": "markdown-loader for vuepress",
"keywords": [
"documentation",
@@ -19,19 +19,19 @@
},
"license": "MIT",
"author": "Evan You",
+ "maintainers": [
+ {
+ "name": "ULIVZ",
+ "email": "chl814@foxmail.com"
+ }
+ ],
"main": "index.js",
"dependencies": {
- "@vuepress/markdown": "1.6.0",
+ "@vuepress/markdown": "1.9.10",
"loader-utils": "^1.1.0",
"lru-cache": "^5.1.1"
},
"publishConfig": {
"access": "public"
- },
- "maintainers": [
- {
- "name": "ULIVZ",
- "email": "chl814@foxmail.com"
- }
- ]
+ }
}
diff --git a/packages/@vuepress/markdown/README.md b/packages/@vuepress/markdown/README.md
index c8c411e2c3..8b15e4b3e1 100644
--- a/packages/@vuepress/markdown/README.md
+++ b/packages/@vuepress/markdown/README.md
@@ -22,7 +22,7 @@ console.log(isRequiredPlugin(PLUGINS.HIGHLIGHT_LINES)) // false
Remove the specified built-in markdown-it plugin in VuePress.
-It's needed to use with VuePress's [Plugin API > chainMarkdown](https://vuepress.vuejs.org/plugin/option-api.html#chainmarkdown).
+It's needed to use with VuePress’s [Plugin API > chainMarkdown](https://vuepress.vuejs.org/plugin/option-api.html#chainmarkdown).
- **Usage**:
diff --git a/packages/@vuepress/markdown/__tests__/__snapshots__/preWrapper.spec.js.snap b/packages/@vuepress/markdown/__tests__/__snapshots__/preWrapper.spec.js.snap
index 562cc6c467..9c8d44c49d 100644
--- a/packages/@vuepress/markdown/__tests__/__snapshots__/preWrapper.spec.js.snap
+++ b/packages/@vuepress/markdown/__tests__/__snapshots__/preWrapper.spec.js.snap
@@ -1,5 +1,15 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+exports[`preWrapper should wrap code with double quotation marks 1`] = `
+
+
+
+`;
+
exports[`preWrapper should wrap code with quadruple space 1`] = `