Skip to content

Commit dabf506

Browse files
committed
fix($core): Index.styl is not injected at the end of the style bundle (close: #1523)
BTW, A theme cannot require the theme's styles at the layout but need use `Index.styl` instead.
1 parent 5876001 commit dabf506

File tree

5 files changed

+20
-7
lines changed

5 files changed

+20
-7
lines changed

packages/@vuepress/core/lib/node/internal-plugins/palette/index.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,22 @@ module.exports = (options, ctx) => ({
3131
? `@import(${JSON.stringify(userPalette.replace(/[\\]+/g, '/'))})`
3232
: ''
3333

34+
const nullComment = '// null'
35+
3436
// user's palette can override theme's palette.
35-
let paletteContent = themePaletteContent + userPaletteContent
37+
let paletteContent = '// Theme\'s Palette\n'
38+
+ (themePaletteContent || nullComment)
39+
+ '\n\n// User\'s Palette\n'
40+
+ (userPaletteContent || nullComment)
3641

3742
if (ctx.themeAPI.existsParentTheme) {
3843
const parentThemePalette = path.resolve(ctx.themeAPI.parentTheme.path, 'styles/palette.styl')
3944
const parentThemePaletteContent = fs.existsSync(parentThemePalette)
4045
? `@import(${JSON.stringify(parentThemePalette.replace(/[\\]+/g, '/'))})`
4146
: ''
42-
paletteContent = parentThemePaletteContent + paletteContent
47+
paletteContent = '// Parent Theme\'s Palette\n'
48+
+ (parentThemePaletteContent || nullComment)
49+
+ '\n\n' + paletteContent
4350
}
4451

4552
await writeTemp('palette.styl', paletteContent)

packages/@vuepress/core/lib/node/internal-plugins/style/index.js

+11-2
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,23 @@ module.exports = (options, ctx) => ({
3030
? `@import(${JSON.stringify(userStyle.replace(/[\\]+/g, '/'))})`
3131
: ''
3232

33-
let styleContent = themeStyleContent + userStyleContent
33+
const nullComment = '// null'
34+
35+
// user's styles can override theme's styles.
36+
let styleContent = '// Theme\'s Styles\n'
37+
+ (themeStyleContent || nullComment)
38+
+ '\n\n// User\'s Styles\n'
39+
+ (userStyleContent || nullComment)
3440

3541
if (themeAPI.existsParentTheme) {
3642
const parentThemeStyle = path.resolve(themeAPI.parentTheme.path, 'styles/index.styl')
3743
const parentThemeStyleContent = fs.existsSync(parentThemeStyle)
3844
? `@import(${JSON.stringify(parentThemeStyle.replace(/[\\]+/g, '/'))})`
3945
: ''
40-
styleContent = parentThemeStyleContent + styleContent
46+
47+
styleContent = '// Parent Theme\'s Styles\n'
48+
+ (parentThemeStyleContent || nullComment)
49+
+ '\n\n' + styleContent
4150
}
4251

4352
await writeTemp('style.styl', styleContent)

packages/@vuepress/theme-default/layouts/404.vue

-2
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,3 @@ export default {
2424
}
2525
}
2626
</script>
27-
28-
<style src="../styles/theme.styl" lang="stylus"></style>

packages/@vuepress/theme-default/layouts/Layout.vue

-1
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,3 @@ export default {
147147
</script>
148148

149149
<style src="prismjs/themes/prism-tomorrow.css"></style>
150-
<style src="../styles/theme.styl" lang="stylus"></style>

0 commit comments

Comments
 (0)