Bug Fixes
- bundler-webpack: allow UPPERCASE file extension (#1642) (f674742)
Code Refactoring
BREAKING CHANGES
- core: the
headers
field has been removed from page data, but it's still available on page object
Features
- client: add onContentUpdated composition API (#1620) (cd7252f)
- client: improve client data types (#1626) (8bd5438)
- client: improve devtools and export constants (close #1625) (4a105cb)
Features
- bundler-vite: upgrade vite to v6 (faddbe6)
Bug Fixes
Features
- core: improve user config file loading (#1615) (01f6ab3)
- markdown: add isExternal option for linksPlugin (close #1611) (41214eb)
- utils: sync latest sanitizeFileName logic from rollup (#1614) (aaf3bba)
Bug Fixes
- shared: revert unexpected type changes (close #1610) (d21a934)
Features
- client: upgrade vue devtools-api to v7 (7940a3d)
Bug Fixes
- core: handle templateBuildRenderer option correctly (427e3cc)
- core: make
content
have higher priority than filePath
in page options (12dbc67)
- vuepress: update required node version (98a1830)
Features
- bundlerutils: add bundlerutils package (5488138)
- upgrade to vue 3.5 (d43bf23)
Features
- bundler-vite: add client type export (close #1579) (#1580) (e3ed143)
- bundler-vite: upgrade vite to v5.4 (close #1598) (97af89c)
- bundler-webpack: add api field in sass-loader option type (#1588) (f3251b7)
- bundler-webpack: normalize loader options type (679cf8f)
Features
- bundler-vite: upgrade vite to v5.3 (68d3dbc)
- markdown: support single line code import syntax (close #1355) (34e291e)
Bug Fixes
- bundler-vite: exclude vite 5.2.12 from version range (close #1573) (1b77850)
Bug Fixes
- client: support non-ascii locale path (01ee546)
- core: fix page redirects comparison (#1563) (90a11d9)
- fix route resolving error with hash and queries (close #1561) (#1562) (4df59d4)
Code Refactoring
Features
- bundler-webpack: enable css-modules for .module.css files (close #1557) (#1560) (10378e1)
- bundler-webpack: replace postcss-csso with lightningcss (close #1349) (c854b19)
- bundler-webpack: replace webpack-chain with webpack-5-chain (close #1503) (#1566) (21ae915)
- core: allow non-default-export client config file (#1564) (d3b3cc4)
BREAKING CHANGES
- markdown:
markdown.code
option is remove. Please use @vuepress/plugin-shiki
and @vuepress/plugin-prismjs
instead.
- bundler-webpack: For webpack bundler, css-modules will be enabled for
*.module.[ext]
files. The previous *.[ext]?module
usage is no longer supported.
Features
- client: improve AutoLinkProps (#1554) (0777d09)
- client: support slot props in AutoLink (630e29a)
Bug Fixes
- bundler-vite: disable server.fs.cachedChecks by default (close #1526) (bab6ae9)
- client: fix siteLocaleData type (#1529) (1825636)
- client: keep full path during route navigation (close #1514) (#1527) (e6455e0)
- core: transform file path to chunk name (close #1531) (d584ee3)
- markdown: fix query parsing and absolute link fallback in linksPlugin (close #1536) (#1537) (5082b3d)
- shared: check external link correctly (#1543) (34e240c)
- shared: check link with protocol correctly (#1542) (8b1ab67)
Features
- client: add AutoLink component (#1546) (8eb722f)
- client: export ResolvedRoute type (#1525) (950f158)
- client: support relative link in RouteLink (#1545) (7c8f271)
- core: allow null permalink in frontmatter to disable permalink (#1547) (becebb2)
- enable hydration mismatch details in debug mode (#1530) (b752f9c)
- markdown: upgrade markdown-it type to v14 (0a5d4eb)
- shared: support relative links in normalizeRoutePath (#1544) (c443a95)
- shared: use non-capture group for resolveRoutePathFromUrl (#1539) (2bbb2b2)
Bug Fixes
Bug Fixes
- bundler-webpack: inject all vue feature flags explicitly (c645d1a)
- client: make layouts client config optional (close #1494) (27a88ec)
- client: remove usage of vueuse (close #1500) (b352c09)
Features
- bundler-vite: bump vite to 5.1 (b2e322a)
- bundler-webpack: bump webpack-dev-server to v5 (a250c76)
- client: throw error when layout does not exist (158b12c)
Reverts
- refactor(client): handle page data hmr by checking pageChunk ref (bb96427)
Features
- client: add useClientData composable (37f646b)
Bug Fixes
- shared: handle query and hash in normalizeRoutePath (c1dbc2c)
Features
- client: export useRoute and useRouter (eb13cb0)
Bug Fixes
- markdown: keep base if link tag is not updated (073e21d)
- shared: improve normalizeRoutePath edge cases handling (f2247bb)
Features
- client: add RouteLink component (d4dbcc6)
Bug Fixes
Features
- cli: add link for troubleshooting docs (5281a42)
BREAKING CHANGES
- vue-router's route records have been replaced by custom route records to get better performance. It should not break common usage, but could be a potential breaking change for some themes. vue-router is suitable for SPAs, but not for static sites. It has a negative impact on the performance of vuepress sites, especially large-scale ones. In the long run we'll replace vue-router with a light-weighted custom router totally.
Bug Fixes
- bundler-vite: add vuepress to client packages list (#1473) (5771dbb)
Bug Fixes
- bundler-vite: serve assets with absolute path in dev server correctly (close #1442) (d0b4062)
- client: avoid updating existing head tags (close #1268) (#1314) (bfbab28)
- client: merge locales head correctly (2fe35bb)
- markdown: use non-greedy matching when parsing attributes (#1469) (91d8e3d)
Features
- bump to vue 3.4 (7f192ea)
- cli: update config file build target to node18 (66d20fc)
- cli: update info command to include more binaries and remove ecosystem packages (84b5c80)
- markdown: add absolutePathPrependBase option for assets plugin (634af03)
- markdown: add title support for code blocks (close #1277) (#1456) (706a427)
- markdown: bump to markdown-it 14 (5abdcdf)
- markdown: update default anchor permalink function (close #1363) (#1452) (f7d6dde)
- vuepress: add client-types export (#1460) (57bb91b)
- vuepress: add more exports and bin shorthands (close #1446) (#1449) (3a32e0a)
BREAKING CHANGES
- vuepress:
vuepress-vite
and vuepress-webpack
packages have been removed, and the corresponding commands have been moved to vuepress
package. With vuepress
command, you need to install bundler package and set bundler in config file manually. With vuepress-vite
and vuepress-webpack
command, you still need to install bundler package, but you can omit bundler option in config file.
- markdown: the default permalink function of markdown-it-anchor has been changed from
ariaHidden
to headerLink
for better accessibility, which would be a potential breaking change for theme authors
- markdown: bump to markdown-it 14
Bug Fixes
Features
- upgrade to vite 5 and esbuild 0.19 (e1e9ec3)
Build System
Features
- core: support templateBuildRenderer in app options and theme api (close #1120) (0b0108d)
- theme-default: sync code group status (close #541) (7078dd5)
- utils: add templateRenderer utils (fe8ea2a)
BREAKING CHANGES
- utils: the outlets of templateBuild has been updated, see
TEMPLATE_RENDERER_OUTLETS
in @vuepress/utils
package
- drop support for node 16
Bug Fixes
Reverts
- fix(client): avoid mismatching between route path and page data (close #1249) (#1361) (73e55f0)
Bug Fixes
Features
- plugin-git: remove duplicate no-reply contributors (#1364) (3ff1b06)
Bug Fixes
- plugin-active-header-links: remove force replace when updating hash (#1360) (fa6b9ea)
- client: use eager computed for routeLocale (9d85d4f)
- client: use eager computed for routePath to avoid extra route locale resolving (aacff56)
- core: reduce pageRoutes size (#1274) (08cf419)
Bug Fixes
- plugin-medium-zoom: avoid inject error in ssr mode (close #1338) (#1339) (5a56c9b)
- theme-default: fix languages locale config (close #1345) (2edad72)
Bug Fixes
- core: ensure page.title isString (close #1306) (#1308) (644b406)
- plugin-docsearch: allow using slash key to init docsearch (#1323) (3382bb1)
- plugin-theme-data: remove locales field in themeLocaleData (close #1287) (#1313) (d91996f)
Build System
Features
- bump vue to 3.3 (#1327) (bebadea)
- bundler-vite: bump vite to 4.3 and temporarily remove manualChunks (#1328) (031563e)
- markdown: support relative image links without
./
(#1103) (b7d71be)
- theme-default: improve css variable acquisition (#1322) (eb0d0ea)
BREAKING CHANGES
- markdown: for markdown image syntax

, paths without ./
or /
or protocol will be treated as relative links
- drop support for node 14
Bug Fixes
- client: avoid updating routeLocale on route hash change (#1253) (5eb9489)
- markdown: render token attrs in code block (#1220) (b4e313b)
- theme-default: fix site name text overflow style (#1260) (95363a5)
Features
Bug Fixes
- markdown: avoid extracting headers in nested blocks by bumping mdit-vue (close #1201) (ecd3716)
- theme-default: fix word breaking (close #1209) (#1210) (1e7761f)
- theme-default: preserve url params when switching language (#1211) (941b2fe)
Features
- client: improve default head title resolver (c688270)
- plugin-docsearch: add injectStyles option (close #948) (#1208) (34fb6c2)
Bug Fixes
- bundler-webpack: fix order of extensionAlias (close #1082) (28eeb9b)
Bug Fixes
- bundler-webpack: avoid duplicated style preload (e484a55)
- bundler-webpack: fix module identifier matching (9d8d645)
- bundler-webpack: partially fix ssr dependencies issue (83e7b6c)
Bug Fixes
Build System
- bump to vite 4 and rollup 3 (5fac2e6)
Code Refactoring
Features
- client: add VUEPRESS_BASE constant (fe047fe)
BREAKING CHANGES
- bump to vite 4 and rollup 3
excerpt
has been removed from page object and page data
Reverts
Bug Fixes
- bundler-vite: fix regression of vite options merging (close #1184) (998eb94)
Bug Fixes
- bundler-vite: make user config have the highest priority (#1092) (91cc59e)
- client: allow double quotes in head tag (close #1174) (#1176) (69956c0)
- client: async load client configs to avoid circular deps (close #1154) (b0a7a0e)
- markdown: support single quotes in img tag (close #937) (#1104) (7dae33a)
Features
BREAKING CHANGES
- utils:
@vuepress/utils
no longer exports chalk
, use colors
instead
Features
- cli: print help messages if no matching command (bcc2208)
Reverts
Bug Fixes
- bundler-vite: exclude user-config plugin from optimizeDeps (#1135) (4285cf8)
- bundler-vite: test page component files correctly (close #1056) (bcf6033)
- cli: import envinfo correctly (close #1059) (4476404)
- plugin-search: avoid triggering hotkey while typing (#1125) (7b2e3fa)
- plugin-search: fix mutiple search icon on iPad (close #1004) (#1106) (b5df79d)
- plugin-search: unify breakpoint with default theme (#1091) (a1773d9)
- theme-default: improve responsive layout (#1102) (c63bd4a)
Features
- add type attribute for prefetch link tags (#1095) (cd3b569)
- bundler-vite: auto load postcss plugins from postcss config files (#1088) (0f49c47)
- bundler-vite: improve chunk splitting (#1101) (00b8366)
- bundler-vite: set esbuild output charset to utf-8 (close #1129) (#1133) (10dd348)
- client: improve default page head title resolver (#1078) (2d6343e)
- markdown: set extension of code fences in data-ext attribute (#1132) (f1947f4)
- plugin-google-analytics: add debug option (#1001) (0f46ac7)
- plugin-shiki: bump shiki to 0.11 (#1111) (06e3f55)
- theme-default: add heroHeight frontmatter for home page (81398d5)
BREAKING CHANGES
- markdown: the
ext-xxx
class name of code fences has been removed
Bug Fixes
- bundler-vite: do not change output entry of client bundle (close #1043) (b3565cb)
- bundler-webpack: add extensionAlias config (697e7ae)
- core: resolve app version correctly (2a93513)
Features
- client: make args of defineClientConfig optional (e418e02)
- support layouts option in client config (#1053) (a67a0bf)
- reduce memory usage during rendering (ea0a2b2)
BREAKING CHANGES
- theme API
layouts
has been removed, layouts should be set in client config instead of theme entry
404
layout should be renamed to NotFound
layout
- node API
app.layouts
has been removed
Bug Fixes
- cli: handle config file __dirname correctly (8171f4d)
- plugin-active-header-links: keep query when updating hash (close #991) (0fdb021)
- plugin-docsearch: handle navigation url correctly (close #1024) (b6ded16)
- theme-default: fix initial open state of sidebar item (392297f)
- workaround for vite hash issue (close #1008) (f8cdc9e)
Code Refactoring
- markdown: bump sfc plugin to v0.9 (b0fc856)
Features
- client: add devtools custom inspector (5568abe)
- core: pass isServer flag to alias and define hooks (7862813)
- migrate to pure ESM (#1030) (d283ffe)
BREAKING CHANGES
- VuePress is now published as pure ESM packages
- CommonJS config file is not supported anymore
- markdown: type of node-api
page.sfcBlocks
has been changed
Bug Fixes
- bundler-vite: handle process.env replacement in dev (20f8a3f)
- cli: check dest path correctly (close #954) (6a18c91)
- theme-default: fallback select language aria-label correctly (d450478)
- theme-default: fix 404 page style regression (close #963) (6a26f0b)
- theme-default: fix minor issues of collapsible sidebar (close #967) (022e611)
- theme-default: make headings anchor non-selectable (#973) (5020fc1)
Code Refactoring
- markdown: externalize custom component plugin (a1909c0)
- markdown: externalize headers and title plugin (8441569)
- markdown: externalize sfc plugin (a23aaa1)
Features
- markdown: support frontmatter options (6056e37)
- theme-default: try to keep current hash across languages (a13c1e7)
- utils: add isChildPath util (698e599)
BREAKING CHANGES
- markdown:
markdown.extractHeaders
has been renamed to markdown.headers
- markdown:
markdown.extractTitle
has been renamed to markdown.title
- markdown:
markdown.hoistTags
has been renamed to markdown.sfc
- markdown: node-api
page.hoistedTags
has been renamed to page.sfcBlocks
- markdown:
markdown.customComponent
has been renamed to markdown.component
Bug Fixes
- plugin-docsearch: keep base in result items (close #933) (35ebc91)
- shared: check markdown links correctly (252f4ac)
- replace object literals with json when generating client codes (6db42f0)
Bug Fixes
- plugin-active-header-links: remove hash at page top (close #913) (#920) (268fa6d)
- plugin-docsearch: fix search modal on mobile (52fda1e)
- plugin-docsearch: use min-width to avoid layout shift after initialization (b208be5)
- theme-default: fix header anchor offset regression (e4b4ded)
Features
- bundler-vite: enable vue prod devtools in debug mode (39fe57b)
- bundler-webpack: enable vue prod devtools in debug mode (4acc725)
- core: support permalinkPattern in app options (close #778) (#834) (07fbe43)
- markdown: support markdown.slugify option (0143ba6)
- plugin-pwa: improve types definition (e7590f4)
- plugin-search: improve search input hotkeys (close #746) (#831) (c98d70a)
- theme-default: support
colorMode
and colorModeSwitch
options (close #796) (d89cf86)
- bundler-vite: only apply workaround plugin for serve (05b88e6)
BREAKING CHANGES
- theme-default:
darkMode
has been replaced with colorMode
and colorModeSwitch
- theme-default:
toggleDarkMode
has been renamed to toggleColorMode
Bug Fixes
- core: wrap page content to avoid issues of fragment (close #688) (fb76656)
- markdown: resolve srcset attr of html img tags (close #809) (#818) (ea53747)
- plugin-pwa-popup: fix component setup regression (close #903) (3daecdd)
- plugin-pwa: make the options optional (e781f0a)
- theme-default: access dom after mounted (#895) (68be74d)
- theme-default: use lighter bg color for inline code (0c9b5ce)
Features
- bundler-vite: use development mode when debugging (77dc5fc)
- bundler-webpack: use development mode when debugging (close #734) (977114e)
- plugin-external-link-icon: add frontmatter type (964c308)
- plugin-git: support gitInclude frontmatter (close #449) (#460) (4f5a9af)
- theme-default: add page-content-top and page-content-bottom slots (close #857) (51f30a2)
Bug Fixes
- theme-default: allow non-url-encoded filename in theme config (close #884) (dd1d240)
Features
- cli: add check for base and dest config (c060a6c)
- cli: allow .cjs config file (e1152d1)
- core: merge all client files hooks into clientConfigFile (#888) (ad8b5a8)
- markdown: improve line-number DOM structure (#819) (d938852)
- markdown: prepend base to absolute links to markdown files (close #653) (e4155a0)
- theme-default: normalize html and body font-size (#817) (fd26901)
BREAKING CHANGES
- markdown: now absolute links to markdown files will be treated as internal links, and do not need to prepend
base
manually
- core:
clientAppEnhanceFiles
, clientAppRootComponentFiles
and clientAppSetupFiles
hooks are removed, use clientConfigFile
hook instead
- core: conventional file
.vuepress/clientAppEnhance.{js,ts}
has been renamed to .vuepress/client.{js,ts}
, and the usage has been changed too
Bug Fixes
- avoid processing extendsBundlerOptions hook twice in build (close #863) (8d69ffb)
- bundler-vite: only set client packages in noExternal (close #866) (ff62e2a)
- cli: avoid bin name conflicts (close #869) (6d7db43)
Features
- markdown: support vPre for inline code (close #683) (ef2a014)
BREAKING CHANGES
- markdown: type of
code.vPre
option changed from boolean
to
Record<'block' | 'inline', boolean>
Build System
Features
- core: support extendsBundlerOptions hook (9c56052)
BREAKING CHANGES
Bug Fixes
- bundler-vite: add client package to peerDependencies (a82fc60)
- plugin-nprogress: fork nprogress to local (45770b1)
Bug Fixes
- allow building multiple times in the same dest dir (close #772) (30bb4a8)
- bundler-vite: disable scss charset by default (f3f8772)
- bundler-vite: fix build failure when there are no css files (close #697) (#829) (f6101a5)
- bundler-vite: remove redundant use of postcss-csso (close #759) (00c27c3)
- client: support hot-reload of frontmatter head (effa95f)
- plugin-active-header-links: do not append hash at page top (close #693) (#722) (f71cb50)
- plugin-palette: fix sass import when path contains spaces (close #481) (#814) (bbea812)
Code Refactoring
- drop support for using bundler, theme and plugins by name (#843) (b85b1c3)
Features
- cli: enable sourcemap for ts files (close #457) (bf8c4bc)
- core: enable prefetch by default (9d40851)
- markdown: bump markdown-it to v13 (09a3637)
- markdown: improve code fence language detection (close #752) (#815) (1c4d237)
- plugin-docsearch: remove preact dependency (bb4a2ca)
BREAKING CHANGES
- config
bundler
should import the bundler directly, and bundlerConfig
has been removed
- config
theme
should import the theme directly, and themeConfig
has been removed
- config
plugins
should import the plugins directly
- theme API
plugins
should import the plugins directly
- theme API
extends
should import the parent theme directly
- plugin function and theme function should no longer accept user options as the first param, please check out the guide for how to write a plugin and a theme
- core: default value of
shouldPrefetch
option has been changed from false
to true
Bug Fixes
- bundler-vite: clear file hash in workaround plugin (close #800) (3569cd9)
Features
- bundler-vite: bump to vite 2.9 (close #781) (7b3e88e)
- core: support frontmatter type param in Page type (close #638) (6a4733f)
BREAKING CHANGES
- core: the generics type params of Page type has been changed
Bug Fixes
- theme-default: fallback external-link-icon when the plugin is disabled (close #766) (#769) (3628fbf)
Features
- plugin-docsearch: add debounce on search (close #216) (#771) (c82f735)
- plugin-docsearch: bump docsearch to 3.0.0 (close #718) (#721) (85819c3)
- theme-default: enhance header dropdown experience (#736) (ad530e7)
- theme-default: scroll active sidebar item into view (#698) (08b9e9a)
Reverts
- feat(theme-default): enhance header dropdown experience (#736) (#786) (856be61)
Bug Fixes
- avoid user content to be used as string params (close #727) (788afda)
- bundler-webpack: allow
configureWebpack
option to return void (#662) (4488cb3)
- theme-default: fix title style when no content in custom container (close #648) (#657) (73d297f)
- use function to pass a single default slot in render function (close #716) (4550161)
Features
- cli: watch page dependencies on dev (e6ed487)
- markdown: add aria-hidden for line-numbers (#731) (6f5d132)
Bug Fixes
- cli: watch user config correctly on win32 (close #611) (055b174)
Features
- client: allow customizing global computed resolvers (close #338) (405fc8d)
Bug Fixes
- theme-default: add missing color transitions (0955c9f)
- theme-default: highlight sidebar heading when used as a link (close #628) (1a5f4fb)
Code Refactoring
Features
- client: add vue-devtools support (a19d945)
- plugin-docsearch: bump docsearch version to support translations (47a0ef1)
- plugin-external-link-icon: add locales option (#636) (c7f0c43)
- plugin-theme-data: add devtools support (dab437c)
- theme-default: improve sidebar a11y (close #604) (8033b82)
BREAKING CHANGES
@vuepress/plugin-debug
package has been removed
Bug Fixes
- core: should process page hooks inside createPage (e1cbab5)
- markdown: replace img src correctly when wrapped with other html tags (close #597) (f2f53ef)
- theme-default: bump vueuse to avoid localstorage error (close #589) (#612) (7558681)
Features
- core: allow theme to set default HTML templates (4fb7b55)
- plugin-shiki: bump shiki to 0.10.0 (9d42e56)
- theme-default: imporve dark mode experience (close #387) (c20a1ba)
- theme-default: make all non-global components replaceable (f480bb2)
Bug Fixes
- theme-default: avoid transition on fragment child (close #592) (10e5cc0)
Code Refactoring
- core: normalize core app structure (6952acf)
Features
- shared: improve types of site base (66943fb)
BREAKING CHANGES
- core: config
templateSSR
is renamed to templateBuild
Bug Fixes
- theme-default: code line numbers unaligned in different display scale (close #499) (21accb5)
- theme-default: remove focus-visible outline (close #359) (cfbaa14)
Features
- theme-default: support collapsible sidebar (close #397) (c7fd815)
Bug Fixes
- plugin-back-to-top: fix regression when upgrading ts-debounce (close #579) (7a6a45b)
- theme-default: arrows not displaying in page nav (#573) (2d5b084)
- theme-default: do not always wrap logo and hero image with client-only (6b4ee45)
Features
- bundler-webpack: add devServerSetupMiddlewares option (4a042a4)
BREAKING CHANGES
- bundler-webpack:
beforeDevServer
and afterDevServer
options are removed, use devServerSetupMiddlewares
instead
Bug Fixes
- core: set default bundler option to vite (3fd11f5)
- core: use theme after its plugins (fc5bd91)
Features
- extract external link icon to plugin (437b750)
- theme-default: export default locale options (e3ac623)
BREAKING CHANGES
- config
markdown.links.externalIcon
is removed, use plugin-external-link-icon instead
- frontmatter
externalIcon
is removed, use externalLinkIcon
from plugin-external-link-icon
- component
OutboundLink
is removed, use ExternalLinkIcon
from plugin-external-link-icon
Bug Fixes
- bundler-vite: flatten the plugins structure to avoid ordering issue (close #535) (b4011ac)
- theme-default: fix kbd color in dark mode (#503) (31bea57)
- theme-default: use browser default locale in last updated date (#462) (3746e66)
Features
- core: replace extendsPageData with extendsPage hook (827a873)
- core: support extendsMarkdownOptions hook (a1fc69b)
- core: support routeMeta in frontmatter (93cdb53)
- theme-default: make the arrows in page nav clickable (#540) (e7b31fd)
- theme-default: support heroImageDark frontmatter (close #526) (#559) (779ddaa)
- vuepress-webpack: add vuepress-webpack package (a2d9c9a)
- vuepress: switch default bundler to vite (e1004df)
BREAKING CHANGES
- vuepress: switch default bundler from webpack to vite
- core: now
app.markdown
is only available in and after onInitialized
hook
- core: now
extendsPageOptions
hook does not allow a return value any more
- core:
extendsPageData
hook should be migrated to extendsPage
hook
Bug Fixes
- shared: treat ftp links as external (close #456) (9894b56)
- theme-default: avoid ssr-mismatch of dark mode logo (close #453) (aaf1152)
- theme-default: fix code overflow-wrap in Safari (close #435) (6e6fe4f)
- theme-default: hero actions spacing on small devices (close #381) (#442) (288927a)
Features
- bundler-vite: compat with vite 2.6 (bad82eb)
- shared: add isLinkFtp util (b8f35c9)
- theme-default: support editLinkPattern frontmatter (close #450) (edecf2d)
Bug Fixes
- client: fix aria-hidden attribute of OutboundLink (close #427) (#432) (0575ba9)
- client: fix wrong attrs selector when loading head tags (close #426) (5654685)
- core: use absolute path when creating pages (close #421) (0a2f7dc)
Features
- theme-default: support navbar and sidebar slot for Layout.vue (a42e431)
BREAKING CHANGES
- core: now
PageOptions
does not accept relative file path
Bug Fixes
- plugin-git: add HEAD into git shortlog arguments (close #205) (#398) (9be4de1)
- theme-default: improve the style for non-square logo (#386) (ff7c57f)
Code Refactoring
Features
- bundler-webpack: bump webpack-dev-server to 4.0.0 (6e3fc32)
BREAKING CHANGES
- client constants should add
VUEPRESS
prefix now
Bug Fixes
- plugin-pwa: compat with workbox-build 6.2.2 (close #361) (f28e4cb)
- theme-default: avoid recursive ref update in code-group (ca8404a)
Code Refactoring
- client: move built-in meta tags to default html template (close #358) (e5c0fec)
Features
- theme-default: add
logoDark
locale option (close #283) (991c07a)
- theme-default: add css variables for transition (#325) (2b09004)
- theme-default: improve a11y and animation of sidebar button (#365) (c99861e)
- theme-default: store dark mode state in local storage (close #335) (9582b3b)
BREAKING CHANGES
- client: the previous built-in meta tags should be manually added to custom html template
Bug Fixes
- markdown: encode file path when coverting links (close #306) (920c9ac)
- theme-default: use constant color for inserted token (close #296) (4596028)
Features
- bundler-webpack: bump webpack-dev-server to 4.0.0-rc.0 (816da00)
- core: store page data in page object (close #319) (c7d3710)
- core: support paths without html extension (close #292) (#324) (1d41365)
- markdown: support
code.lineNumbers
to be set to number (close #231) (#276) (a7fbdec)
- theme-default: add
toggleDarkMode
locale option (#275) (a685a1b)
- theme-default: add missing transitions (066c6e4)
- theme-default: enhance color transitions (#287) (9b96871)
- theme-default: enhance color transitions (#321) (aeaa3ba)
- theme-default: set dark mode color-scheme (#289) (0b3abd3)
- theme-default: support page slot for Layout.vue (a8de0a9)
BREAKING CHANGES
- core: now
extendsPageData
hook is processed before onInitialized
hook
Bug Fixes
- bundler-vite: fallback html requests to index.html (close #265) (665cda3)
- markdown: resolve assets links in html img tags (close #254) (7cbb163)
- plugin-active-header-links: update active header link selector (#259) (adaeed5)
- theme-default: break long links on overflow (close #266) (#273) (eb970c3)
Bug Fixes
- client: avoid duplicate slash after base in withBase util (close #246) (af9ceff)
- markdown: filter permalink symbol in toc (close #251) (5a35806)
- theme-default: fix nav glitch at exactly 719px screen width (#238) (3154fbb)
- theme-default: use default cursor on non-link sidebar items (ca22d4f)
Features
- bundler-vite: avoid global constants being replaced by vite (close #244) (#245) (0c86968)
Bug Fixes
- core: invoke extendsPageOptions hook in createPage (76292aa)
Features
- markdown: bump markdown-it-anchor to 8.0.4 (41338f7)
- plugin-pwa: bump mitt to 3.0.0 (8e2eb33)
- theme-default: refine sidebar config (ea7c4bb)
BREAKING CHANGES
- markdown:
markdown.anchor
has changed, see changelog of markdown-it-anchor 8.0.0
- theme-default:
isGroup
field of sidebar config is removed
- core: extendsPageOptions now accept page options as the first argument
Bug Fixes
- bundler-vite: resolve client entry url correctly (close #190) (36babba)
- bundler-webpack: sync types of webpack-dev-server 4 (close #208) (207014b)
Features
- bundler-webpack: support vue-loader options (5a51912)
- theme-default: support activeMatch in navbar config (ab0c6d1)
- theme-default: support disabling dark mode (6517ce1)
Bug Fixes
- plugin-search: disable default form action on Enter key (#189) (81b5b24)
- plugin-toc: exclude h1 header in toc (5e96641)
- theme-default: exclude h1 header in sidebar (280626d)
- theme-default: show outline of toggle-dark-button (bc94de0)
Code Refactoring
- core: drop support for plugin nesting (f7da97f)
- core: resolve page title from markdown env (09d08a4)
Features
- cli: watch dependencies of user config file (b220524)
- markdown: add extract-title plugin (e0a1556)
- bundler-vite: make server build lighter (a6ddea5)
BREAKING CHANGES
- core: a plugin cannot use other plugins anymore
- core: markdown emoji syntax is not supported in frontmatter title
Bug Fixes
- theme-default: avoid long inline code breaking the layout (#180) (ada2e2a)
- theme-default: fix error of sidebar resolving (close #185) (6a96af0)
- theme-default: respect root-level custom container config (close #175) (f2ad5f0)
Features
- core: support multi-level theme inheritance (5df8662)
- theme-default: improve a11y of CodeGroup (#163) (2b76463)
BREAKING CHANGES
- core:
app.themeApi
is removed
- theme-default: default title of danger container is changed to "DANGER"
Bug Fixes
- plugin-pwa-popup: increase default z-index (67242e8)
- theme-default: increase medium-zoom delay (9c92443)
Features
- bundler-vite: configure postcss by default (6197578)
- plugin-back-to-top: add z-index variable (3d7d4a4)
- plugin-medium-zoom: add more css variables (close #174) (d717800)
- plugin-nprogress: add z-index variable (151e087)
- plugin-pwa-popup: add more css variables (3ae6f72)
Bug Fixes
- markdown: decode assets link to ensure bundler can find the file (#144) (d3e5409)
- theme-default: handle rotate events on iPad (#150) (bbdda60)
- theme-default: show header anchors when being focused (#164) (8de5f0f)
Features
- bundler-webpack: bump webpack-dev-server to 4.0.0-beta.3 (2e86826)
- cli: allow setting default app config (41f9dc6)
- plugin-search: add --search-bg-color variable (6c778a8)
- plugin-search: improve a11y support (#165) (205aafe)
- theme-default: support dark mode (close #29) (680e429)
- theme-default: support full link for github repo (#152) (8a5055b)
- theme-default: support Gitee repo (5cad664)
BREAKING CHANGES
- theme-default: most sass variables are migrated to css variables
Bug Fixes
- bundler-vite: compat with vite 2.3 changes (close #134) (1370984)
- core: avoid mutating theme layouts array (fe27a57)
Features
- core: allow alias and define hook to return a promise (3b3d289)
Bug Fixes
- bundler-vite: make site base work in vite dev (close #126) (d257e01)
- core: path of page options should have the highest priority (0fc6fd3)
- markdown: ensure ending newline in import code (160df2d)
Features
- markdown: allow omitting start or end of import code lines range (21bba5c)
Bug Fixes
- core: avoid uri encoded filename (4ff7f3b)
- theme-default: align the font of line numbers with code blocks (close #124) (#125) (a3ea87d)
Features
- core: add deps to page object (83c9aae)
- core: make filePath available in markdown env (aa52549)
- markdown: support import code blocks (close #15) (fe20ccc)
- core: reduce page data and component file size (4c6eea5)
- core: reduce routes file size (d926a17)
BREAKING CHANGES
- core:
pagePath
prop of <Content>
renamed to pageKey
Bug Fixes
- bundler-vite: make the timestamp of client entry consistent (4bbff4c)
- core: merge page routes to reduce requests in vite dev (fa2a614)
- do not register hooks in dev mode for prod-only plugins (d5af139)
- specify optimizeDeps for vite dev (0d77331)
Bug Fixes
- bundler-vite: avoid client code to be optimized or externalized (f8a088d)
- bundler-vite: disable clearScreen in dev by default (e7bfe49)
- cli: do not clean cache and temp on restart (047a52c)
- client: implement ClientOnly correctly (e27872d)
- client: make hydration work properly (close #123) (34a5364)
- core: allow extendsMarkdown to return a promise (a4be2fd)
Features
- bundler-vite: bump vite to 2.2.1 to support cacheDir (d7f685b)
- client: support custom layout (c32866d)
- markdown: support externalIcon in config and frontmatter (#122) (d1389bc)
- plugin-search: add search plugin (close #35) (70bb066)
- theme-default: compat with docsearch and search plugin (cb00182)
- theme-default: support pageClass frontmatter (close #118) (809d575)
- theme-default: support sidebarDepth (b79ba90)
Bug Fixes
- core: allow plugin itself as an item of plugin config array (1fa8903)
- core: ensure trailing slash of page path (close #114) (cbcf166)
- markdown: do not escape extracted headers (close #117) (81b1336)
- plugin-back-to-top: fix back-to-top styles (933643a)
- theme-default: remove font-smothing in code block (41c281e)
Code Refactoring
- core: move evergreen option to bundler-webpack (58c30c1)
Features
- client: provide client types file (89a32b5)
- core: make frontmatter available in markdown env (f977192)
- plugin-palette: add watchers for palette and style files (0cf1b9b)
- plugin-register-components: add register components plugin (close #112) (6af204d)
- theme-default: add more palette variables for code styles (db8e0f4)
BREAKING CHANGES
- core:
evergreen
option is moved to bundlerConfig.evergreen
for bundler-webpack
Bug Fixes
- plugin-docsearch: provide default value for locales (close #107) (491eb64)
- plugin-pwa-popup: provide default value for locales (f7cbc15)
Code Refactoring
- core: resolve theme when creating app (fa683cb)
- normalize themes and plugins structure (7781172)
Features
- markdown: support internalTag option in links plugin (1872ad9)
- utils: add logger.createError method (0c198d7)
BREAKING CHANGES
- client API that provided by plugins should be imported from
plugin-foo/lib/client
- core: theme plugins could be overridden by user plugins now
Bug Fixes
- bundler-webpack: always extract css file in build mode (accc484)
- client: install vue-router after clientAppEnhance (close #100) (2f5450f)
- client: make page data hmr work as expected (374ae43)
- theme-default: allow direct img children to be zoomable (close #84) (832bd6f)
Features
- bundler-webpack: bump webpack-dev-server to 4.0.0-beta.2 (dd8c408)
- core: show warning when duplicate plugins are detected (742f581)
- plugin-toc: add toc plugin (0ea1720)
Reverts
- refactor(client): remove extra handling for router base (6205279)
Bug Fixes
- client: ensure page component is loaded before route resolve (598adf3)
- markdown: avoid wrapping highlighted code with multiple pre (f0b3872)
- plugin-prismjs: avoid loading languages multiple times (4af5005)
- theme-default: add active class to sidebar group heading (8dcb945)
- theme-default: allow NavLink in sidebar children (ea50010)
- theme-default: make navlink active in subpath (close #70) (4c865b1)
- theme-default: make nested sidebar groups work (4ada701)
- theme-default: make scrollBehavior work with transition (close #77) (4b8d0cf)
Features
- plugin-shiki: add shiki plugin (66bbcbd)
Bug Fixes
- bundler-vite: disable auto resolving vite config file (57967f7)
Code Refactoring
- markdown: remove default syntax highlighter (4a1abe3)
Features
- plugin-prismjs: add prismjs plugin (638ad8a)
- theme-default: use prismjs plugin (f131de4)
BREAKING CHANGES
- markdown: prismjs is no longer the default syntax highlighter
Bug Fixes
- bundler-vite: fix fs path on windows (close #74) (db3c3e8)
Features
- cli: show info of vite related packages (73a66df)
Bug Fixes
- bundler-vite: avoid optimizing client package (5708934)
- bundler-vite: workaround for vitejs/vite#2503 (055b280)
- plugin-nprogress: always optimize nprogress with vite (2aeb2bf)
Bug Fixes
- plugin-google-analytics: fix types (92aa486)
Features
- bundler-vite: add vite support :zap: (7d612c4)
- cli: add defineUserConfig util (c20f7b7)
- client: add defineClientAppEnhance and defineClientAppSetup utils (1520517)
- implement vite hmr (525c18d)
- theme-default: use sass as css pre-processor (7eb1fd8)
- vuepress-vite: add vuepress-vite package (03a6583)
BREAKING CHANGES
- theme-default: the palette system of default theme is migrated to sass
Bug Fixes
- cli: add theme-data plugin and rename palette plugin (97ce42b)
Features
- bundler-webpack: enable options API by default (e29b6e1)
- plugin-palette: add palette plugin (556a23c)
BREAKING CHANGES
- plugin-palette: migrate
@vuepress/plugin-palette-stylus
to @vuepress/plugin-palette
Bug Fixes
- markdown: do not treat autolink as a component (close #60) (9f6cffa)
Code Refactoring
- core: remove theme data from site data (187aef3)
Features
- plugin-theme-data: extract theme data injection to a plugin (e971e39)
BREAKING CHANGES
- core:
themeConfig
is not available in site data any more
Code Refactoring
- core: change page default date to 0000-00-00 (1ce602e)
- core: remove permalink and pattern from page options (9534989)
Features
- core: add extendsPageOptions hook (19b7e83)
- core: add watchers parameter to onWatched hook (0bcd594)
BREAKING CHANGES
- core: remove permalink and pattern from page options
- core: change page default date from 1970-01-01 to 0000-00-00
Bug Fixes
- markdown: remove site base from internal links (close #58) (a8c7fdd)
Bug Fixes
- client: only watch route path to update head (3174f5a)
- plugin-debug: avoid enabling in production mode (close #53) (9612282)
- feat(plugin-google-analytics)!: migrate to google analytics 4 (close #36) (d2393f7), closes #36
Features
- plugin-git: collect page created time (close #45) (4045a8c)
BREAKING CHANGES
- migrate to google analytics 4 and drop v3 support
Bug Fixes
- plugin-medium-zoom: always refresh medium-zoom with delay (2495f5d)
- theme-default: fix max width of navbar links wrapper (846e60c)
- theme-default: remove extra rem in styles (close #50) (9b1b852)
Features
- core: create siteData in vuepress app (05b87dd)
- core: make language available in page data (03bb09f)
Bug Fixes
- cli: add esbuild external (8d285ea)
Features
- core: add onWatched hook (9725a10)
- plugin-docsearch: allow more fields in locales config (ce1cf18)
Bug Fixes
- client: load existing head tags on mounted (15722c5)
- markdown: load some languages by default to partially avoid prism issue (48c085a)
- theme-default: fix homepage frontmatter type (9cf2d28)
- theme-default: fix sidebar config override (2c2c280)
- theme-default: make sr-only tags unselectable (0f6488e)
Features
- client: make usePageFrontmatter generic (2c5e5c1)
- shared: optimize frontmatter type and support generics (8a7025f)
- theme-default: add code-group custom container (d0a20aa)
- theme-default: add page transition (845cc2c)
- theme-default: allow html in homepage footer (87e0821)
- theme-default: optimize scrollbar style of sidebar (27abb26)
- theme-default: support multiple action buttons in homepage (close #23) (bb44710)
Bug Fixes
- bundler-webpack: add trailing slash to url (cbe4c7f)
Features
- cli: add --clean-temp option (752d725)
- theme-default: allow dropdown subtitle as a link (5fb6558)
Bug Fixes
- core: support special characters in filename and permalink (c3e68ef)
- markdown: fix assets relative path handling (close #33) (9a95431)
Features
- cli: show info of vue packages (2d19e84)
Bug Fixes
- core: fix site locale data type (7898500)
- theme-default: click to close dropdown that opened by tab and click (88d1ae2)
- theme-default: fix font-size of dropdown group title (563156c)
Features
- core: provide app in all plugin hooks (21cc3a6)
Reverts
- fix(theme-default): remove outline when focused on dropdown button (66d3feb)
Bug Fixes
- bundler-webpack: remove esbuild minimizer (4b3c00b)
- core: fix page date resolving (de6c5c8)
- plugin-docsearch: fix docsearch style issue (7550587)
- theme-default: assign default locale data (d59f55d)
- theme-default: fix overflow style of code block line-numbers (dd77cf4)
- theme-default: remove outline when focused on dropdown button (77842e3)
- theme-default: set font-size explicitly for h4 to h6 (a6459c0)
- vuepress: add a wrapper for cli bin (close #21) (2708ac3)
Bug Fixes
- markdown: only prepend prefix to explicit relative image path (8d6a095)
- plugin-git: replace -P with --no-pager for better compatibility (close #16) (f394c78)
Features
- cli: respect conventional clientAppEnhance files (close #20) (0777376)
Bug Fixes
- markdown: support v-on shorthand in html inline tags (86a1299)
- theme-default: fix navbar type to allow nested group (9ef46ae)
Features
- markdown: code-block-level config for line-numbers and v-pre (9ac3e4a)
Bug Fixes
- bundler-webpack: freeze webpack version (95523a2)
Bug Fixes
- theme-default: fix content headers styles (7ead1f6)
Features
Bug Fixes
- bundler-webpack: freeze version of prerelease packages (50d5fa0)
- cli: prepare pages entry if the page key is changed (4c79839)
- plugin-git: split arguments to get updated time (70e8b5e)
Bug Fixes
- bundler-webpack: display localhost by default in console (8bf0987)
- cli: remove shorthand of host option (8340797)
Features
- plugin-pwa-popup: extract pwa popup plugin (c3e8fb2)
- plugin-pwa: migrate pwa plugin (aa54fd6)
Bug Fixes
- bundler-webpack: fix windows compatibility (close #12) (f35f768)
Features
- bundler-webpack: migrate to webpack 5 (37dca96)
- client: remove built-in debug component (a5962bb)
- plugin-debug: add debug plugin (ddf0a92)
- shared: add esm build (f8463e7)
- theme-default: use debug plugin (e12b1f3)
Bug Fixes
- plugin-google-analytics: report site base (31c8cad)
- theme-default: fix code related styles (83d8a6f)
- theme-default: fix the condition of using router-link as nav-link (8141f69)
Features
- markdown: support doc lang highlight (dc91db6)
Bug Fixes
- bundler-webpack: remove spinner when preparing data (7f3b425)
- cli: keep message format consistent (1de416d)
- core: failed to resolve local theme (4d836e2)
- core: warn if layout directory does not exist (3d2d414)
Features
- cli: allow default export in user config file (b2f86c7)
- cli: allow loading ts files globally (a9d94ac)
- utils: add hasExportDefault util (575a9c5)
Bug Fixes
- bundler-webpack: check public dir before using copy-plugin (2481802)
- core: avoid runtime warning for empty template (close #10) (bcbf703)
Features
- cli: use esbuild to load ts file (41cfbc5)
Bug Fixes
- plugin-git: check if git repo is valid (3e9fc83)
Features
- bundler-webpack: use esbuild for compilation and minification (4351f99)
Bug Fixes
- bundler-webpack: add assets hash to avoid name conflicts (550584a)
- bundler-webpack: allow stylus to import css by default (6664b65)
- bundler-webpack: always watch .vuepress dir (c2c2fed)
- bundler-webpack: do not enable devtool in prod mode (b1d821a)
- bundler-webpack: remove server dest temp directory (91ed5bb)
- bundler-webpack: use loader options type (f5f2b79)
- cli: close file watchers before restart (2b10108)
- cli: delete cache before load config.ts (6739f93)
- cli: disable noInfo option (e01cb12)
- client: do not prepend base to http url (9e4e623)
- client: wrap ssr-app with a parent div (c65b6c4)
- cli: exit process on error (f345cd6)
- cli: ignore initial watch and avoid extra watchers (3afe1f9)
- cli: remove extra app init and prepare (6681b0b)
- core: default value of base and lang (5a5df27)
- core: infer page locale path correctly (8f2b10b)
- core: resolve page date (bd627d7)
- core: resolve page excerpt with correct markdown env (e0f4066)
- core: resolve page title from markdown content as fallback (b216012)
- core: resolve plugin and theme by name (3031324)
- core: respect page options (d8dbbb7)
- markdown: do not add prefix to external images (dc75f57)
- markdown: escape text token (f226d54)
- plugin-medium-zoom: disable in SSR (76cf97f)
- plugin-nprogress: add initial loaded page (abd26c2)
- shared: missing type inference for resolveLocaleConfigItem (3e230fd)
- shared: remove title from ssr context (6eddf75)
- theme-default: code-group nav padding (1d46ce0)
- theme-default: code-group style in mobile (7e31bfd)
- theme-default: do not use frontmatter title and desc as hero messages (a3dde66)
- theme-default: do not use injections inside computed (04c7de5)
- theme-default: fallback home title and content to siteLocale (ce34b4a)
- theme-default: fix type imports and usages (f953295)
- theme-default: hide contributors if array is empty (9e88016)
- theme-default: remove default home config (21ebb4c)
- theme-default: remove DropdownTransition temporarily (efd6ded)
- theme-default: resolve redirect with hash, query and params (e7b7a91)
- theme-default: typo in template (9a72112)
- theme-default: unregister the built-in OutboundLink component to avoid warning (9c781cc)
- theme-default: wrap Content with div (e578594)
- theme-default: wrong default vertical-align of Badge (0c5d2ef)
Features
- bundler-webpack: add SSR constant (6fe1ad6)
- bundler-webpack: add @source alias (9d8cc38)
- bundler-webpack: add style pre-processors config (7502682)
- bundler-webpack: allow disable prefetch and preload links (2e5eb77)
- bundler-webpack: copy files from public dir to dest dir (10848fe)
- bundler-webpack: disable VUE_OPTIONS_API by default (ce5945b)
- bundler-webpack: extract all css files together (ce0783b)
- bundler-webpack: migrate to postcss 8 (5694346)
- bundler-webpack: migrate webpack related hooks (f5eb159)
- bundler-webpack: render locale data (2ae31c1)
- bundler-webpack: sync client changes and optimize ssr (9b4a2cd)
- bundler-webpack: use webpack plugin to optimize dev logs (70c1d64)
- cli: add --cache and --clean-cache options (7ebd75b)
- cli: base cli functions (9b7e005)
- client: add built-in styles for Debug component (1b3b028)
- client: add ClientOnly component (e2cad36)
- client: add global computed and updateHead (df83b88)
- client: add global data utils (46b9fc5)
- client: add OutboundLink component (4107add)
- client: add siteLocale in debug component (e1d663b)
- client: add themeData injections (04cafe2)
- client: add withBase util (f234c5d)
- client: augment route meta type (6f4e1f5)
- client: make siteData injections generic (86b9416)
- client: provide site locale data (00455bd)
- client: set scrollBehavior for vue-router (f7a12ce)
- client: support clientAppRootComponentFiles (188c1a0)
- client: take 404 as the fallback layout (bb34903)
- cli: use user config as a plugin (1fa191f)
- cli: watch pages and config in dev command (96d89d9)
- core: add 404 page if not exist (0297a9e)
- core: add clientAppRootComponentFiles hook (7f640c8)
- core: add extendsPageData hook (5a10994)
- core: add pagePatterns option (9a8855d)
- core: add public directory config (1b52ffe)
- core: add theme layouts option (bf96cc3)
- core: allow disable prefetch and preload links (2991b6a)
- core: allow plugins and themes use export default (874979d)
- core: enable evergreen option by default (fa67dbb)
- core: export LocaleConfig type from shared (04de925)
- core: inject page title into route meta (0d9e7e3)
- core: remove plugins from app options (fe411e7)
- core: remove webpack related hooks (9613f69)
- markdown: add assetsPlugin to handle assets links (79e50b5)
- markdown: add code plugin (0e29d69)
- markdown: allow disable built-in plugins (a0746e5)
- markdown: enable line numbers by default (44b1e47)
- markdown: migrate to markdown-it-toc-done-right (5f9f092)
- markdown: support highlight-lines in code plugin (932b737)
- plugin-active-header-links: make offset configurable (638386d)
- plugin-active-header-links: migrate active-header-links plugin (6271af8)
- plugin-back-to-top: migrate plugin-back-to-top (9b1bbc0)
- plugin-container: migrate container plugin (09459e9)
- plugin-docsearch: add docsearch plugin (ae5e45a)
- plugin-git: add plugin-git package (4c847c8)
- plugin-google-analytics: migrate google-analytics plugin (7f95a8d)
- plugin-medium-zoom: migrate medium-zoom plugin (04dc0b8)
- plugin-nprogress: add @vuepress/plugin-nprogress (8792089)
- plugin-palette-stylus: add palette-stylus plugin (91f2c98)
- shared: add children field in page header (6f29d05)
- shared: add head utils (f020af0)
- shared: add htmlUnescape and htmlEscape utils (5e55f95)
- shared: add isLinkAbsolute and isLinkHttp utils (bbe8e99)
- shared: add link utils (59e8fd5)
- shared: add resolveRoutePathFromUrl util (460f39b)
- shared: add utils to resolve locale data (4d5ccd5)
- shared: expose isPlainObject util (1558de3)
- shared: extract locale path util (54b747c)
- shared: make PageData type extendable (aacbecc)
- shared: migrate isPlainObject with generics support (fb1f7c3)
- shared: optimize type definitions and remove resolveSiteLocaleData (e1d58f6)
- theme-default: 404 page with locales support (08f6f9b)
- theme-default: add Page component (d2eb868)
- theme-default: allow string type navbar and sidebar item (82d7fa2)
- theme-default: default theme skeleton (fb1d413)
- theme-default: display json extension in code blocks (d8795d4)
- theme-default: migrate Badge component (b77bb29)
- theme-default: migrate CodeGroup component (107afd8)
- theme-default: migrate NavLink component (8bb1e17)
- theme-default: migrate OutboundLink component (c7ddba4)
- theme-default: migrate styles (4bb6e10)
- theme-default: navbar and sidebar (7f22ac0)
- theme-default: optimize sidebar items config (f70cdf0)
- theme-default: support locale config for custom blocks (404e02d)
- theme-default: use active-header-links plugin (f7990a2)
- theme-default: use container plugin and refactor types (55e0940)
- theme-default: use Debug component in Layout (fe4334f)
- theme-default: use docsearch plugin (c601312)
- theme-default: use medium-zoom plugin (6288f8c)
- theme-default: use nprogress plugin (e662753)
- theme-default: use palette-stylus plugin (ccaee0f)
- theme-default: use plugin-back-to-top (774f95b)
- theme-default: use plugin-git and add themePlugins option (f44570b)
- utils: add logger and debug utils (203d58d)
- utils: add ora util (f67b4d3)
- utils: add withSpinner util (82c6bb5)
- utils: disable withSpinner if DEBUG env is set (af19507)
- vuepress: re-export sub packages (6b5d999)
- bundler-webpack: split vendor chunk and enable runtime chunk (0d1fbfd)
- bundler-webpack: use postcss-csso to minify styles (2cb23cc)
Bug Fixes
- core: ensure page.title isString (close #1306) (#1308) (644b406)
- plugin-docsearch: allow using slash key to init docsearch (#1323) (3382bb1)
- plugin-theme-data: remove locales field in themeLocaleData (close #1287) (#1313) (d91996f)
Build System
Features
- bump vue to 3.3 (#1327) (bebadea)
- bundler-vite: bump vite to 4.3 and temporarily remove manualChunks (#1328) (031563e)
- markdown: support relative image links without
./
(#1103) (b7d71be)
- theme-default: improve css variable acquisition (#1322) (eb0d0ea)
BREAKING CHANGES
- markdown: for markdown image syntax

, paths without ./
or /
or protocol will be treated as relative links
- drop support for node 14
Bug Fixes
- client: avoid updating routeLocale on route hash change (#1253) (5eb9489)
- markdown: render token attrs in code block (#1220) (b4e313b)
- theme-default: fix site name text overflow style (#1260) (95363a5)
Features
Bug Fixes
- markdown: avoid extracting headers in nested blocks by bumping mdit-vue (close #1201) (ecd3716)
- theme-default: fix word breaking (close #1209) (#1210) (1e7761f)
- theme-default: preserve url params when switching language (#1211) (941b2fe)
Features
- client: improve default head title resolver (c688270)
- plugin-docsearch: add injectStyles option (close #948) (#1208) (34fb6c2)
Bug Fixes
- bundler-webpack: fix order of extensionAlias (close #1082) (28eeb9b)
Bug Fixes
- bundler-webpack: avoid duplicated style preload (e484a55)
- bundler-webpack: fix module identifier matching (9d8d645)
- bundler-webpack: partially fix ssr dependencies issue (83e7b6c)
Bug Fixes
Build System
- bump to vite 4 and rollup 3 (5fac2e6)
Code Refactoring
Features
- client: add
__VUEPRESS_BASE__
constant (fe047fe)
BREAKING CHANGES
- bump to vite 4 and rollup 3
excerpt
has been removed from page object and page data
Reverts
Bug Fixes
- bundler-vite: fix regression of vite options merging (close #1184) (998eb94)
Bug Fixes
- bundler-vite: make user config have the highest priority (#1092) (91cc59e)
- client: allow double quotes in head tag (close #1174) (#1176) (69956c0)
- client: async load client configs to avoid circular deps (close #1154) (b0a7a0e)
- markdown: support single quotes in img tag (close #937) (#1104) (7dae33a)
Features
BREAKING CHANGES
- utils:
@vuepress/utils
no longer exports chalk
, use colors
instead
Features
- cli: print help messages if no matching command (bcc2208)
Reverts
Bug Fixes
- bundler-vite: exclude user-config plugin from optimizeDeps (#1135) (4285cf8)
- bundler-vite: test page component files correctly (close #1056) (bcf6033)
- cli: import envinfo correctly (close #1059) (4476404)
- plugin-search: avoid triggering hotkey while typing (#1125) (7b2e3fa)
- plugin-search: fix mutiple search icon on iPad (close #1004) (#1106) (b5df79d)
- plugin-search: unify breakpoint with default theme (#1091) (a1773d9)
- theme-default: improve responsive layout (#1102) (c63bd4a)
Features
- add type attribute for prefetch link tags (#1095) (cd3b569)
- bundler-vite: auto load postcss plugins from postcss config files (#1088) (0f49c47)
- bundler-vite: improve chunk splitting (#1101) (00b8366)
- bundler-vite: set esbuild output charset to utf-8 (close #1129) (#1133) (10dd348)
- client: improve default page head title resolver (#1078) (2d6343e)
- markdown: set extension of code fences in data-ext attribute (#1132) (f1947f4)
- plugin-google-analytics: add debug option (#1001) (0f46ac7)
- plugin-shiki: bump shiki to 0.11 (#1111) (06e3f55)
- theme-default: add heroHeight frontmatter for home page (81398d5)
BREAKING CHANGES
- markdown: the
ext-xxx
class name of code fences has been removed
Bug Fixes
- bundler-vite: do not change output entry of client bundle (close #1043) (b3565cb)
- bundler-webpack: add extensionAlias config (697e7ae)
- core: resolve app version correctly (2a93513)
Features
- client: make args of defineClientConfig optional (e418e02)
- support layouts option in client config (#1053) (a67a0bf)
- reduce memory usage during rendering (ea0a2b2)
BREAKING CHANGES
- theme API
layouts
has been removed, layouts should be set in client config instead of theme entry
404
layout should be renamed to NotFound
layout
- node API
app.layouts
has been removed
Bug Fixes
- cli: handle config file __dirname correctly (8171f4d)
- plugin-active-header-links: keep query when updating hash (close #991) (0fdb021)
- plugin-docsearch: handle navigation url correctly (close #1024) (b6ded16)
- theme-default: fix initial open state of sidebar item (392297f)
- workaround for vite hash issue (close #1008) (f8cdc9e)
Code Refactoring
- markdown: bump sfc plugin to v0.9 (b0fc856)
Features
- client: add devtools custom inspector (5568abe)
- core: pass isServer flag to alias and define hooks (7862813)
- migrate to pure ESM (#1030) (d283ffe)
BREAKING CHANGES
- VuePress is now published as pure ESM packages
- CommonJS config file is not supported anymore
- markdown: type of node-api
page.sfcBlocks
has been changed
Bug Fixes
- bundler-vite: handle process.env replacement in dev (20f8a3f)
- cli: check dest path correctly (close #954) (6a18c91)
- theme-default: fallback select language aria-label correctly (d450478)
- theme-default: fix 404 page style regression (close #963) (6a26f0b)
- theme-default: fix minor issues of collapsible sidebar (close #967) (022e611)
- theme-default: make headings anchor non-selectable (#973) (5020fc1)
Code Refactoring
- markdown: externalize custom component plugin (a1909c0)
- markdown: externalize headers and title plugin (8441569)
- markdown: externalize sfc plugin (a23aaa1)
Features
- markdown: support frontmatter options (6056e37)
- theme-default: try to keep current hash across languages (a13c1e7)
- utils: add isChildPath util (698e599)
BREAKING CHANGES
- markdown:
markdown.extractHeaders
has been renamed to markdown.headers
- markdown:
markdown.extractTitle
has been renamed to markdown.title
- markdown:
markdown.hoistTags
has been renamed to markdown.sfc
- markdown: node-api
page.hoistedTags
has been renamed to page.sfcBlocks
- markdown:
markdown.customComponent
has been renamed to markdown.component
Bug Fixes
- plugin-docsearch: keep base in result items (close #933) (35ebc91)
- shared: check markdown links correctly (252f4ac)
- replace object literals with json when generating client codes (6db42f0)
Bug Fixes
- plugin-active-header-links: remove hash at page top (close #913) (#920) (268fa6d)
- plugin-docsearch: fix search modal on mobile (52fda1e)
- plugin-docsearch: use min-width to avoid layout shift after initialization (b208be5)
- theme-default: fix header anchor offset regression (e4b4ded)
Features
- bundler-vite: enable vue prod devtools in debug mode (39fe57b)
- bundler-webpack: enable vue prod devtools in debug mode (4acc725)
- core: support permalinkPattern in app options (close #778) (#834) (07fbe43)
- markdown: support markdown.slugify option (0143ba6)
- plugin-pwa: improve types definition (e7590f4)
- plugin-search: improve search input hotkeys (close #746) (#831) (c98d70a)
- theme-default: support
colorMode
and colorModeSwitch
options (close #796) (d89cf86)
- bundler-vite: only apply workaround plugin for serve (05b88e6)
BREAKING CHANGES
- theme-default:
darkMode
has been replaced with colorMode
and colorModeSwitch
- theme-default:
toggleDarkMode
has been renamed to toggleColorMode
Bug Fixes
- core: wrap page content to avoid issues of fragment (close #688) (fb76656)
- markdown: resolve srcset attr of html img tags (close #809) (#818) (ea53747)
- plugin-pwa-popup: fix component setup regression (close #903) (3daecdd)
- plugin-pwa: make the options optional (e781f0a)
- theme-default: access dom after mounted (#895) (68be74d)
- theme-default: use lighter bg color for inline code (0c9b5ce)
Features
- bundler-vite: use development mode when debugging (77dc5fc)
- bundler-webpack: use development mode when debugging (close #734) (977114e)
- plugin-external-link-icon: add frontmatter type (964c308)
- plugin-git: support gitInclude frontmatter (close #449) (#460) (4f5a9af)
- theme-default: add page-content-top and page-content-bottom slots (close #857) (51f30a2)
Bug Fixes
- theme-default: allow non-url-encoded filename in theme config (close #884) (dd1d240)
Features
- cli: add check for base and dest config (c060a6c)
- cli: allow .cjs config file (e1152d1)
- core: merge all client files hooks into clientConfigFile (#888) (ad8b5a8)
- markdown: improve line-number DOM structure (#819) (d938852)
- markdown: prepend base to absolute links to markdown files (close #653) (e4155a0)
- theme-default: normalize html and body font-size (#817) (fd26901)
BREAKING CHANGES
- markdown: now absolute links to markdown files will be treated as internal links, and do not need to prepend
base
manually
- core:
clientAppEnhanceFiles
, clientAppRootComponentFiles
and clientAppSetupFiles
hooks are removed, use clientConfigFile
hook instead
- core: conventional file
.vuepress/clientAppEnhance.{js,ts}
has been renamed to .vuepress/client.{js,ts}
, and the usage has been changed too
Bug Fixes
- avoid processing extendsBundlerOptions hook twice in build (close #863) (8d69ffb)
- bundler-vite: only set client packages in noExternal (close #866) (ff62e2a)
- cli: avoid bin name conflicts (close #869) (6d7db43)
Features
- markdown: support vPre for inline code (close #683) (ef2a014)
BREAKING CHANGES
- markdown: type of
code.vPre
option changed from boolean
to
Record<'block' | 'inline', boolean>
Build System
Features
- core: support extendsBundlerOptions hook (9c56052)
BREAKING CHANGES
Bug Fixes
- plugin-nprogress: fork nprogress to local (45770b1)
IMPORTANT
This release contains important breaking changes. The way to use bundler, theme and plugins has been totally changed.
The old way is a legacy of VuePress v1. We finally decided to drop it for following reasons:
- To get better type hint. The old string-based way is difficult to provide good types support.
- To be more explicit. Now we should import and use theme / plugins explicitly, instead of simply putting a string there.
- To be more normalized. With the old string-based way, we have to
require.resolve
dependencies inside the core package, which could not work with some strict package manager like pnpm.
You could migrate your config file as follow, and check our latest docs for more details:
- module.exports = {
- theme: '@vuepress/theme-default',
- themeConfig: {
- // default theme config
- },
- }
+ const { defaultTheme } = require('vuepress')
+ module.exports = {
+ theme: defaultTheme({
+ // default theme config
+ })
+ }
- module.exports = {
- bundler: '@vuepress/bundler-vite',
- bundlerConfig: {
- // vite bundler config
- },
- }
+ const { viteBundler } = require('vuepress')
+ module.exports = {
+ bundler: viteBundler({
+ // vite bundler config
+ })
+ }
- module.exports = {
- plugins: [
- [
- '@vuepress/plugin-google-analytics',
- {
- id: 'G-XXXXXXXXXX',
- },
- ],
- ],
- }
+ const { googleAnalyticsPlugin } = require('@vuepress/plugin-google-analytics')
+ module.exports = {
+ plugins: [
+ googleAnalyticsPlugin({
+ id: 'G-XXXXXXXXXX',
+ }),
+ ],
+ }
Bug Fixes
- allow building multiple times in the same dest dir (close #772) (30bb4a8)
- bundler-vite: disable scss charset by default (f3f8772)
- bundler-vite: fix build failure when there are no css files (close #697) (#829) (f6101a5)
- bundler-vite: remove redundant use of postcss-csso (close #759) (00c27c3)
- client: support hot-reload of frontmatter head (effa95f)
- plugin-active-header-links: do not append hash at page top (close #693) (#722) (f71cb50)
- plugin-palette: fix sass import when path contains spaces (close #481) (#814) (bbea812)
Code Refactoring
- drop support for using bundler, theme and plugins by name (#843) (b85b1c3)
Features
- cli: enable sourcemap for ts files (close #457) (bf8c4bc)
- core: enable prefetch by default (9d40851)
- markdown: bump markdown-it to v13 (09a3637)
- markdown: improve code fence language detection (close #752) (#815) (1c4d237)
- plugin-docsearch: remove preact dependency (bb4a2ca)
BREAKING CHANGES
- config
bundler
should import the bundler directly, and bundlerConfig
has been removed
- config
theme
should import the theme directly, and themeConfig
has been removed
- config
plugins
should import the plugins directly
- theme API
plugins
should import the plugins directly
- theme API
extends
should import the parent theme directly
- plugin function and theme function should no longer accept user options as the first param, please check out the guide for how to write a plugin and a theme
- core: default value of
shouldPrefetch
option has been changed from false
to true
Bug Fixes
- bundler-vite: clear file hash in workaround plugin (close #800) (3569cd9)
Features
- bundler-vite: bump to vite 2.9 (close #781) (7b3e88e)
- core: support frontmatter type param in Page type (close #638) (6a4733f)
BREAKING CHANGES
- core: the generics type params of Page type has been changed
Bug Fixes
- theme-default: fallback external-link-icon when the plugin is disabled (close #766) (#769) (3628fbf)
Features
- plugin-docsearch: add debounce on search (close #216) (#771) (c82f735)
- plugin-docsearch: bump docsearch to 3.0.0 (close #718) (#721) (85819c3)
- theme-default: enhance header dropdown experience (#736) (ad530e7)
- theme-default: scroll active sidebar item into view (#698) (08b9e9a)
Reverts
- feat(theme-default): enhance header dropdown experience (#736) (#786) (856be61)
Bug Fixes
- avoid user content to be used as string params (close #727) (788afda)
- bundler-webpack: allow
configureWebpack
option to return void (#662) (4488cb3)
- theme-default: fix title style when no content in custom container (close #648) (#657) (73d297f)
- use function to pass a single default slot in render function (close #716) (4550161)
Features
- cli: watch page dependencies on dev (e6ed487)
- markdown: add aria-hidden for line-numbers (#731) (6f5d132)
Bug Fixes
- cli: watch user config correctly on win32 (close #611) (055b174)
Features
- client: allow customizing global computed resolvers (close #338) (405fc8d)
Bug Fixes
- theme-default: add missing color transitions (0955c9f)
- theme-default: highlight sidebar heading when used as a link (close #628) (1a5f4fb)
Code Refactoring
Features
- client: add vue-devtools support (a19d945)
- plugin-docsearch: bump docsearch version to support translations (47a0ef1)
- plugin-external-link-icon: add locales option (#636) (c7f0c43)
- plugin-theme-data: add devtools support (dab437c)
- theme-default: improve sidebar a11y (close #604) (8033b82)
BREAKING CHANGES
@vuepress/plugin-debug
package has been removed
Bug Fixes
- core: should process page hooks inside createPage (e1cbab5)
- markdown: replace img src correctly when wrapped with other html tags (close #597) (f2f53ef)
- theme-default: bump vueuse to avoid localstorage error (close #589) (#612) (7558681)
Features
- core: allow theme to set default HTML templates (4fb7b55)
- plugin-shiki: bump shiki to 0.10.0 (9d42e56)
- theme-default: imporve dark mode experience (close #387) (c20a1ba)
- theme-default: make all non-global components replaceable (f480bb2)
Bug Fixes
- theme-default: avoid transition on fragment child (close #592) (10e5cc0)
Code Refactoring
- core: normalize core app structure (6952acf)
Features
- shared: improve types of site base (66943fb)
BREAKING CHANGES
- core: config
templateSSR
is renamed to templateBuild
Bug Fixes
- theme-default: code line numbers unaligned in different display scale (close #499) (21accb5)
- theme-default: remove focus-visible outline (close #359) (cfbaa14)
Features
- theme-default: support collapsible sidebar (close #397) (c7fd815)
Bug Fixes
- plugin-back-to-top: fix regression when upgrading ts-debounce (close #579) (7a6a45b)
- theme-default: arrows not displaying in page nav (#573) (2d5b084)
- theme-default: do not always wrap logo and hero image with client-only (6b4ee45)
Features
- bundler-webpack: add devServerSetupMiddlewares option (4a042a4)
BREAKING CHANGES
- bundler-webpack:
beforeDevServer
and afterDevServer
options are removed, use devServerSetupMiddlewares
instead
Bug Fixes
- core: set default bundler option to vite (3fd11f5)
- core: use theme after its plugins (fc5bd91)
Features
- extract external link icon to plugin (437b750)
- theme-default: export default locale options (e3ac623)
BREAKING CHANGES
- config
markdown.links.externalIcon
is removed, use plugin-external-link-icon instead
- frontmatter
externalIcon
is removed, use externalLinkIcon
from plugin-external-link-icon
- component
OutboundLink
is removed, use ExternalLinkIcon
from plugin-external-link-icon
Bug Fixes
- bundler-vite: flatten the plugins structure to avoid ordering issue (close #535) (b4011ac)
- theme-default: fix kbd color in dark mode (#503) (31bea57)
- theme-default: use browser default locale in last updated date (#462) (3746e66)
Features
- core: replace extendsPageData with extendsPage hook (827a873)
- core: support extendsMarkdownOptions hook (a1fc69b)
- core: support routeMeta in frontmatter (93cdb53)
- theme-default: make the arrows in page nav clickable (#540) (e7b31fd)
- theme-default: support heroImageDark frontmatter (close #526) (#559) (779ddaa)
- vuepress-webpack: add vuepress-webpack package (a2d9c9a)
- vuepress: switch default bundler to vite (e1004df)
BREAKING CHANGES
- vuepress: switch default bundler from webpack to vite
- core: now
app.markdown
is only available in and after onInitialized
hook
- core: now
extendsPageOptions
hook does not allow a return value any more
- core:
extendsPageData
hook should be migrated to extendsPage
hook
Bug Fixes
- shared: treat ftp links as external (close #456) (9894b56)
- theme-default: avoid ssr-mismatch of dark mode logo (close #453) (aaf1152)
- theme-default: fix code overflow-wrap in Safari (close #435) (6e6fe4f)
- theme-default: hero actions spacing on small devices (close #381) (#442) (288927a)
Features
- bundler-vite: compat with vite 2.6 (bad82eb)
- shared: add isLinkFtp util (b8f35c9)
- theme-default: support editLinkPattern frontmatter (close #450) (edecf2d)
Bug Fixes
- client: fix aria-hidden attribute of OutboundLink (close #427) (#432) (0575ba9)
- client: fix wrong attrs selector when loading head tags (close #426) (5654685)
- core: use absolute path when creating pages (close #421) (0a2f7dc)
Features
- theme-default: support navbar and sidebar slot for Layout.vue (a42e431)
BREAKING CHANGES
- core: now
PageOptions
does not accept relative file path
Bug Fixes
- plugin-git: add HEAD into git shortlog arguments (close #205) (#398) (9be4de1)
- theme-default: improve the style for non-square logo (#386) (ff7c57f)
Code Refactoring
Features
- bundler-webpack: bump webpack-dev-server to 4.0.0 (6e3fc32)
BREAKING CHANGES
- client constants should add
VUEPRESS
prefix now
Bug Fixes
- plugin-pwa: compat with workbox-build 6.2.2 (close #361) (f28e4cb)
- theme-default: avoid recursive ref update in code-group (ca8404a)
Code Refactoring
- client: move built-in meta tags to default html template (close #358) (e5c0fec)
Features
- theme-default: add
logoDark
locale option (close #283) (991c07a)
- theme-default: add css variables for transition (#325) (2b09004)
- theme-default: improve a11y and animation of sidebar button (#365) (c99861e)
- theme-default: store dark mode state in local storage (close #335) (9582b3b)
BREAKING CHANGES
- client: the previous built-in meta tags should be manually added to custom html template
Bug Fixes
- markdown: encode file path when coverting links (close #306) (920c9ac)
- theme-default: use constant color for inserted token (close #296) (4596028)
Features
- bundler-webpack: bump webpack-dev-server to 4.0.0-rc.0 (816da00)
- core: store page data in page object (close #319) (c7d3710)
- core: support paths without html extension (close #292) (#324) (1d41365)
- markdown: support
code.lineNumbers
to be set to number (close #231) (#276) (a7fbdec)
- theme-default: add
toggleDarkMode
locale option (#275) (a685a1b)
- theme-default: add missing transitions (066c6e4)
- theme-default: enhance color transitions (#287) (9b96871)
- theme-default: enhance color transitions (#321) (aeaa3ba)
- theme-default: set dark mode color-scheme (#289) (0b3abd3)
- theme-default: support page slot for Layout.vue (a8de0a9)
BREAKING CHANGES
- core: now
extendsPageData
hook is processed before onInitialized
hook
Bug Fixes
- bundler-vite: fallback html requests to index.html (close #265) (665cda3)
- markdown: resolve assets links in html img tags (close #254) (7cbb163)
- plugin-active-header-links: update active header link selector (#259) (adaeed5)
- theme-default: break long links on overflow (close #266) (#273) (eb970c3)
Bug Fixes
- client: avoid duplicate slash after base in withBase util (close #246) (af9ceff)
- markdown: filter permalink symbol in toc (close #251) (5a35806)
- theme-default: fix nav glitch at exactly 719px screen width (#238) (3154fbb)
- theme-default: use default cursor on non-link sidebar items (ca22d4f)
Features
- bundler-vite: avoid global constants being replaced by vite (close #244) (#245) (0c86968)
Bug Fixes
- core: invoke extendsPageOptions hook in createPage (76292aa)
Features
- markdown: bump markdown-it-anchor to 8.0.4 (41338f7)
- plugin-pwa: bump mitt to 3.0.0 (8e2eb33)
- theme-default: refine sidebar config (ea7c4bb)
BREAKING CHANGES
- markdown:
markdown.anchor
has changed, see changelog of markdown-it-anchor 8.0.0
- theme-default:
isGroup
field of sidebar config is removed
- core: extendsPageOptions now accept page options as the first argument
Bug Fixes
- bundler-vite: resolve client entry url correctly (close #190) (36babba)
- bundler-webpack: sync types of webpack-dev-server 4 (close #208) (207014b)
Features
- bundler-webpack: support vue-loader options (5a51912)
- theme-default: support activeMatch in navbar config (ab0c6d1)
- theme-default: support disabling dark mode (6517ce1)
Bug Fixes
- plugin-search: disable default form action on Enter key (#189) (81b5b24)
- plugin-toc: exclude h1 header in toc (5e96641)
- theme-default: exclude h1 header in sidebar (280626d)
- theme-default: show outline of toggle-dark-button (bc94de0)
Code Refactoring
- core: drop support for plugin nesting (f7da97f)
- core: resolve page title from markdown env (09d08a4)
Features
- cli: watch dependencies of user config file (b220524)
- markdown: add extract-title plugin (e0a1556)
- bundler-vite: make server build lighter (a6ddea5)
BREAKING CHANGES
- core: a plugin cannot use other plugins anymore
- core: markdown emoji syntax is not supported in frontmatter title
Bug Fixes
- theme-default: avoid long inline code breaking the layout (#180) (ada2e2a)
- theme-default: fix error of sidebar resolving (close #185) (6a96af0)
- theme-default: respect root-level custom container config (close #175) (f2ad5f0)
Features
- core: support multi-level theme inheritance (5df8662)
- theme-default: improve a11y of CodeGroup (#163) (2b76463)
BREAKING CHANGES
- theme-default: default title of danger container is changed to "DANGER"
Bug Fixes
- plugin-pwa-popup: increase default z-index (67242e8)
- theme-default: increase medium-zoom delay (9c92443)
Features
- bundler-vite: configure postcss by default (6197578)
- plugin-back-to-top: add z-index variable (3d7d4a4)
- plugin-medium-zoom: add more css variables (close #174) (d717800)
- plugin-nprogress: add z-index variable (151e087)
- plugin-pwa-popup: add more css variables (3ae6f72)
Bug Fixes
- markdown: decode assets link to ensure bundler can find the file (#144) (d3e5409)
- theme-default: handle rotate events on iPad (#150) (bbdda60)
- theme-default: show header anchors when being focused (#164) (8de5f0f)
Features
- bundler-webpack: bump webpack-dev-server to 4.0.0-beta.3 (2e86826)
- cli: allow setting default app config (41f9dc6)
- plugin-search: add --search-bg-color variable (6c778a8)
- plugin-search: improve a11y support (#165) (205aafe)
- theme-default: support dark mode (close #29) (680e429)
- theme-default: support full link for github repo (#152) (8a5055b)
- theme-default: support Gitee repo (5cad664)
BREAKING CHANGES
- theme-default: most sass variables are migrated to css variables
Bug Fixes
- bundler-vite: compat with vite 2.3 changes (close #134) (1370984)
- core: avoid mutating theme layouts array (fe27a57)
Features
- core: allow alias and define hook to return a promise (3b3d289)
Bug Fixes
- bundler-vite: make site base work in vite dev (close #126) (d257e01)
- core: path of page options should have the highest priority (0fc6fd3)
- markdown: ensure ending newline in import code (160df2d)
Features
- markdown: allow omitting start or end of import code lines range (21bba5c)
Bug Fixes
- core: avoid uri encoded filename (4ff7f3b)
- theme-default: align the font of line numbers with code blocks (close #124) (#125) (a3ea87d)
Features
- core: add deps to page object (83c9aae)
- core: make filePath available in markdown env (aa52549)
- markdown: support import code blocks (close #15) (fe20ccc)
- core: reduce page data and component file size (4c6eea5)
- core: reduce routes file size (d926a17)
BREAKING CHANGES
- core:
pagePath
prop of <Content>
renamed to pageKey
Bug Fixes
- bundler-vite: make the timestamp of client entry consistent (4bbff4c)
- do not register hooks in dev mode for prod-only plugins (d5af139)
- specify optimizeDeps for vite dev (0d77331)
- core: merge page routes to reduce requests in vite dev (fa2a614)
Bug Fixes
- bundler-vite: avoid client code to be optimized or externalized (f8a088d)
- bundler-vite: disable clearScreen in dev by default (e7bfe49)
- cli: do not clean cache and temp on restart (047a52c)
- client: implement ClientOnly correctly (e27872d)
- client: make hydration work properly (close #123) (34a5364)
- core: allow extendsMarkdown to return a promise (a4be2fd)
Features
- bundler-vite: bump vite to 2.2.1 to support cacheDir (d7f685b)
- client: support custom layout (c32866d)
- markdown: support externalIcon in config and frontmatter (#122) (d1389bc)
- plugin-search: add search plugin (close #35) (70bb066)
- theme-default: compat with docsearch and search plugin (cb00182)
- theme-default: support pageClass frontmatter (close #118) (809d575)
- theme-default: support sidebarDepth (b79ba90)
Bug Fixes
- core: allow plugin itself as an item of plugin config array (1fa8903)
- core: ensure trailing slash of page path (close #114) (cbcf166)
- markdown: do not escape extracted headers (close #117) (81b1336)
- plugin-back-to-top: fix back-to-top styles (933643a)
- theme-default: remove font-smothing in code block (41c281e)
Code Refactoring
- core: move evergreen option to bundler-webpack (58c30c1)
Features
- client: provide client types file (89a32b5)
- core: make frontmatter available in markdown env (f977192)
- plugin-palette: add watchers for palette and style files (0cf1b9b)
- plugin-register-components: add register components plugin (close #112) (6af204d)
- theme-default: add more palette variables for code styles (db8e0f4)
BREAKING CHANGES
- core:
evergreen
option is moved to bundlerConfig.evergreen
for bundler-webpack
Bug Fixes
- plugin-docsearch: provide default value for locales (close #107) (491eb64)
- plugin-pwa-popup: provide default value for locales (f7cbc15)
Code Refactoring
- normalize themes and plugins structure (7781172)
- core: resolve theme when creating app (fa683cb)
Features
- markdown: support internalTag option in links plugin (1872ad9)
- utils: add logger.createError method (0c198d7)
BREAKING CHANGES
- client API that provided by plugins should be imported from
plugin-foo/lib/client
- core: theme plugins could be overridden by user plugins now
Bug Fixes
- bundler-webpack: always extract css file in build mode (accc484)
- client: install vue-router after clientAppEnhance (close #100) (2f5450f)
- client: make page data hmr work as expected (374ae43)
- theme-default: allow direct img children to be zoomable (close #84) (832bd6f)
Features
- bundler-webpack: bump webpack-dev-server to 4.0.0-beta.2 (dd8c408)
- core: show warning when duplicate plugins are detected (742f581)
- plugin-toc: add toc plugin (0ea1720)
Reverts
- refactor(client): remove extra handling for router base (6205279)
Bug Fixes
- client: ensure page component is loaded before route resolve (598adf3)
- markdown: avoid wrapping highlighted code with multiple pre (f0b3872)
- plugin-prismjs: avoid loading languages multiple times (4af5005)
- theme-default: add active class to sidebar group heading (8dcb945)
- theme-default: allow NavLink in sidebar children (ea50010)
- theme-default: make navlink active in subpath (close #70) (4c865b1)
- theme-default: make nested sidebar groups work (4ada701)
- theme-default: make scrollBehavior work with transition (close #77) (4b8d0cf)
Features
- plugin-shiki: add shiki plugin (66bbcbd)
Bug Fixes
- bundler-vite: disable auto resolving vite config file (57967f7)
Code Refactoring
- markdown: remove default syntax highlighter (4a1abe3)
Features
- plugin-prismjs: add prismjs plugin (638ad8a)
- theme-default: use prismjs plugin (f131de4)
BREAKING CHANGES
- markdown: prismjs is no longer the default syntax highlighter
Bug Fixes
- bundler-vite: fix fs path on windows (close #74) (db3c3e8)
Features
- cli: show info of vite related packages (73a66df)
Bug Fixes
Note: Version bump only
Bug Fixes
- plugin-google-analytics: fix types (92aa486)
Features
- vuepress-vite: add vuepress-vite package (03a6583)
- implement vite hmr (525c18d)
- bundler-vite: add vite support :zap: (7d612c4)
- cli: add defineUserConfig util (c20f7b7)
- client: add defineClientAppEnhance and defineClientAppSetup utils (1520517)
- theme-default: use sass as css pre-processor (7eb1fd8)
BREAKING CHANGES
- theme-default: the palette system of default theme is migrated to sass
Bug Fixes
- cli: add theme-data plugin and rename palette plugin (97ce42b)
Features
- bundler-webpack: enable options API by default (e29b6e1)
- plugin-palette: add palette plugin (556a23c)
BREAKING CHANGES
- plugin-palette: migrate
@vuepress/plugin-palette-stylus
to @vuepress/plugin-palette
Bug Fixes
- markdown: do not treat autolink as a component (close #60) (9f6cffa)
Code Refactoring
- core: remove theme data from site data (187aef3)
Features
- plugin-theme-data: extract theme data injection to a plugin (e971e39)
BREAKING CHANGES
- core:
themeConfig
is not available in site data any more
Code Refactoring
- core: change page default date to 0000-00-00 (1ce602e)
- core: remove permalink and pattern from page options (9534989)
Features
- core: add extendsPageOptions hook (19b7e83)
- core: add watchers parameter to onWatched hook (0bcd594)
BREAKING CHANGES
- core: remove permalink and pattern from page options
- core: change page default date from 1970-01-01 to 0000-00-00
Bug Fixes
- markdown: remove site base from internal links (close #58) (a8c7fdd)
Bug Fixes
- client: only watch route path to update head (3174f5a)
- plugin-debug: avoid enabling in production mode (close #53) (9612282)
Features
- plugin-git: collect page created time (close #45) (4045a8c)
- plugin-google-analytics: migrate to google analytics 4 (close #36) (d2393f7)
BREAKING CHANGES
- migrate to google analytics 4 and drop v3 support
Bug Fixes
- plugin-medium-zoom: always refresh medium-zoom with delay (2495f5d)
- theme-default: fix max width of navbar links wrapper (846e60c)
- theme-default: remove extra rem in styles (close #50) (9b1b852)
Features
- core: create siteData in vuepress app (05b87dd)
- core: make language available in page data (03bb09f)
Bug Fixes
- cli: add esbuild external (8d285ea)
Features
- core: add onWatched hook (9725a10)
- plugin-docsearch: allow more fields in locales config (ce1cf18)
Bug Fixes
- client: load existing head tags on mounted (15722c5)
- markdown: load some languages by default to partially avoid prism issue (48c085a)
- theme-default: fix homepage frontmatter type (9cf2d28)
- theme-default: fix sidebar config override (2c2c280)
- theme-default: make sr-only tags unselectable (0f6488e)
Features
- client: make usePageFrontmatter generic (2c5e5c1)
- shared: optimize frontmatter type and support generics (8a7025f)
- theme-default: add code-group custom container (d0a20aa)
- theme-default: add page transition (845cc2c)
- theme-default: allow html in homepage footer (87e0821)
- theme-default: optimize scrollbar style of sidebar (27abb26)
- theme-default: support multiple action buttons in homepage (close #23) (bb44710)
Bug Fixes
- bundler-webpack: add trailing slash to url (cbe4c7f)
Features
- cli: add --clean-temp option (752d725)
- theme-default: allow dropdown subtitle as a link (5fb6558)
Bug Fixes
- core: support special characters in filename and permalink (c3e68ef)
- markdown: fix assets relative path handling (close #33) (9a95431)
Features
- cli: show info of vue packages (2d19e84)
Bug Fixes
- core: fix site locale data type (7898500)
- theme-default: click to close dropdown that opened by tab and click (88d1ae2)
- theme-default: fix font-size of dropdown group title (563156c)
Features
- core: provide app in all plugin hooks (21cc3a6)
Reverts
- fix(theme-default): remove outline when focused on dropdown button (66d3feb)
Bug Fixes
- bundler-webpack: remove esbuild minimizer (4b3c00b)
- core: fix page date resolving (de6c5c8)
- plugin-docsearch: fix docsearch style issue (7550587)
- theme-default: assign default locale data (d59f55d)
- theme-default: fix overflow style of code block line-numbers (dd77cf4)
- theme-default: remove outline when focused on dropdown button (77842e3)
- theme-default: set font-size explicitly for h4 to h6 (a6459c0)
- vuepress: add a wrapper for cli bin (close #21) (2708ac3)
Bug Fixes
- markdown: only prepend prefix to explicit relative image path (8d6a095)
- plugin-git: replace -P with --no-pager for better compatibility (close #16) (f394c78)
Features
- cli: respect conventional clientAppEnhance files (close #20) (0777376)
Bug Fixes
- markdown: support v-on shorthand in html inline tags (86a1299)
- theme-default: fix navbar type to allow nested group (9ef46ae)
Features
- markdown: code-block-level config for line-numbers and v-pre (9ac3e4a)
Bug Fixes
- bundler-webpack: freeze webpack version (95523a2)
Bug Fixes
- theme-default: fix content headers styles (7ead1f6)
Features
Bug Fixes
- bundler-webpack: freeze version of prerelease packages (50d5fa0)
- cli: prepare pages entry if the page key is changed (4c79839)
- plugin-git: split arguments to get updated time (70e8b5e)
Bug Fixes
- bundler-webpack: display localhost by default in console (8bf0987)
- cli: remove shorthand of host option (8340797)
Features
- plugin-pwa: migrate pwa plugin (aa54fd6)
- plugin-pwa-popup: extract pwa popup plugin (c3e8fb2)
Bug Fixes
- bundler-webpack: fix windows compatibility (close #12) (f35f768)
Features
- bundler-webpack: migrate to webpack 5 (37dca96)
- client: remove built-in debug component (a5962bb)
- plugin-debug: add debug plugin (ddf0a92)
- shared: add esm build (f8463e7)
- theme-default: use debug plugin (e12b1f3)
Bug Fixes
- plugin-google-analytics: report site base (31c8cad)
- theme-default: fix code related styles (83d8a6f)
- theme-default: fix the condition of using router-link as nav-link (8141f69)
Features
- markdown: support doc lang highlight (dc91db6)
Bug Fixes
- bundler-webpack: remove spinner when preparing data (7f3b425)
- cli: keep message format consistent (1de416d)
- core: failed to resolve local theme (4d836e2)
- core: warn if layout directory does not exist (3d2d414)
Features
- cli: allow default export in user config file (b2f86c7)
- cli: allow loading ts files globally (a9d94ac)
- utils: add hasExportDefault util (575a9c5)
Bug Fixes
- bundler-webpack: check public dir before using copy-plugin (2481802)
- core: avoid runtime warning for empty template (close #10) (bcbf703)
Features
- cli: use esbuild to load ts file (41cfbc5)
Bug Fixes
- plugin-git: check if git repo is valid (3e9fc83)
Features
- bundler-webpack: use esbuild for compilation and minification (4351f99)
2.0.0-alpha.1 (2020-12-01)