diff --git a/CHANGELOG.md b/CHANGELOG.md
index 72f40e7193..70842a5352 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,16 @@
+## [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))
+* **$theme-default:** override algoliaOptions correctly ([ba89f39](https://github.com/vuejs/vuepress/commit/ba89f39))
+* **deps:** [security] bump ini from 1.3.5 to 1.3.8 ([aeb8dce](https://github.com/vuejs/vuepress/commit/aeb8dce))
+* **deps:** bump autoprefixer from 9.6.1 to 9.8.6 ([775b3de](https://github.com/vuejs/vuepress/commit/775b3de))
+* **deps:** bump vue from 2.6.10 to 2.6.12 ([830dd4c](https://github.com/vuejs/vuepress/commit/830dd4c))
+
+
+
# [1.8.0](https://github.com/vuejs/vuepress/compare/v1.7.1...v1.8.0) (2021-01-05)
diff --git a/lerna.json b/lerna.json
index 02d866a0e9..635c9f4ec8 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,7 +1,7 @@
{
"npmClient": "yarn",
"useWorkspaces": true,
- "version": "1.8.1",
+ "version": "1.8.2",
"command": {
"version": {
"allowBranch": "master",
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/package.json b/packages/@vuepress/core/package.json
index 2c0cbd0d4b..8e971dcba6 100644
--- a/packages/@vuepress/core/package.json
+++ b/packages/@vuepress/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@vuepress/core",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Minimalistic doc generator with Vue component based layout system",
"keywords": [
"documentation",
@@ -25,11 +25,11 @@
"dependencies": {
"@babel/core": "^7.8.4",
"@vue/babel-preset-app": "^4.1.2",
- "@vuepress/markdown": "1.8.1",
- "@vuepress/markdown-loader": "1.8.1",
- "@vuepress/plugin-last-updated": "1.8.1",
- "@vuepress/plugin-register-components": "1.8.1",
- "@vuepress/shared-utils": "1.8.1",
+ "@vuepress/markdown": "1.8.2",
+ "@vuepress/markdown-loader": "1.8.2",
+ "@vuepress/plugin-last-updated": "1.8.2",
+ "@vuepress/plugin-register-components": "1.8.2",
+ "@vuepress/shared-utils": "1.8.2",
"autoprefixer": "^9.5.1",
"babel-loader": "^8.0.4",
"cache-loader": "^3.0.0",
diff --git a/packages/@vuepress/markdown-loader/package.json b/packages/@vuepress/markdown-loader/package.json
index 53dae642b8..c947b7c8a7 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.8.1",
+ "version": "1.8.2",
"description": "markdown-loader for vuepress",
"keywords": [
"documentation",
@@ -21,7 +21,7 @@
"author": "Evan You",
"main": "index.js",
"dependencies": {
- "@vuepress/markdown": "1.8.1",
+ "@vuepress/markdown": "1.8.2",
"loader-utils": "^1.1.0",
"lru-cache": "^5.1.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-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/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 8dc1d777d1..7d165c2c89 100644
--- a/packages/@vuepress/markdown/package.json
+++ b/packages/@vuepress/markdown/package.json
@@ -1,6 +1,6 @@
{
"name": "@vuepress/markdown",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "markdown for vuepress",
"keywords": [
"documentation",
@@ -22,7 +22,7 @@
"author": "Evan You",
"main": "index.js",
"dependencies": {
- "@vuepress/shared-utils": "1.8.1",
+ "@vuepress/shared-utils": "1.8.2",
"markdown-it": "^8.4.1",
"markdown-it-anchor": "^5.0.2",
"markdown-it-chain": "^1.3.0",
diff --git a/packages/@vuepress/plugin-active-header-links/package.json b/packages/@vuepress/plugin-active-header-links/package.json
index 0f175120a6..178119558f 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.8.1",
+ "version": "1.8.2",
"description": "active-header-links plugin for vuepress",
"keywords": [
"documentation",
diff --git a/packages/@vuepress/plugin-back-to-top/package.json b/packages/@vuepress/plugin-back-to-top/package.json
index 48b0307c36..1f51e0a522 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.8.1",
+ "version": "1.8.2",
"description": "back-to-top plugin for vuepress",
"keywords": [
"documentation",
diff --git a/packages/@vuepress/plugin-google-analytics/package.json b/packages/@vuepress/plugin-google-analytics/package.json
index 34d53f8721..c2041cfdcc 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.8.1",
+ "version": "1.8.2",
"description": "google-analytics plugin for vuepress",
"keywords": [
"documentation",
diff --git a/packages/@vuepress/plugin-last-updated/package.json b/packages/@vuepress/plugin-last-updated/package.json
index b61e622b6e..d8812cdb5a 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.8.1",
+ "version": "1.8.2",
"description": "last-updated plugin for vuepress",
"keywords": [
"documentation",
diff --git a/packages/@vuepress/plugin-medium-zoom/package.json b/packages/@vuepress/plugin-medium-zoom/package.json
index fd0a0c2c1b..a194405268 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.8.1",
+ "version": "1.8.2",
"description": "medium-zoom plugin for vuepress",
"keywords": [
"documentation",
diff --git a/packages/@vuepress/plugin-nprogress/package.json b/packages/@vuepress/plugin-nprogress/package.json
index 31cb7a6c80..a0abe73e14 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.8.1",
+ "version": "1.8.2",
"description": "nprogress plugin for vuepress",
"keywords": [
"documentation",
diff --git a/packages/@vuepress/plugin-pwa/package.json b/packages/@vuepress/plugin-pwa/package.json
index b296dd0227..87a4bcf754 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.8.1",
+ "version": "1.8.2",
"description": "pwa plugin for vuepress",
"keywords": [
"documentation",
@@ -21,7 +21,7 @@
"author": "ULIVZ ",
"main": "index.js",
"dependencies": {
- "@vuepress/shared-utils": "1.8.1",
+ "@vuepress/shared-utils": "1.8.2",
"register-service-worker": "^1.7.0",
"workbox-build": "^4.3.1"
},
diff --git a/packages/@vuepress/plugin-register-components/package.json b/packages/@vuepress/plugin-register-components/package.json
index b707109ec5..94dc0814ff 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.8.1",
+ "version": "1.8.2",
"description": "register-global-components plugin for vuepress",
"keywords": [
"documentation",
@@ -21,7 +21,7 @@
"author": "ULIVZ ",
"main": "index.js",
"dependencies": {
- "@vuepress/shared-utils": "1.8.1"
+ "@vuepress/shared-utils": "1.8.2"
},
"publishConfig": {
"access": "public"
diff --git a/packages/@vuepress/plugin-search/package.json b/packages/@vuepress/plugin-search/package.json
index 485fda182d..adf4ce6239 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.8.1",
+ "version": "1.8.2",
"description": "search plugin for vuepress",
"keywords": [
"documentation",
diff --git a/packages/@vuepress/shared-utils/package.json b/packages/@vuepress/shared-utils/package.json
index fbf427351e..d92543d4d8 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.8.1",
+ "version": "1.8.2",
"description": "shared-utils for vuepress",
"keywords": [
"documentation",
diff --git a/packages/@vuepress/test-utils/package.json b/packages/@vuepress/test-utils/package.json
index 79f7d897a7..5dd660a5ba 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.8.1",
+ "version": "1.8.2",
"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.8.1",
- "@vuepress/shared-utils": "1.8.1",
+ "@vuepress/core": "1.8.2",
+ "@vuepress/shared-utils": "1.8.2",
"babel-jest": "^24.7.1",
"execa": "^1.0.0",
"jest": "^24.7.1",
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/package.json b/packages/@vuepress/theme-default/package.json
index 0c1b601bbb..9511293f72 100644
--- a/packages/@vuepress/theme-default/package.json
+++ b/packages/@vuepress/theme-default/package.json
@@ -1,6 +1,6 @@
{
"name": "@vuepress/theme-default",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Default theme for VuePress",
"keywords": [
"documentation",
@@ -21,9 +21,9 @@
"author": "Evan You",
"main": "index.js",
"dependencies": {
- "@vuepress/plugin-active-header-links": "1.8.1",
- "@vuepress/plugin-nprogress": "1.8.1",
- "@vuepress/plugin-search": "1.8.1",
+ "@vuepress/plugin-active-header-links": "1.8.2",
+ "@vuepress/plugin-nprogress": "1.8.2",
+ "@vuepress/plugin-search": "1.8.2",
"docsearch.js": "^2.5.2",
"lodash": "^4.17.15",
"stylus": "^0.54.8",
diff --git a/packages/@vuepress/theme-vue/package.json b/packages/@vuepress/theme-vue/package.json
index dd4fc75175..06d9bb8bc8 100644
--- a/packages/@vuepress/theme-vue/package.json
+++ b/packages/@vuepress/theme-vue/package.json
@@ -1,6 +1,6 @@
{
"name": "@vuepress/theme-vue",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "VuePress theme for official Vue projects",
"keywords": [
"documentation",
@@ -21,7 +21,7 @@
"author": "Evan You",
"main": "index.js",
"dependencies": {
- "@vuepress/theme-default": "1.8.1"
+ "@vuepress/theme-default": "1.8.2"
},
"publishConfig": {
"access": "public"
diff --git a/packages/docs/docs/plugin/README.md b/packages/docs/docs/plugin/README.md
index 6695160588..e001657054 100644
--- a/packages/docs/docs/plugin/README.md
+++ b/packages/docs/docs/plugin/README.md
@@ -27,8 +27,8 @@ To keep things at a minimum, not all of the official plugins are shipped with Vu
- [@vuepress/plugin-active-header-links](./official/plugin-active-header-links.md)
- [@vuepress/plugin-nprogress](./official/plugin-nprogress.md)
- [@vuepress/plugin-search](./official/plugin-search.md)
-- [vuepress-plugin-container](https://vuepress.github.io/plugins/container/)
-- [vuepress-plugin-smooth-scroll](https://vuepress.github.io/plugins/smooth-scroll/)
+- [vuepress-plugin-container](https://vuepress-community.netlify.app/en/plugins/container/#vuepress-plugin-container)
+- [vuepress-plugin-smooth-scroll](https://vuepress-community.netlify.app/en/plugins/smooth-scroll/#installation)
## Architecture
diff --git a/packages/docs/docs/theme/default-theme-config.md b/packages/docs/docs/theme/default-theme-config.md
index feef6ee2ae..c23d7f80d1 100644
--- a/packages/docs/docs/theme/default-theme-config.md
+++ b/packages/docs/docs/theme/default-theme-config.md
@@ -532,7 +532,7 @@ pageClass: custom-page-class
---
```
-Then you can write CSS targeting that page only in `./vuepress/styles/index.styl`.
+Then you can write CSS targeting that page only in `.vuepress/styles/index.styl`.
``` css
diff --git a/packages/docs/docs/zh/plugin/README.md b/packages/docs/docs/zh/plugin/README.md
index 1b5a571df3..fb846fd85e 100644
--- a/packages/docs/docs/zh/plugin/README.md
+++ b/packages/docs/docs/zh/plugin/README.md
@@ -27,8 +27,8 @@
- [@vuepress/plugin-active-header-links](./official/plugin-active-header-links.md)
- [@vuepress/plugin-nprogress](./official/plugin-nprogress.md)
- [@vuepress/plugin-search](./official/plugin-search.md)
-- [vuepress-plugin-container](https://vuepress.github.io/zh/plugins/container/)
-- [vuepress-plugin-smooth-scroll](https://vuepress.github.io/zh/plugins/smooth-scroll/)
+- [vuepress-plugin-container](https://vuepress-community.netlify.app/zh/plugins/container/#vuepress-plugin-container)
+- [vuepress-plugin-smooth-scroll](https://vuepress-community.netlify.app/zh/plugins/smooth-scroll/#vuepress-plugin-smooth-scroll)
## 架构
diff --git a/packages/docs/docs/zh/plugin/official/plugin-register-components.md b/packages/docs/docs/zh/plugin/official/plugin-register-components.md
index bae3c827b4..84f0542bbf 100644
--- a/packages/docs/docs/zh/plugin/official/plugin-register-components.md
+++ b/packages/docs/docs/zh/plugin/official/plugin-register-components.md
@@ -5,7 +5,7 @@ metaTitle: 注册组件的插件 | VuePress
# [@vuepress/plugin-register-components](https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/plugin-register-components)
-> register-components plugin for VuePress
+> 注册组件的插件
## 安装
diff --git a/packages/docs/docs/zh/theme/default-theme-config.md b/packages/docs/docs/zh/theme/default-theme-config.md
index 7d3a442b56..b8e167b796 100644
--- a/packages/docs/docs/zh/theme/default-theme-config.md
+++ b/packages/docs/docs/zh/theme/default-theme-config.md
@@ -508,16 +508,20 @@ pageClass: custom-page-class
---
```
-然后你就可以写专门针对该页面的 CSS 了:
+只能在 `.vuepress/styles/index.styl` 中编写针对该页面的 CSS :
``` css
-/* .vuepress/override.styl */
+/* .vuepress/styles/index.styl */
.theme-container.custom-page-class {
/* 特定页面的 CSS */
}
```
+::: tip 注意
+自定义样式应该写在 [index.styl](/config/#index-styl) 内, 该文件可以让你方便地添加或覆盖样式.
+:::
+
## 特定页面的自定义布局
默认情况下,每个 `*.md` 文件将会被渲染在一个 `` 容器中,同时还有侧边栏、自动生成的编辑链接,以及上 / 下一篇文章的链接。如果你想要使用一个完全自定义的组件来代替当前的页面(而只保留导航栏),你可以再次使用 `YAML front matter` 来指定这个组件。
diff --git a/packages/docs/package.json b/packages/docs/package.json
index 41d430892a..bbea9e3b89 100644
--- a/packages/docs/package.json
+++ b/packages/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "docs",
- "version": "1.8.1",
+ "version": "1.8.2",
"private": true,
"description": "docs of VuePress",
"keywords": [
@@ -29,11 +29,11 @@
},
"devDependencies": {
"@textlint-rule/textlint-rule-no-unmatched-pair": "^1.0.7",
- "@vuepress/plugin-back-to-top": "1.8.1",
- "@vuepress/plugin-google-analytics": "1.8.1",
- "@vuepress/plugin-medium-zoom": "1.8.1",
- "@vuepress/plugin-pwa": "1.8.1",
- "@vuepress/theme-vue": "1.8.1",
+ "@vuepress/plugin-back-to-top": "1.8.2",
+ "@vuepress/plugin-google-analytics": "1.8.2",
+ "@vuepress/plugin-medium-zoom": "1.8.2",
+ "@vuepress/plugin-pwa": "1.8.2",
+ "@vuepress/theme-vue": "1.8.2",
"remark-cli": "^9.0.0",
"remark-lint": "^6.0.5",
"remark-preset-lint-consistent": "^2.0.3",
@@ -48,7 +48,7 @@
"textlint-rule-terminology": "^2.1.4",
"textlint-rule-write-good": "^1.6.2",
"vue-toasted": "^1.1.25",
- "vuepress": "1.8.1",
+ "vuepress": "1.8.2",
"vuepress-plugin-flowchart": "^1.4.2"
}
}
diff --git a/packages/vuepress/package.json b/packages/vuepress/package.json
index 8a7ab1ceb8..d621f9328e 100644
--- a/packages/vuepress/package.json
+++ b/packages/vuepress/package.json
@@ -1,6 +1,6 @@
{
"name": "vuepress",
- "version": "1.8.1",
+ "version": "1.8.2",
"description": "Minimalistic doc generator with Vue component based layout system",
"keywords": [
"documentation",
@@ -29,8 +29,8 @@
">1%"
],
"dependencies": {
- "@vuepress/core": "1.8.1",
- "@vuepress/theme-default": "1.8.1",
+ "@vuepress/core": "1.8.2",
+ "@vuepress/theme-default": "1.8.2",
"cac": "^6.5.6",
"envinfo": "^7.2.0",
"opencollective-postinstall": "^2.0.2",