Allow lang attribute of <template> to be empty (#12394)

Co-authored-by: niklasvatn <niklas@vatn.se>
Co-authored-by: fisker Cheung <lionkay@gmail.com>
This commit is contained in:
authored and GitHub committed 2022-03-09 06:37:16 +08:00
1 parent 737dd536c7
commit 02c17f131b
4 files changed
+166 -1

No files matched your search

+49
View File
@@ -0,0 +1,49 @@
#### Allow `lang` attribute of `<template>` to be empty (#12394 by @HallvardMM)
Template tag should allow empty string lang="" or undefined lang
<!-- prettier-ignore -->
```vue
<!-- Input -->
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<!-- Prettier stable -->
SyntaxError: Unexpected closing tag "v-menu". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags (5:5)
[error] 3 | <v-menu offset-y>
[error] 4 | <template></template>
[error] > 5 | </v-menu>
[error] | ^^^^^^^^^
[error] 6 | </v-app-bar>
[error] 7 | </template>
<!-- Prettier main -->
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
```
+5 -1
View File
@@ -421,7 +421,11 @@ module.exports = {
!hasParent &&
(tagName !== "template" ||
attrs.some(
({ name, value }) => name === "lang" && value !== "html"
({ name, value }) =>
name === "lang" &&
value !== "html" &&
value !== "" &&
value !== undefined
))
) {
return require("angular-html-parser").TagContentType.RAW_TEXT;
@@ -4154,6 +4154,22 @@ semi: false
some-component(tag='<some-tag>')
</template>
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
=====================================output=====================================
<template lang="pug">
.test
@@ -4172,6 +4188,22 @@ semi: false
some-component(tag='<some-tag>')
</template>
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
================================================================================
`;
@@ -4203,6 +4235,22 @@ trailingComma: "none"
some-component(tag='<some-tag>')
</template>
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
=====================================output=====================================
<template lang="pug">
.test
@@ -4221,6 +4269,22 @@ trailingComma: "none"
some-component(tag='<some-tag>')
</template>
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
================================================================================
`;
@@ -4251,6 +4315,22 @@ printWidth: 80
some-component(tag='<some-tag>')
</template>
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
=====================================output=====================================
<template lang="pug">
.test
@@ -4269,6 +4349,22 @@ printWidth: 80
some-component(tag='<some-tag>')
</template>
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
================================================================================
`;
+16
View File
@@ -18,3 +18,19 @@
#container
some-component(tag='<some-tag>')
</template>
<template lang="">
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>
<template lang>
<v-app-bar>
<v-menu offset-y>
<template></template>
</v-menu>
</v-app-bar>
</template>