Skip to content

Commit 491398b

Browse files
authored
fix(unconfig-vitepress): incorrect h rendering before SSG when performing unconfig merging (#112)
Signed-off-by: Neko Ayaka <[email protected]>
1 parent 2d95d11 commit 491398b

File tree

2 files changed

+34
-27
lines changed

2 files changed

+34
-27
lines changed

docs/.vitepress/theme/index.ts

+14-12
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ export default defineThemeConfig<{
2020
layout: {
2121
slots: {
2222
'layout-top': {
23-
node: h(NuLazyDOMRiveCanvas),
23+
node: [
24+
() => h(NuLazyDOMRiveCanvas),
25+
],
2426
},
2527
},
2628
},
@@ -29,17 +31,17 @@ export default defineThemeConfig<{
2931
app.component('HomeContent', HomeContent)
3032
},
3133
nolebase: {
32-
// enhancedReadabilities: {
33-
// enable: true,
34-
// options: {
35-
// layoutSwitch: {
36-
// defaultMode: 4,
37-
// },
38-
// spotlight: {
39-
// defaultToggle: true,
40-
// },
41-
// },
42-
// },
34+
enhancedReadabilities: {
35+
enable: true,
36+
options: {
37+
layoutSwitch: {
38+
defaultMode: 4,
39+
},
40+
spotlight: {
41+
defaultToggle: true,
42+
},
43+
},
44+
},
4345
linkPreview: {
4446
enable: true,
4547
},

packages/unconfig-vitepress/src/theme.ts

+20-15
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export function defineThemeConfig<PagePropertiesObject extends object = any>(opt
4545
layout?: Theme['Layout']
4646
slots?: {
4747
[key: string]: {
48-
node: ReturnType<typeof h>
48+
node: Array<() => Slots[number]>
4949
override?: boolean
5050
}
5151
}
@@ -76,19 +76,19 @@ export function defineThemeConfig<PagePropertiesObject extends object = any>(opt
7676
const layout = options.layout?.layout
7777
? options.layout?.layout
7878
: () => {
79-
const layoutTop: Slots = []
79+
const layoutTop: Array<() => Slots[number]> = []
8080
if (options.nolebase?.highlightTargetedHeading?.enable)
81-
layoutTop.push(h(NolebaseHighlightTargetedHeading))
81+
layoutTop.push(() => h(NolebaseHighlightTargetedHeading))
8282

83-
const navBarContentAfter: Slots = []
83+
const navBarContentAfter: Array<() => Slots[number]> = []
8484
if (options.nolebase?.enhancedReadabilities?.enable)
85-
navBarContentAfter.push(h(NolebaseEnhancedReadabilitiesMenu))
85+
navBarContentAfter.push(() => h(NolebaseEnhancedReadabilitiesMenu))
8686

87-
const navScreenContentAfter: Slots = []
87+
const navScreenContentAfter: Array<() => Slots[number]> = []
8888
if (options.nolebase?.enhancedReadabilities?.enable)
89-
navScreenContentAfter.push(h(NolebaseEnhancedReadabilitiesScreenMenu))
89+
navScreenContentAfter.push(() => h(NolebaseEnhancedReadabilitiesScreenMenu))
9090

91-
const slots: Record<string, Slots> = {
91+
const slots: Record<string, Array<() => Slots[number]>> = {
9292
'layout-top': [
9393
...layoutTop,
9494
],
@@ -102,11 +102,16 @@ export function defineThemeConfig<PagePropertiesObject extends object = any>(opt
102102

103103
if (options.layout?.slots) {
104104
for (const [key, value] of Object.entries(options.layout.slots)) {
105-
slots[key] = value.override
106-
? [value.node]
107-
: slots[key]
108-
? [...slots[key], value.node]
109-
: [value.node]
105+
if (value.override) {
106+
slots[key] = value.node
107+
continue
108+
}
109+
if (slots[key]) {
110+
slots[key] = [...slots[key], ...value.node]
111+
continue
112+
}
113+
114+
slots[key].push(...value.node)
110115
}
111116
}
112117

@@ -117,9 +122,9 @@ export function defineThemeConfig<PagePropertiesObject extends object = any>(opt
117122
Object
118123
.entries(slots)
119124
.map(([key, value]) => {
120-
return [key, () => value]
125+
return [key, () => value.map(v => v())]
121126
}),
122-
),
127+
) as Record<string, () => Slots>,
123128
)
124129
}
125130

0 commit comments

Comments
 (0)