From 67306b4cd19467dc3d34186dce2f0a7e0d368c5a Mon Sep 17 00:00:00 2001 From: Christopher Pickering Date: Mon, 25 Jul 2022 07:55:30 -0500 Subject: [PATCH] fix(white space): prevent duplicate blank lines from being added closes #297. --- src/djlint/formatter/condense.py | 2 +- .../test_blank_lines_after_tag/html_eight.html | 3 +++ .../test_blank_lines_after_tag/test_config.py | 13 ++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 tests/test_config/test_blank_lines_after_tag/html_eight.html diff --git a/src/djlint/formatter/condense.py b/src/djlint/formatter/condense.py index eb47775..ebd165a 100644 --- a/src/djlint/formatter/condense.py +++ b/src/djlint/formatter/condense.py @@ -94,7 +94,7 @@ def condense_html(html: str, config: Config) -> str: for tag in [x.strip() for x in config.blank_line_after_tag.split(",")]: html = re.sub( re.compile( - rf"((?:{{%\s*?{tag}\b[^}}]+?%}}\n?)+)", + rf"((?:{{%\s*?{tag}\b[^}}]+?%}}\n?)+)(?=[^\n])", re.IGNORECASE | re.MULTILINE | re.DOTALL, ), func, diff --git a/tests/test_config/test_blank_lines_after_tag/html_eight.html b/tests/test_config/test_blank_lines_after_tag/html_eight.html new file mode 100644 index 0000000..fe01ca0 --- /dev/null +++ b/tests/test_config/test_blank_lines_after_tag/html_eight.html @@ -0,0 +1,3 @@ +{% extends nothing %} + +
diff --git a/tests/test_config/test_blank_lines_after_tag/test_config.py b/tests/test_config/test_blank_lines_after_tag/test_config.py index bc1ba85..c5409e1 100644 --- a/tests/test_config/test_blank_lines_after_tag/test_config.py +++ b/tests/test_config/test_blank_lines_after_tag/test_config.py @@ -2,7 +2,7 @@ run:: - pytest tests/test_config.py --cov=src/djlint --cov-branch \ + pytest tests/test_config/test_blank_lines_after_tag/test_config.py --cov=src/djlint --cov-branch \ --cov-report xml:coverage.xml --cov-report term-missing for a single test, run:: @@ -94,3 +94,14 @@ def test_blank_lines_after_tag(runner: CliRunner) -> None: ["tests/test_config/test_blank_lines_after_tag/html_seven.html", "--check"], ) assert result.exit_code == 0 + + # check that multiple blank lines are not added + result = runner.invoke( + djlint, + [ + "tests/test_config/test_blank_lines_after_tag/html_eight.html", + "--preserve-blank-lines", + "--check", + ], + ) + assert result.exit_code == 0