diff --git a/src/djlint/rules.yaml b/src/djlint/rules.yaml
index b4cf156..0c457ba 100644
--- a/src/djlint/rules.yaml
+++ b/src/djlint/rules.yaml
@@ -172,7 +172,7 @@
message: Do not use entity references.
flags: re.I
patterns:
- - '&.{5};'
+ - '&(?!(lt|gt|amp|quot|nbsp|ensp|emsp|thinsp))[#0-9a-z]{,30};'
- rule:
name: H024
message: Omit type on scripts and styles.
diff --git a/tests/test_linter.py b/tests/test_linter.py
index 7f0bb61..0e7def0 100644
--- a/tests/test_linter.py
+++ b/tests/test_linter.py
@@ -343,6 +343,43 @@ def test_H023(runner: CliRunner, tmp_file: TextIO) -> None:
assert result.exit_code == 1
assert "H023 1:" in result.output
+ write_to_file(tmp_file.name, b"á")
+ result = runner.invoke(djlint, [tmp_file.name])
+ assert result.exit_code == 1
+ assert "H023 1:" in result.output
+
+ write_to_file(tmp_file.name, b">")
+ result = runner.invoke(djlint, [tmp_file.name])
+ assert result.exit_code == 0
+
+ write_to_file(tmp_file.name, b'')
+ result = runner.invoke(djlint, [tmp_file.name])
+ assert result.exit_code == 0
+
+ write_to_file(tmp_file.name, b'')
+ result = runner.invoke(djlint, [tmp_file.name])
+ assert result.exit_code == 0
+
+ write_to_file(tmp_file.name, b'')
+ result = runner.invoke(djlint, [tmp_file.name])
+ assert result.exit_code == 1
+ assert "H023 1:" in result.output
+
+ write_to_file(tmp_file.name, b"?")
+ result = runner.invoke(djlint, [tmp_file.name])
+ assert result.exit_code == 1
+ assert "H023 1:" in result.output
+
+ write_to_file(tmp_file.name, b"?")
+ result = runner.invoke(djlint, [tmp_file.name])
+ assert result.exit_code == 1
+ assert "H023 1:" in result.output
+
+ write_to_file(tmp_file.name, b'')
+ result = runner.invoke(djlint, [tmp_file.name])
+ assert result.exit_code == 1
+ assert "H023 1:" in result.output
+
def test_H024(runner: CliRunner, tmp_file: TextIO) -> None:
write_to_file(tmp_file.name, b'