Do not remove empty alt tag

This commit is contained in:
Wilson Lin 2021-12-14 12:49:29 +11:00
parent 6e2f2465a4
commit e93188f9b7
5 changed files with 25 additions and 5 deletions

View File

@ -1,5 +1,9 @@
# minify-html changelog # minify-html changelog
## 0.7.1
- Do not remove `alt` tag when empty.
## 0.7.0 ## 0.7.0
- Fix Node.js library not including `cli.js`. - Fix Node.js library not including `cli.js`.

View File

@ -2,7 +2,7 @@
"private": true, "private": true,
"dependencies": { "dependencies": {
"@types/node": "^16.4.13", "@types/node": "^16.4.13",
"@wzlin/html-data": "^2021081005.0.0", "@wzlin/html-data": "^2021121401.0.0",
"ts-node": "^10.2.0", "ts-node": "^10.2.0",
"typescript": "^4.3.5" "typescript": "^4.3.5"
} }

View File

@ -460,9 +460,15 @@ fn test_processing_instructions() {
#[test] #[test]
fn test_js_minification() { fn test_js_minification() {
eval_with_js_min(b"<script>let a = 1;</script>", b"<script>let a=1;</script>"); eval_with_js_min(b"<script>let a = 1;</script>", b"<script>let a=1;</script>");
eval_with_js_min(b"<script type=text/javascript>let a = 1;</script>", b"<script>let a=1;</script>"); eval_with_js_min(
b"<script type=text/javascript>let a = 1;</script>",
b"<script>let a=1;</script>",
);
// `export` statements are not allowed inline. // `export` statements are not allowed inline.
eval_with_js_min(b"<script type=module>let a = 1; export a;</script>", b"<script type=module></script>"); eval_with_js_min(
b"<script type=module>let a = 1; export a;</script>",
b"<script type=module></script>",
);
eval_with_js_min( eval_with_js_min(
br#" br#"
<script>let a = 1;</script> <script>let a = 1;</script>

View File

@ -122,6 +122,16 @@ fn test_attr_whatwg_unquoted_value_minification() {
); );
} }
#[test]
fn test_alt_attr_minification() {
eval(br#"<img alt=" ">"#, br#"<img alt=" ">"#);
eval(br#"<img alt=" ">"#, br#"<img alt=" ">"#);
eval(br#"<img alt="">"#, br#"<img alt>"#);
eval(br#"<img alt=''>"#, br#"<img alt>"#);
eval(br#"<img alt>"#, br#"<img alt>"#);
eval(br#"<x-any-tag alt>"#, br#"<x-any-tag alt>"#);
}
#[test] #[test]
fn test_viewport_attr_minification() { fn test_viewport_attr_minification() {
eval( eval(
@ -132,7 +142,7 @@ fn test_viewport_attr_minification() {
eval_with_cfg( eval_with_cfg(
b"<meta name=viewport content='width=device-width, initial-scale=1'>", b"<meta name=viewport content='width=device-width, initial-scale=1'>",
br#"<meta content="width=device-width,initial-scale=1" name=viewport>"#, br#"<meta content="width=device-width,initial-scale=1" name=viewport>"#,
&spec_compliant_cfg &spec_compliant_cfg,
); );
} }

View File

@ -144,7 +144,7 @@ pub fn process_tag(
.is_none(); .is_none();
if script_tag_type_is_js { if script_tag_type_is_js {
if &proc[value.unwrap()] != b"module" { if &proc[value.unwrap()] != b"module" {
erase_attr = true; erase_attr = true;
}; };
} else { } else {
// Tag does not contain JS, don't minify JS. // Tag does not contain JS, don't minify JS.