We strongly recommend you to switch to V2 version, as V2 version provides the following improvements.
V2 is a full rewrite including:
- All the components are rewritten with Composition API in Vue3
- All the styles are migrated to Sass
Also, V2 has a better performance:🚀
- DevServer cold start time reduced by 50%
- Build memory usage reduced by 65%
- Build time reduced by 30%
- Output Size reduced by 35%
- Webpage performance up to 70%
Vue 3 uses proxy to provide reactivity and composition api. The proxy-based reactivity is a lot faster than the old-style reactivity based on setter/getter.
Additionally, the Composition API is tree-shaking friendly, meaning features that are not enabled can be removed during the build process.
VuePress v2 is developed with TypeScript, so it provides better TS support now.
VuePress@v2 also decouple bundler with core. VuePress v2 add supports both Webpack and Vite as bundler. Now Vite is the default bundler, while you can still choose use Webpack. You can even use Vite in dev mode to get better development experience, and use Webpack in build mode to get better browser compatibility.
VuePress@v2 is a lot more flexible than VuePress@v1, it removes siteData and siteData.pages, which greatly increase scalability (specially on large sites with lots of pages). It has a higher score on lighthouse comparing with V1 with less loaded time and higher performance.
VuePress Theme Hope Changes
VuePressThemeHope@v2 is rewritten with composition API and it's style system is migrated from stylus to sass.
By rewriting theme and plugins with composition api, almost feature you disabled can be removed by tree-shaking when bundling, so that you can get a smaller size easily.
Also, we are adding new features to VuePressThemeHope@v2.
Now the whole blog feature is tree-shakable, and is disabled by default.
To enable it, you need to set
Social media icons is now tree-shakable, and icons can be customized
Support customizing icons for projects in blog homepage
Support customizing blog page path now
Support customizing blog post type
Support automatic abstract generation
Valine and Vssue are no longer supported.
Instead, we add Artalk, Giscus and Twikoo support besides Waline.
- Encryption functions are now also tree-shakable, and encryption checks are only done when necessary.
- Password in frontmatter is removed
- Feed is no longer generated by default
getteroption for you to fully customize feed generation.
We now use PhotoSwipe@v5, which is smaller in size.
- Support update control
- Support base appending for manifest
- Add canonical link support
- Add JSON-LD support
- Support injecting any head tags in V2 now.
Auto-generating Catalog Page
- The new
auto-catalogplugin can automatically generate catalog pages for you
The theme now supports pure mode with less fancy styles and animations.
Themes now fully support RTL layouts
You can now print theme pages using the print button
- New homepage style
- Added multi-feature support
- Feature added icon support
TOC rebuild, now TOC automatically scrolls to the active heading
Support for more Markdown components
Navbar and Sidebar
They now shares same config options
activeMatchoption controlling whether the item should be activated.
"structure"keyword support to generate Sidebar from file structure
Sidebar now automatically opens and scrolls to the activated item.
Now you can print website pages.
Code Block Theme
You can now set different themes for code blocks in dark mode and light mode.
The following new features are added: