fix: allow lang='ts' on scripts in markdown (#693) (#701)

fix #693
pull/731/head
Divyansh Singh 3 years ago committed by GitHub
parent a8a16237cd
commit 59df10590b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -162,8 +162,9 @@ export async function createMarkdownToVueRenderFn(
} }
const scriptRE = /<\/script>/ const scriptRE = /<\/script>/
const scriptLangTsRE = /<\s*script[^>]*\blang=['"]ts['"][^>]*/
const scriptSetupRE = /<\s*script[^>]*\bsetup\b[^>]*/ const scriptSetupRE = /<\s*script[^>]*\bsetup\b[^>]*/
const scriptClientRe = /<\s*script[^>]*\bclient\b[^>]*/ const scriptClientRE = /<\s*script[^>]*\bclient\b[^>]*/
const defaultExportRE = /((?:^|\n|;)\s*)export(\s*)default/ const defaultExportRE = /((?:^|\n|;)\s*)export(\s*)default/
const namedDefaultExportRE = /((?:^|\n|;)\s*)export(.+)as(\s*)default/ const namedDefaultExportRE = /((?:^|\n|;)\s*)export(.+)as(\s*)default/
@ -176,10 +177,12 @@ function genPageDataCode(tags: string[], data: PageData) {
return ( return (
scriptRE.test(tag) && scriptRE.test(tag) &&
!scriptSetupRE.test(tag) && !scriptSetupRE.test(tag) &&
!scriptClientRe.test(tag) !scriptClientRE.test(tag)
) )
}) })
const isUsingTS = tags.findIndex((tag) => scriptLangTsRE.test(tag)) > -1
if (existingScriptIndex > -1) { if (existingScriptIndex > -1) {
const tagSrc = tags[existingScriptIndex] const tagSrc = tags[existingScriptIndex]
// user has <script> tag inside markdown // user has <script> tag inside markdown
@ -196,7 +199,9 @@ function genPageDataCode(tags: string[], data: PageData) {
) )
} else { } else {
tags.unshift( tags.unshift(
`<script>${code}\nexport default {name:'${data.relativePath}'}</script>` `<script ${isUsingTS ? 'lang="ts"' : ''}>${code}\nexport default {name:'${
data.relativePath
}'}</script>`
) )
} }

Loading…
Cancel
Save