Skip to content

Commit 59df105

Browse files
authored
fix: allow lang='ts' on scripts in markdown (#693) (#701)
fix #693
1 parent a8a1623 commit 59df105

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/node/markdownToVue.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,9 @@ export async function createMarkdownToVueRenderFn(
162162
}
163163

164164
const scriptRE = /<\/script>/
165+
const scriptLangTsRE = /<\s*script[^>]*\blang=['"]ts['"][^>]*/
165166
const scriptSetupRE = /<\s*script[^>]*\bsetup\b[^>]*/
166-
const scriptClientRe = /<\s*script[^>]*\bclient\b[^>]*/
167+
const scriptClientRE = /<\s*script[^>]*\bclient\b[^>]*/
167168
const defaultExportRE = /((?:^|\n|;)\s*)export(\s*)default/
168169
const namedDefaultExportRE = /((?:^|\n|;)\s*)export(.+)as(\s*)default/
169170

@@ -176,10 +177,12 @@ function genPageDataCode(tags: string[], data: PageData) {
176177
return (
177178
scriptRE.test(tag) &&
178179
!scriptSetupRE.test(tag) &&
179-
!scriptClientRe.test(tag)
180+
!scriptClientRE.test(tag)
180181
)
181182
})
182183

184+
const isUsingTS = tags.findIndex((tag) => scriptLangTsRE.test(tag)) > -1
185+
183186
if (existingScriptIndex > -1) {
184187
const tagSrc = tags[existingScriptIndex]
185188
// user has <script> tag inside markdown
@@ -196,7 +199,9 @@ function genPageDataCode(tags: string[], data: PageData) {
196199
)
197200
} else {
198201
tags.unshift(
199-
`<script>${code}\nexport default {name:'${data.relativePath}'}</script>`
202+
`<script ${isUsingTS ? 'lang="ts"' : ''}>${code}\nexport default {name:'${
203+
data.relativePath
204+
}'}</script>`
200205
)
201206
}
202207

0 commit comments

Comments
 (0)