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`] = ` + +
+
new Vue()
+
+ +
+ +`; + exports[`preWrapper should wrap code with quadruple space 1`] = `
diff --git a/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap b/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap index 29aa2ee8cb..19cc4ef9f2 100644 --- a/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap +++ b/packages/@vuepress/markdown/__tests__/__snapshots__/snippet.spec.js.snap @@ -5,6 +5,10 @@ exports[`snippet import snippet 1`] = ` // .. } +
# Sample snippet file with no filename extension.
+FROM ubuntu:latest
+CMD echo hello!
+
`; exports[`snippet import snippet with highlight multiple lines 1`] = ` diff --git a/packages/@vuepress/markdown/__tests__/fragments/Dockerfile b/packages/@vuepress/markdown/__tests__/fragments/Dockerfile new file mode 100644 index 0000000000..6cd64bef1d --- /dev/null +++ b/packages/@vuepress/markdown/__tests__/fragments/Dockerfile @@ -0,0 +1,3 @@ +# Sample snippet file with no filename extension. +FROM ubuntu:latest +CMD echo hello! diff --git a/packages/@vuepress/markdown/__tests__/fragments/code-prewrapper-with-double-quotation-marks.md b/packages/@vuepress/markdown/__tests__/fragments/code-prewrapper-with-double-quotation-marks.md new file mode 100644 index 0000000000..212a8d56a0 --- /dev/null +++ b/packages/@vuepress/markdown/__tests__/fragments/code-prewrapper-with-double-quotation-marks.md @@ -0,0 +1,3 @@ +``` js name="marks" +new Vue() +``` diff --git a/packages/@vuepress/markdown/__tests__/fragments/code-snippet.md b/packages/@vuepress/markdown/__tests__/fragments/code-snippet.md index f6fbf4048b..a0f536ec06 100644 --- a/packages/@vuepress/markdown/__tests__/fragments/code-snippet.md +++ b/packages/@vuepress/markdown/__tests__/fragments/code-snippet.md @@ -1 +1,3 @@ <<< @/packages/@vuepress/markdown/__tests__/fragments/snippet.js + +<<< @/packages/@vuepress/markdown/__tests__/fragments/Dockerfile diff --git a/packages/@vuepress/markdown/__tests__/link.spec.js b/packages/@vuepress/markdown/__tests__/link.spec.js index ee144bc16d..410084277d 100644 --- a/packages/@vuepress/markdown/__tests__/link.spec.js +++ b/packages/@vuepress/markdown/__tests__/link.spec.js @@ -2,12 +2,19 @@ import { Md } from './util' import link from '../lib/link.js' import { dataReturnable } from '../index.js' -const mdL = Md().use(link, { +const EXTERNAL_ATTRS = { target: '_blank', rel: 'noopener noreferrer' -}) +} + +const setup = ({ externalAttrs = EXTERNAL_ATTRS, suffix } = {}) => { + const mdL = Md().use(link, EXTERNAL_ATTRS, suffix) + dataReturnable(mdL) -dataReturnable(mdL) + return mdL +} + +const mdL = setup() const internalLinkAsserts = { // START absolute path usage @@ -69,6 +76,21 @@ describe('link', () => { expect(html).toMatchSnapshot() } }) + + test('with custom page suffix should render links correctly', () => { + const suffix = '/' + const mdLSuffix = setup({ suffix }) + + for (const before in internalLinkAsserts) { + const input = `[${before}](${before})` + const output = mdLSuffix.render(input) + const after = getCompiledLink(output) + const value = internalLinkAsserts[before] + const isHtmlLink = value === before + const expected = isHtmlLink ? value : value.replace('.html', suffix) + expect(after).toBe(expected) + } + }) }) function getCompiledLink (output) { diff --git a/packages/@vuepress/markdown/__tests__/preWrapper.spec.js b/packages/@vuepress/markdown/__tests__/preWrapper.spec.js index 9ba0c482a4..37c0f9364c 100644 --- a/packages/@vuepress/markdown/__tests__/preWrapper.spec.js +++ b/packages/@vuepress/markdown/__tests__/preWrapper.spec.js @@ -21,4 +21,10 @@ describe('preWrapper', () => { expect(output1 === output2).toBe(false) expect(output2).toMatchSnapshot() }) + + test('should wrap code with double quotation marks', () => { + const input = getFragment(__dirname, 'code-prewrapper-with-double-quotation-marks.md') + const output2 = mdP.render(input) + expect(output2).toMatchSnapshot() + }) }) diff --git a/packages/@vuepress/markdown/index.js b/packages/@vuepress/markdown/index.js index fae5948ab4..3635359efa 100644 --- a/packages/@vuepress/markdown/index.js +++ b/packages/@vuepress/markdown/index.js @@ -31,6 +31,7 @@ const { module.exports = (markdown = {}) => { const { externalLinks, + pageSuffix, anchor, toc, plugins, @@ -73,7 +74,7 @@ module.exports = (markdown = {}) => { .use(convertRouterLinkPlugin, [Object.assign({ target: '_blank', rel: 'noopener noreferrer' - }, externalLinks)]) + }, externalLinks), pageSuffix]) .end() .plugin(PLUGINS.HOIST_SCRIPT_STYLE) diff --git a/packages/@vuepress/markdown/lib/link.js b/packages/@vuepress/markdown/lib/link.js index 064aa7ae40..9cd84170ae 100644 --- a/packages/@vuepress/markdown/lib/link.js +++ b/packages/@vuepress/markdown/lib/link.js @@ -6,7 +6,7 @@ const url = require('url') const indexRE = /(^|.*\/)(index|readme).md(#?.*)$/i -module.exports = (md, externalAttrs) => { +module.exports = (md, externalAttrs, pageSuffix = '.html') => { let hasOpenRouterLink = false let hasOpenExternalLink = false @@ -28,13 +28,13 @@ module.exports = (md, externalAttrs) => { } } else if (isSourceLink) { hasOpenRouterLink = true - tokens[idx] = toRouterLink(token, link, relativePath) + tokens[idx] = toRouterLink(token, link, relativePath, pageSuffix) } } return self.renderToken(tokens, idx, options) } - function toRouterLink (token, link, relativePath) { + function toRouterLink (token, link, relativePath, suffix) { link[0] = 'to' let to = link[1] @@ -55,8 +55,8 @@ module.exports = (md, externalAttrs) => { to = path + hash } else { to = to - .replace(/\.md$/, '.html') - .replace(/\.md(#.*)$/, '.html$1') + .replace(/\.md$/, suffix) + .replace(/\.md(#.*)$/, `${suffix}$1`) } // markdown-it encodes the uri diff --git a/packages/@vuepress/markdown/lib/preWrapper.js b/packages/@vuepress/markdown/lib/preWrapper.js index 4190fe11a1..7e5af312c3 100644 --- a/packages/@vuepress/markdown/lib/preWrapper.js +++ b/packages/@vuepress/markdown/lib/preWrapper.js @@ -12,7 +12,8 @@ module.exports = md => { const [tokens, idx] = args const token = tokens[idx] const rawCode = wrapped(...args) - return `
` + const tokenInfo = token.info.trim().replace(/\"/g, '\'') + return `
` + `${rawCode}
` } const { fence, code_block: codeBlock } = md.renderer.rules diff --git a/packages/@vuepress/markdown/lib/snippet.js b/packages/@vuepress/markdown/lib/snippet.js index cc0366242f..7902bf3e48 100644 --- a/packages/@vuepress/markdown/lib/snippet.js +++ b/packages/@vuepress/markdown/lib/snippet.js @@ -137,7 +137,7 @@ module.exports = function snippet (md, options = {}) { * * captures: ['/path/to/file.extension', 'extension', '#region', '{meta}'] */ - const rawPathRegexp = /^(.+(?:\.([a-z]+)))(?:(#[\w-]+))?(?: ?({\d+(?:[,-]\d+)*}))?$/ + const rawPathRegexp = /^(.+?(?:\.([a-z]+))?)(?:(#[\w-]+))?(?: ?({\d+(?:[,-]\d+)*}))?$/ const rawPath = state.src.slice(start, end).trim().replace(/^@/, root).trim() const [filename = '', extension = '', region = '', meta = ''] = (rawPathRegexp.exec(rawPath) || []).slice(1) diff --git a/packages/@vuepress/markdown/package.json b/packages/@vuepress/markdown/package.json index c6691982b6..c200a5ee99 100644 --- a/packages/@vuepress/markdown/package.json +++ b/packages/@vuepress/markdown/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/markdown", - "version": "1.6.0", + "version": "1.9.10", "description": "markdown for vuepress", "keywords": [ "documentation", @@ -20,9 +20,15 @@ }, "license": "MIT", "author": "Evan You", + "maintainers": [ + { + "name": "ULIVZ", + "email": "chl814@foxmail.com" + } + ], "main": "index.js", "dependencies": { - "@vuepress/shared-utils": "1.6.0", + "@vuepress/shared-utils": "1.9.10", "markdown-it": "^8.4.1", "markdown-it-anchor": "^5.0.2", "markdown-it-chain": "^1.3.0", @@ -32,11 +38,5 @@ }, "publishConfig": { "access": "public" - }, - "maintainers": [ - { - "name": "ULIVZ", - "email": "chl814@foxmail.com" - } - ] + } } diff --git a/packages/@vuepress/plugin-active-header-links/README.md b/packages/@vuepress/plugin-active-header-links/README.md index 88d15474a3..8ba52699f1 100644 --- a/packages/@vuepress/plugin-active-header-links/README.md +++ b/packages/@vuepress/plugin-active-header-links/README.md @@ -2,4 +2,4 @@ > active-header-links plugin for VuePress -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-active-header-links.html). +See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-active-header-links.html). diff --git a/packages/@vuepress/plugin-active-header-links/index.js b/packages/@vuepress/plugin-active-header-links/index.js index 04124cb974..0cb646d1ff 100644 --- a/packages/@vuepress/plugin-active-header-links/index.js +++ b/packages/@vuepress/plugin-active-header-links/index.js @@ -1,6 +1,9 @@ const { path } = require('@vuepress/shared-utils') -module.exports = (options) => ({ +/** + * @type {import('@vuepress/types').Plugin} + */ +module.exports = options => ({ clientRootMixin: path.resolve(__dirname, 'clientRootMixin.js'), define: { AHL_SIDEBAR_LINK_SELECTOR: options.sidebarLinkSelector || '.sidebar-link', diff --git a/packages/@vuepress/plugin-active-header-links/package.json b/packages/@vuepress/plugin-active-header-links/package.json index b320b9be6f..b827f6b80c 100644 --- a/packages/@vuepress/plugin-active-header-links/package.json +++ b/packages/@vuepress/plugin-active-header-links/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-active-header-links", - "version": "1.6.0", + "version": "1.9.10", "description": "active-header-links plugin for vuepress", "keywords": [ "documentation", @@ -21,6 +21,7 @@ "author": "ULIVZ ", "main": "index.js", "dependencies": { + "@vuepress/types": "1.9.10", "lodash.debounce": "^4.0.8" }, "publishConfig": { diff --git a/packages/@vuepress/plugin-back-to-top/README.md b/packages/@vuepress/plugin-back-to-top/README.md index cd99e567e8..571126ac6d 100644 --- a/packages/@vuepress/plugin-back-to-top/README.md +++ b/packages/@vuepress/plugin-back-to-top/README.md @@ -2,4 +2,4 @@ > Back-to-top plugin for VuePress -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-back-to-top.html). +See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-back-to-top.html). diff --git a/packages/@vuepress/plugin-back-to-top/index.js b/packages/@vuepress/plugin-back-to-top/index.js index def7f5f33a..2f0d63c6ee 100644 --- a/packages/@vuepress/plugin-back-to-top/index.js +++ b/packages/@vuepress/plugin-back-to-top/index.js @@ -1,5 +1,8 @@ const { path } = require('@vuepress/shared-utils') +/** + * @type {import('@vuepress/types').Plugin} + */ module.exports = { enhanceAppFiles: [ path.resolve(__dirname, 'enhanceAppFile.js') diff --git a/packages/@vuepress/plugin-back-to-top/package.json b/packages/@vuepress/plugin-back-to-top/package.json index b9214d010b..f538bc0f87 100644 --- a/packages/@vuepress/plugin-back-to-top/package.json +++ b/packages/@vuepress/plugin-back-to-top/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-back-to-top", - "version": "1.6.0", + "version": "1.9.10", "description": "back-to-top plugin for vuepress", "keywords": [ "documentation", @@ -8,7 +8,7 @@ "vue", "vuepress" ], - "homepage": "https://github.com/vuejs/vuepress/blob/master/packages/@vuepress/back-to-top#readme", + "homepage": "https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/plugin-back-to-top#readme", "bugs": { "url": "https://github.com/vuejs/vuepress/issues" }, @@ -21,6 +21,7 @@ "author": "ULIVZ ", "main": "index.js", "dependencies": { + "@vuepress/types": "1.9.10", "lodash.debounce": "^4.0.8" }, "publishConfig": { diff --git a/packages/@vuepress/plugin-google-analytics/README.md b/packages/@vuepress/plugin-google-analytics/README.md index 2a23839cdf..3d827d8c56 100644 --- a/packages/@vuepress/plugin-google-analytics/README.md +++ b/packages/@vuepress/plugin-google-analytics/README.md @@ -2,4 +2,4 @@ > Google analytics plugin for VuePress -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-google-analytics.html). +See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-google-analytics.html). diff --git a/packages/@vuepress/plugin-google-analytics/enhanceAppFile.js b/packages/@vuepress/plugin-google-analytics/enhanceAppFile.js index 6762d48e45..37475ea33b 100644 --- a/packages/@vuepress/plugin-google-analytics/enhanceAppFile.js +++ b/packages/@vuepress/plugin-google-analytics/enhanceAppFile.js @@ -20,7 +20,7 @@ export default ({ router }) => { ga('set', 'anonymizeIp', true) router.afterEach(function (to) { - ga('set', 'page', to.fullPath) + ga('set', 'page', router.app.$withBase(to.fullPath)) ga('send', 'pageview') }) } diff --git a/packages/@vuepress/plugin-google-analytics/index.js b/packages/@vuepress/plugin-google-analytics/index.js index 43c2ec985f..84ec76022e 100644 --- a/packages/@vuepress/plugin-google-analytics/index.js +++ b/packages/@vuepress/plugin-google-analytics/index.js @@ -1,5 +1,8 @@ const { path } = require('@vuepress/shared-utils') +/** + * @type {import('@vuepress/types').Plugin} + */ module.exports = (options = {}, context) => ({ define () { const { siteConfig = {}} = context diff --git a/packages/@vuepress/plugin-google-analytics/package.json b/packages/@vuepress/plugin-google-analytics/package.json index 366e52ee94..079e17e620 100644 --- a/packages/@vuepress/plugin-google-analytics/package.json +++ b/packages/@vuepress/plugin-google-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-google-analytics", - "version": "1.6.0", + "version": "1.9.10", "description": "google-analytics plugin for vuepress", "keywords": [ "documentation", @@ -20,6 +20,9 @@ "license": "MIT", "author": "ULIVZ ", "main": "index.js", + "dependencies": { + "@vuepress/types": "1.9.10" + }, "publishConfig": { "access": "public" } diff --git a/packages/@vuepress/plugin-last-updated/README.md b/packages/@vuepress/plugin-last-updated/README.md index ad9fe01c51..11abbf014e 100644 --- a/packages/@vuepress/plugin-last-updated/README.md +++ b/packages/@vuepress/plugin-last-updated/README.md @@ -2,4 +2,4 @@ > last-updated plugin for VuePress -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-last-updated.html). +See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-last-updated.html). diff --git a/packages/@vuepress/plugin-last-updated/index.js b/packages/@vuepress/plugin-last-updated/index.js index 72e48094d5..8d01a72a59 100644 --- a/packages/@vuepress/plugin-last-updated/index.js +++ b/packages/@vuepress/plugin-last-updated/index.js @@ -1,6 +1,9 @@ const path = require('path') const spawn = require('cross-spawn') +/** + * @type {import('@vuepress/types').Plugin} + */ module.exports = (options = {}, context) => ({ extendPageData ($page) { const { transformer, dateOptions } = options @@ -11,6 +14,7 @@ module.exports = (options = {}, context) => ({ ? transformer(timestamp, $lang) : defaultTransformer(timestamp, $lang, dateOptions) $page.lastUpdated = lastUpdated + $page.lastUpdatedTimestamp = timestamp } } }) diff --git a/packages/@vuepress/plugin-last-updated/package.json b/packages/@vuepress/plugin-last-updated/package.json index 414719f34f..4e454bdc70 100644 --- a/packages/@vuepress/plugin-last-updated/package.json +++ b/packages/@vuepress/plugin-last-updated/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-last-updated", - "version": "1.6.0", + "version": "1.9.10", "description": "last-updated plugin for vuepress", "keywords": [ "documentation", @@ -21,6 +21,7 @@ "author": "ULIVZ ", "main": "index.js", "dependencies": { + "@vuepress/types": "1.9.10", "cross-spawn": "^6.0.5" }, "publishConfig": { diff --git a/packages/@vuepress/plugin-medium-zoom/README.md b/packages/@vuepress/plugin-medium-zoom/README.md index 5c02d58227..d472ee0425 100644 --- a/packages/@vuepress/plugin-medium-zoom/README.md +++ b/packages/@vuepress/plugin-medium-zoom/README.md @@ -2,4 +2,4 @@ > medium-zoom plugin for VuePress -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-medium-zoom.html). +See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-medium-zoom.html). diff --git a/packages/@vuepress/plugin-medium-zoom/index.js b/packages/@vuepress/plugin-medium-zoom/index.js index 5dbad710df..b696773bc3 100644 --- a/packages/@vuepress/plugin-medium-zoom/index.js +++ b/packages/@vuepress/plugin-medium-zoom/index.js @@ -1,5 +1,8 @@ const { path } = require('@vuepress/shared-utils') +/** + * @type {import('@vuepress/types').Plugin} + */ module.exports = (options, context) => ({ define: { SELECTOR: options.selector || '.theme-default-content :not(a) > img', diff --git a/packages/@vuepress/plugin-medium-zoom/package.json b/packages/@vuepress/plugin-medium-zoom/package.json index 22549d0119..a4b72d32fb 100644 --- a/packages/@vuepress/plugin-medium-zoom/package.json +++ b/packages/@vuepress/plugin-medium-zoom/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-medium-zoom", - "version": "1.6.0", + "version": "1.9.10", "description": "medium-zoom plugin for vuepress", "keywords": [ "documentation", @@ -21,6 +21,7 @@ "author": "ULIVZ ", "main": "index.js", "dependencies": { + "@vuepress/types": "1.9.10", "medium-zoom": "^1.0.4" }, "publishConfig": { diff --git a/packages/@vuepress/plugin-nprogress/index.js b/packages/@vuepress/plugin-nprogress/index.js index 326c3cde3b..6c4cba8d02 100644 --- a/packages/@vuepress/plugin-nprogress/index.js +++ b/packages/@vuepress/plugin-nprogress/index.js @@ -1,5 +1,8 @@ const { resolve } = require('path') +/** + * @type {import('@vuepress/types').Plugin} + */ module.exports = { clientRootMixin: resolve(__dirname, 'clientRootMixin.js'), enhanceAppFiles: resolve(__dirname, 'enhanceAppFile.js') diff --git a/packages/@vuepress/plugin-nprogress/package.json b/packages/@vuepress/plugin-nprogress/package.json index b9237f0f6a..e2dddae6d3 100644 --- a/packages/@vuepress/plugin-nprogress/package.json +++ b/packages/@vuepress/plugin-nprogress/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-nprogress", - "version": "1.6.0", + "version": "1.9.10", "description": "nprogress plugin for vuepress", "keywords": [ "documentation", @@ -21,6 +21,7 @@ "author": "ULIVZ ", "main": "index.js", "dependencies": { + "@vuepress/types": "1.9.10", "nprogress": "^0.2.0" }, "publishConfig": { diff --git a/packages/@vuepress/plugin-pwa/README.md b/packages/@vuepress/plugin-pwa/README.md index 5d9a02ed81..8975534116 100644 --- a/packages/@vuepress/plugin-pwa/README.md +++ b/packages/@vuepress/plugin-pwa/README.md @@ -2,4 +2,4 @@ > PWA plugin for VuePress -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-pwa.html). +See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-pwa.html). diff --git a/packages/@vuepress/plugin-pwa/index.js b/packages/@vuepress/plugin-pwa/index.js index 57a8fee670..69885a0a26 100644 --- a/packages/@vuepress/plugin-pwa/index.js +++ b/packages/@vuepress/plugin-pwa/index.js @@ -1,11 +1,17 @@ const { logger, fs, path } = require('@vuepress/shared-utils') -module.exports = ({ - serviceWorker = true, - updatePopup = false, - popupComponent = 'SWUpdatePopup', - generateSWConfig = {} -}, context) => ({ +/** + * @type {import('@vuepress/types').Plugin} + */ +module.exports = ( + { + serviceWorker = true, + updatePopup = false, + popupComponent = 'SWUpdatePopup', + generateSWConfig = {} + }, + context +) => ({ alias: { '@sw-event': path.resolve(__dirname, 'lib/event.js') }, @@ -33,12 +39,17 @@ module.exports = ({ await wbb.generateSW({ swDest: swFilePath, globDirectory: outDir, - globPatterns: ['**\/*.{js,css,html,png,jpg,jpeg,gif,svg,woff,woff2,eot,ttf,otf}'], + globPatterns: [ + '**/*.{js,css,html,png,jpg,jpeg,gif,svg,woff,woff2,eot,ttf,otf}' + ], ...generateSWConfig }) await fs.writeFile( swFilePath, - await fs.readFile(path.resolve(__dirname, 'lib/skip-waiting.js'), 'utf8'), + await fs.readFile( + path.resolve(__dirname, 'lib/skip-waiting.js'), + 'utf8' + ), { flag: 'a' } ) } diff --git a/packages/@vuepress/plugin-pwa/lib/SWUpdatePopup.vue b/packages/@vuepress/plugin-pwa/lib/SWUpdatePopup.vue index 0e94ed6317..1cced58f92 100644 --- a/packages/@vuepress/plugin-pwa/lib/SWUpdatePopup.vue +++ b/packages/@vuepress/plugin-pwa/lib/SWUpdatePopup.vue @@ -93,7 +93,7 @@ export default { background: #fff; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5); text-align: center; - z-index: 2; + z-index: 3; } .sw-update-popup > button { diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json index 4983199d2e..5181a145ce 100644 --- a/packages/@vuepress/plugin-pwa/package.json +++ b/packages/@vuepress/plugin-pwa/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-pwa", - "version": "1.6.0", + "version": "1.9.10", "description": "pwa plugin for vuepress", "keywords": [ "documentation", @@ -21,7 +21,8 @@ "author": "ULIVZ ", "main": "index.js", "dependencies": { - "@vuepress/shared-utils": "1.6.0", + "@vuepress/shared-utils": "1.9.10", + "@vuepress/types": "1.9.10", "register-service-worker": "^1.7.0", "workbox-build": "^4.3.1" }, diff --git a/packages/@vuepress/plugin-register-components/index.js b/packages/@vuepress/plugin-register-components/index.js index 2def3e73fe..75cc795375 100644 --- a/packages/@vuepress/plugin-register-components/index.js +++ b/packages/@vuepress/plugin-register-components/index.js @@ -16,6 +16,9 @@ async function resolveComponents (componentDir) { // overwritten. let moduleId = 0 +/** + * @type {import('@vuepress/types').Plugin} + */ module.exports = (options, context) => ({ multiple: true, diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json index 026ef7e12b..3f2c42938b 100644 --- a/packages/@vuepress/plugin-register-components/package.json +++ b/packages/@vuepress/plugin-register-components/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-register-components", - "version": "1.6.0", + "version": "1.9.10", "description": "register-global-components plugin for vuepress", "keywords": [ "documentation", @@ -21,7 +21,8 @@ "author": "ULIVZ ", "main": "index.js", "dependencies": { - "@vuepress/shared-utils": "1.6.0" + "@vuepress/shared-utils": "1.9.10", + "@vuepress/types": "1.9.10" }, "publishConfig": { "access": "public" diff --git a/packages/@vuepress/plugin-search/README.md b/packages/@vuepress/plugin-search/README.md index 0de02e6d9a..138696d899 100644 --- a/packages/@vuepress/plugin-search/README.md +++ b/packages/@vuepress/plugin-search/README.md @@ -2,5 +2,5 @@ > header-based search plugin for VuePress -See [documentation](https://v1.vuepress.vuejs.org/plugin/official/plugin-search.html). +See [documentation](https://vuepress.vuejs.org/plugin/official/plugin-search.html). diff --git a/packages/@vuepress/plugin-search/index.js b/packages/@vuepress/plugin-search/index.js index ee280ac72c..ea4325e89e 100644 --- a/packages/@vuepress/plugin-search/index.js +++ b/packages/@vuepress/plugin-search/index.js @@ -1,5 +1,8 @@ const { path } = require('@vuepress/shared-utils') +/** + * @type {import('@vuepress/types').Plugin} + */ module.exports = (options) => ({ alias: { '@SearchBox': diff --git a/packages/@vuepress/plugin-search/package.json b/packages/@vuepress/plugin-search/package.json index d7f07976ef..68065a7f84 100644 --- a/packages/@vuepress/plugin-search/package.json +++ b/packages/@vuepress/plugin-search/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/plugin-search", - "version": "1.6.0", + "version": "1.9.10", "description": "search plugin for vuepress", "keywords": [ "documentation", @@ -20,6 +20,9 @@ "license": "MIT", "author": "ULIVZ ", "main": "index.js", + "dependencies": { + "@vuepress/types": "1.9.10" + }, "publishConfig": { "access": "public" } diff --git a/packages/@vuepress/shared-utils/__tests__/parseHeaders.spec.ts b/packages/@vuepress/shared-utils/__tests__/parseHeaders.spec.ts index 60ffc7afc0..aaa487a215 100644 --- a/packages/@vuepress/shared-utils/__tests__/parseHeaders.spec.ts +++ b/packages/@vuepress/shared-utils/__tests__/parseHeaders.spec.ts @@ -19,6 +19,10 @@ describe('parseHeaders', () => { '\\*vue\\*': '*vue*', '\\!vue\\!': '!vue!', + // #2688 + '[vue](vuejs.org) / [vue](vuejs.org)': 'vue / vue', + '[\\](vuejs.org)': '', + // #564 For multiple markdown tokens '`a` and `b`': 'a and b', '***bold and italic***': 'bold and italic', diff --git a/packages/@vuepress/shared-utils/__tests__/removeNonCodeWrappedHTML.spec.ts b/packages/@vuepress/shared-utils/__tests__/removeNonCodeWrappedHTML.spec.ts index cfa2594a92..cd80803d3e 100644 --- a/packages/@vuepress/shared-utils/__tests__/removeNonCodeWrappedHTML.spec.ts +++ b/packages/@vuepress/shared-utils/__tests__/removeNonCodeWrappedHTML.spec.ts @@ -44,7 +44,10 @@ test('removeNonCodeWrappedHTML', () => { '# H1 `` H2': '# H1 `` H2', '# H1 `` H2': '# H1 `` H2', '# H1 `` H2': '# H1 `` H2', - '# H1 `` H2': '# H1 `` H2' + '# H1 `` H2': '# H1 `` H2', + + // #2688 + '# \\': '# \\' } Object.keys(asserts).forEach(input => { diff --git a/packages/@vuepress/shared-utils/package.json b/packages/@vuepress/shared-utils/package.json index 3c2d89b1de..7333fad7b8 100644 --- a/packages/@vuepress/shared-utils/package.json +++ b/packages/@vuepress/shared-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/shared-utils", - "version": "1.6.0", + "version": "1.9.10", "description": "shared-utils for vuepress", "keywords": [ "documentation", @@ -19,12 +19,12 @@ }, "license": "MIT", "author": "ULIVZ ", + "main": "lib/index.js", + "types": "lib/index.d.ts", "files": [ "lib", "types" ], - "main": "lib/index.js", - "types": "types/index.d.ts", "scripts": { "tsc": "tsc", "update-index": "node scripts/update-index.js" diff --git a/packages/@vuepress/shared-utils/src/parseHeaders.ts b/packages/@vuepress/shared-utils/src/parseHeaders.ts index 2665b6c29b..5be50751b1 100644 --- a/packages/@vuepress/shared-utils/src/parseHeaders.ts +++ b/packages/@vuepress/shared-utils/src/parseHeaders.ts @@ -15,9 +15,9 @@ import parseEmojis from './parseEmojis' // wrapped by (markdown token: '`') tag. const removeMarkdownTokens = (str: string): string => String(str) - .replace(/\[(.*)\]\(.*\)/, '$1') // []() - .replace(/(`|\*{1,3}|_)(.*?[^\\])\1/g, '$2') // `{t}` | *{t}* | **{t}** | ***{t}*** | _{t}_ - .replace(/(\\)(\*|_|`|\!)/g, '$2') // remove escape char '\' + .replace(/(\[(.[^\]]+)\]\((.[^)]+)\))/g, '$2') // []() + .replace(/(`|\*{1,3}|_)(.*?[^\\])\1/g, '$2') // `{t}` | *{t}* | **{t}** | ***{t}*** | _{t}_ + .replace(/(\\)(\*|_|`|\!|<)/g, '$2') // remove escape char '\' const trim = (str: string): string => str.trim() diff --git a/packages/@vuepress/shared-utils/src/removeNonCodeWrappedHTML.ts b/packages/@vuepress/shared-utils/src/removeNonCodeWrappedHTML.ts index 7d5461b80c..270a4f102d 100644 --- a/packages/@vuepress/shared-utils/src/removeNonCodeWrappedHTML.ts +++ b/packages/@vuepress/shared-utils/src/removeNonCodeWrappedHTML.ts @@ -3,5 +3,5 @@ // Input: " b", Output: "b" // Input: "`` b", Output: "`` b" export = function removeNonCodeWrappedHTML (str: string): string { - return String(str).replace(/(^|[^><`])<.*>([^><`]|$)/g, '$1$2') + return String(str).replace(/(^|[^><`\\])<.*>([^><`]|$)/g, '$1$2') } diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json index 248fbc2fc7..b11cd989bf 100644 --- a/packages/@vuepress/test-utils/package.json +++ b/packages/@vuepress/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vuepress/test-utils", - "version": "1.6.0", + "version": "1.9.10", "description": "test-utils for vuepress", "keywords": [ "documentation", @@ -25,8 +25,8 @@ "@babel/preset-env": "^7.0.0", "@types/jest": "^24.0.9", "@vue/test-utils": "^1.0.0-beta.29", - "@vuepress/core": "1.6.0", - "@vuepress/shared-utils": "1.6.0", + "@vuepress/core": "1.9.10", + "@vuepress/shared-utils": "1.9.10", "babel-jest": "^24.7.1", "execa": "^1.0.0", "jest": "^24.7.1", diff --git a/packages/@vuepress/theme-default/components/AlgoliaSearchBox.vue b/packages/@vuepress/theme-default/components/AlgoliaSearchBox.vue index 7b2a5807cf..7071fb8fb0 100644 --- a/packages/@vuepress/theme-default/components/AlgoliaSearchBox.vue +++ b/packages/@vuepress/theme-default/components/AlgoliaSearchBox.vue @@ -53,9 +53,10 @@ export default { { inputSelector: '#algolia-search-input', // #697 Make docsearch work well at i18n mode. - algoliaOptions: Object.assign({ - 'facetFilters': [`lang:${lang}`].concat(algoliaOptions.facetFilters || []) - }, algoliaOptions), + algoliaOptions: { + ...algoliaOptions, + facetFilters: [`lang:${lang}`].concat(algoliaOptions.facetFilters || []) + }, handleSelected: (input, event, suggestion) => { const { pathname, hash } = new URL(suggestion.url) const routepath = pathname.replace(this.$site.base, '/') diff --git a/packages/@vuepress/theme-default/components/DropdownLink.vue b/packages/@vuepress/theme-default/components/DropdownLink.vue index be6563faec..d14eea9a5b 100644 --- a/packages/@vuepress/theme-default/components/DropdownLink.vue +++ b/packages/@vuepress/theme-default/components/DropdownLink.vue @@ -229,8 +229,6 @@ export default { &.open .nav-dropdown // override the inline style. display block !important - &.open:blur - display none .nav-dropdown display none // Avoid height shaked by clicking diff --git a/packages/@vuepress/theme-default/components/Home.vue b/packages/@vuepress/theme-default/components/Home.vue index acd87446db..a7d26ac20d 100644 --- a/packages/@vuepress/theme-default/components/Home.vue +++ b/packages/@vuepress/theme-default/components/Home.vue @@ -57,6 +57,12 @@ > {{ data.footer }}
+ +
diff --git a/packages/@vuepress/theme-default/components/SidebarLinks.vue b/packages/@vuepress/theme-default/components/SidebarLinks.vue index ea084e25c4..55e62885eb 100644 --- a/packages/@vuepress/theme-default/components/SidebarLinks.vue +++ b/packages/@vuepress/theme-default/components/SidebarLinks.vue @@ -90,13 +90,16 @@ function resolveOpenGroupIndex (route, items) { function descendantIsActive (route, item) { if (item.type === 'group') { - return item.children.some(child => { + const childIsActive = item.path && isActive(route, item.path) + const grandChildIsActive = item.children.some(child => { if (child.type === 'group') { return descendantIsActive(route, child) } else { return child.type === 'page' && isActive(route, child.path) } }) + + return childIsActive || grandChildIsActive } return false } diff --git a/packages/@vuepress/theme-default/global-components/CodeBlock.vue b/packages/@vuepress/theme-default/global-components/CodeBlock.vue index fc1dc71742..d59d85b26a 100644 --- a/packages/@vuepress/theme-default/global-components/CodeBlock.vue +++ b/packages/@vuepress/theme-default/global-components/CodeBlock.vue @@ -19,6 +19,11 @@ export default { type: Boolean, default: false } + }, + mounted () { + if (this.$parent && this.$parent.loadTabs) { + this.$parent.loadTabs() + } } } diff --git a/packages/@vuepress/theme-default/global-components/CodeGroup.vue b/packages/@vuepress/theme-default/global-components/CodeGroup.vue index e0a340b2a1..ac6ec55436 100644 --- a/packages/@vuepress/theme-default/global-components/CodeGroup.vue +++ b/packages/@vuepress/theme-default/global-components/CodeGroup.vue @@ -1,22 +1,32 @@