diff --git a/docs/guide/README.md b/docs/guide/README.md index e42bcd9a89c1c21391b63e4d848f49673e3d3912..c75224b614a6d8766e27cc5dcf816c84431b5f0e 100644 --- a/docs/guide/README.md +++ b/docs/guide/README.md @@ -10,6 +10,8 @@ next: ./getting-started ### PWA Support +### Dropdown Items in Navbar + ### Algolia DocSearch Integration ## Why Not ...? diff --git a/lib/app/app.js b/lib/app/app.js index d3594bda45ef3d46d67bb2ebc4c9f7817f88c3fe..7280539b06d9700721f16b0cfd6dae571b857930 100644 --- a/lib/app/app.js +++ b/lib/app/app.js @@ -13,7 +13,7 @@ if (module.hot) { if (siteData.base !== prevBase) { window.alert( `[vuepress] Site base has changed. ` + - `Please restart dev server to ensure correct paths.` + `Please restart dev server to ensure correct asset paths.` ) } }) diff --git a/lib/default-theme/styles/config.stylus b/lib/default-theme/styles/config.stylus index 8aa67d271004beaceaf9f30d6b7ab7ae1d6348e3..e4a4b7e7399090e4c2ee9b4501ae628b91e71030 100644 --- a/lib/default-theme/styles/config.stylus +++ b/lib/default-theme/styles/config.stylus @@ -1,6 +1,6 @@ // colors +@import '../../app/.temp/accent.stylus' // generated from user config $textColor = #2c3e50 -$accentColor = darken(#41b883, 5%) $borderColor = #eaecef $codeBgColor = #282c34 diff --git a/lib/prepare.js b/lib/prepare.js index 31e9f1599ddf69afd156504a6c39b5e5db1e341b..e47af7c8a47cd27511c2b9387aff765b93ed363b 100644 --- a/lib/prepare.js +++ b/lib/prepare.js @@ -44,6 +44,12 @@ if (!Object.assign) Object.assign = require('object-assign')` } writeTemp('polyfill.js', polyfillCode) + // 5. handle user accentColor + if (options.useDefaultTheme) { + const accentColor = options.siteData.themeConfig.accentColor || '#3eaf7c' + writeTemp('accent.stylus', `$accentColor = ${accentColor}`) + } + return options } @@ -79,6 +85,12 @@ async function resolveOptions (sourceDir) { }) } + // resolve theme + const useDefaultTheme = ( + !siteConfig.theme && + !fs.existsSync(path.resolve(vuepressDir, 'theme')) + ) + const options = { siteConfig, sourceDir, @@ -89,16 +101,11 @@ async function resolveOptions (sourceDir) { pageFiles: sort(await globby(['**/*.md', '!.vuepress'], { cwd: sourceDir })), pagesData: null, themePath: null, - notFoundPath: null + notFoundPath: null, + useDefaultTheme } - // resolve theme - const hasTheme = ( - siteConfig.theme || - fs.existsSync(path.resolve(vuepressDir, 'theme')) - ) - - if (!hasTheme) { + if (useDefaultTheme) { // use default theme options.themePath = path.resolve(__dirname, 'default-theme/Layout.vue') options.notFoundPath = path.resolve(__dirname, 'default-theme/NotFound.vue') diff --git a/lib/webpack/createBaseConfig.js b/lib/webpack/createBaseConfig.js index 8189ecfaaa69d689d201df8234059a914f310029..079ba47beb50239c0820d0756d063506ba52a548 100644 --- a/lib/webpack/createBaseConfig.js +++ b/lib/webpack/createBaseConfig.js @@ -159,7 +159,8 @@ module.exports = function createBaseConfig ({ }) rule.use('postcss-loader').loader('postcss-loader').options(Object.assign({ - plugins: [require('autoprefixer')] + plugins: [require('autoprefixer')], + sourceMap: !isProd }, siteConfig.postcss)) if (loader) { @@ -172,7 +173,9 @@ module.exports = function createBaseConfig ({ createCSSRule('scss', /\.scss$/, 'sass-loader') createCSSRule('sass', /\.sass$/, 'sass-loader', { indentedSyntax: true }) createCSSRule('less', /\.less$/, 'less-loader') - createCSSRule('stylus', /\.styl(us)?$/, 'stylus-loader') + createCSSRule('stylus', /\.styl(us)?$/, 'stylus-loader', { + preferPathResolver: 'webpack' + }) config .plugin('vue-loader')