diff --git a/src/node/markdownToVue.ts b/src/node/markdownToVue.ts index 34594d60..a14375f8 100644 --- a/src/node/markdownToVue.ts +++ b/src/node/markdownToVue.ts @@ -63,6 +63,7 @@ export function createMarkdownToVueRenderFn( } const scriptRE = /<\/script>/ +const scriptSetupRE = /<\s*script[^>]*\bsetup\b[^>]*/ const defaultExportRE = /((?:^|\n|;)\s*)export(\s*)default/ const namedDefaultExportRE = /((?:^|\n|;)\s*)export(.+)as(\s*)default/ @@ -70,7 +71,9 @@ function injectPageData(tags: string[], data: PageData) { const code = `\nexport const __pageData = ${JSON.stringify( JSON.stringify(data) )}` - const existingScriptIndex = tags.findIndex((tag) => scriptRE.test(tag)) + const existingScriptIndex = tags.findIndex( + (tag) => scriptRE.test(tag) && !scriptSetupRE.test(tag) + ) if (existingScriptIndex > -1) { const tagSrc = tags[existingScriptIndex] // user has ` ) } else { - tags.push(``) + tags.unshift(``) } return tags