Skip to content

Commit 0962129

Browse files
committed
fix(slots): detect multiline slots
1 parent 84c11e8 commit 0962129

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/module.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,19 @@ export default defineNuxtModule<ModuleOptions>({
4141
// @nuxt/content support
4242
(component, code) => {
4343
code = code.replace(
44-
/<ContentSlot(.*)?:use="\$slots\.([a-z]+)"(.*)\/>/gm,
44+
/<ContentSlot\s*([^>]*)?:use="\$slots\.([a-zA-Z0-9_]+)"/gm,
4545
(_, _before, slotName, _rest) => {
46-
return `<slot ${slotName === 'default' ? '' : `name="${slotName}"`} />`
46+
return `<slot ${_before || ''}${slotName === 'default' ? '' : `name="${slotName}"`}`
4747
}
4848
)
4949
code = code.replace(
50-
/<ContentSlot(.*)?name="([a-z]+)"(.*)\/>/gm,
50+
/<ContentSlot\s*([^>]*)?name="([a-zA-Z0-9_]+)"/gm,
5151
(_, _before, slotName, _rest) => {
52-
return `<slot ${slotName === 'default' ? '' : `name="${slotName}"`} />`
52+
return `<slot ${_before || ''}${slotName === 'default' ? '' : `name="${slotName}"`}`
5353
}
5454
)
55+
code = code.replace(/<\/ContentSlot>/gm, '</slot>')
56+
5557
// Handle `(const|let|var) slots = useSlots()`
5658
const name = code.match(/(const|let|var) ([a-zA-Z][a-zA-Z-_0-9]*) = useSlots\(\)/)?.[2] || '$slots'
5759
const _slots = code.match(new RegExp(`${name}\\.[a-zA-Z]+`, 'gm'))

0 commit comments

Comments
 (0)