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