README
vuepress-next
Status: Alpha
The codebase has been completely refactored with TypeScript. Some major changes:
- Fully migrated to Vue 3
- Extract
@vuepress/cli
fromvuepress
package - Extract
@vuepress/client
from@vuepress/core
package - Extract
@vuepress/bundler-webpack
from@vuepress/core
package and migrate to webpack 5- As webpack is decoupled with core, other bundlers are also possible to be supported
- Extract
@vuepress/plugin-palette-stylus
from@vuepress/core
package - stylus is no longer the default CSS pre-processor, and the way of styles customization should be determined by theme
The documentation has not finished yet. For now you can check out the breaking changes list below as migration reference.
Documentation
Contribution
See Contributing Guide.
Breaking Changes
Temporarily record some breaking changes here.
Core
User config
shouldPrefetch
-> the default value is changed tofalse
patterns
->pagePatterns
extraWatchFiles
-> removed, watch files manually inonWatched
hookevergreen
-> the default value is changed totrue
markdown
markdown.lineNumbers
->markdown.code.lineNumbers
, and the default value is changed totrue
markdown.slugify
-> removedmarkdown.pageSuffix
-> removedmarkdown.externalLinks
->markdown.links.externalAttrs
markdown.toc
-> changedmarkdown.plugins
-> removedmarkdown.extendMarkdown
-> removedmarkdown.extractHeaders
-> changed
- All webpack related configs are moved to
bundlerConfig
(with@vuepress/bundler-webpack
)postcss
->bundlerConfig.postcss
stylus
->bundlerConfig.stylus
scss
->bundlerConfig.scss
sass
->bundlerConfig.sass
less
->bundlerConfig.less
chainWebpack
->bundlerConfig.chainWebpack
configureWebpack
->bundlerConfig.configureWebpack
Conventional files and directories
.vuepress/enhanceApp.js
->.vuepress/clientAppEnhance.{js,ts}
.vuepress/components
-> will not auto register components, and you need to register your components manually in.vuepress/clientAppEnhance.{js,ts}
Permalink patterns
:i_month
-> removed:i_day
-> removed:minutes
-> removed (undocumented in 1.0):seconds
-> removed (undocumented in 1.0):regular
->:raw
Stylus Palette system
The stylus palette system of Vuepress 1.0 (i.e. styles/palette.styl
and styles/index.styl
) will only work in default theme.
To make the stylus palette system reusable, it's extracted to @vuepress/plugin-palette-stylus
.
Theme authors can use their own way for users to configure styles (not be limited with stylus).
Frontmatter
meta
->head
, which uses the same type withsiteConfig.head
For example:
head: - - meta - name: foo content: bar - - link - rel: canonical href: foobar - - script - {} - console.log('hello from frontmatter');
Has the same structure with:
// .vuepress/config.js module.exports = { // ... head: [ ['meta', { name: 'foo', content: 'bar' }], ['link', { rel: 'canonical', href: 'foobar' }], ['script', {}, `console.log('hello from frontmatter');`], ], // ... }
Plugin API
ready
->onPrepared
updated
->onWatched
generated
->onGenerated
additionalPages
-> removed, useapp.pages.push(createPage())
inonInitialized
hookclientDynamicModules
-> removed, useapp.writeTemp()
inonPrepared
hookenhanceAppFiles
->clientAppEnhanceFiles
globalUIComponents
->clientAppRootComponentFiles
clientRootMixin
->clientAppSetupFiles
extendMarkdown
->extendsMarkdown
chainMarkdown
-> removedextendPageData
->extendsPageData
extendsCli
-> removedconfigureWebpack
-> removedchainWebpack
-> removedbeforeDevServer
-> removedafterDevServer
-> removed
Theme API
.vuepress/theme
-> won't be used as theme implicitly if the path exists, and set the path explicitly viatheme
option.extend
->extends
You can still inherit a parent theme with
extends: 'parent-theme'
, which will extends the plugins, layouts, etc.However, the
@theme
and@parent-theme
aliases are not available now.
CLI
eject
command -> removed-c, --cache [cache]
->--cache <cache>
- the shorthand-c
is not forcache
option, and the value ofcache
option is not optional--no-cache
->--clean-cache
Default Theme
<CodeGroup />
,<CodeBlock />
-><CodeGroup />
,<CodeGroupItem />
<Badge />
$badgeErrorColor
->$badgeDangerColor
type
prop only acceptstip
,warning
anddanger
- Default theme config has changed a lot. Please checkout the types definition and our
docs/.vuepress/config.ts
as reference