chore(deps): update dependency djlint to >=1.46.3 #706

Merged
tobru merged 1 commit from renovate/djlint-1.x into main 2026-09-29 07:52:22 +00:00
Member

This PR contains the following updates:

Package Change Age Confidence
djlint >=1.46.2 → >=1.46.3 age confidence

Release Notes

djlint/djLint (djlint)

v1.46.3

Compare Source

Performance
  • A long run of unclosed {{ or {% no longer makes linting and formatting quadratic. Each was read again from every opener to the end of the line or the file, so eight thousand {{ on one line took over half a minute to lint and as long again to format, and twenty thousand in one attribute value took H054 alone 80 seconds; each now takes well under a second. A second opener is taken to mean the first one never closed, which is how the tokenizer already read them. T038 still reads an unclosed {% up to the next %}, as django does, so a run of those stays slow there.
Fix
  • A > inside a string of a template tag no longer ends the html tag around it when the string reuses the attribute's quote, as in class="{{ classes|default:"[&>a]:flex" }}". Before, the linter lost the rest of the tag, so H037 missed a repeated attribute after it, and the formatter put a line break inside the string.
  • H054 no longer reads an attribute out of a {# #} comment in another attribute's value, as in <a title="{# " href #}">, and leaves an input alone when an {% if %} writes its type and another tag writes the value, as in {% if shown %}type="{% if hidden %}hidden{% else %}text{% endif %}"{% endif %}.
  • A {# inside a {{ }} or {% %} tag, as in {{ "{# x" }} or an ICU message such as {n, plural, one {# item} other {# items}}, no longer opens a comment that runs to the next #} in the file. Before, the linter skipped everything in between, so T038 reported the {% if %} before it as unclosed and T041 missed an {% extends %} after it, and the formatter left the lines in between unformatted. A tag ends at its first closing delimiter, which is where django ends it.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [djlint](https://github.com/djlint/djLint) | `>=1.46.2` → `>=1.46.3` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/djlint/1.46.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/djlint/1.46.2/1.46.3?slim=true) | --- ### Release Notes <details> <summary>djlint/djLint (djlint)</summary> ### [`v1.46.3`](https://github.com/djlint/djLint/blob/HEAD/CHANGELOG.md#1463---2026-09-28) [Compare Source](https://github.com/djlint/djLint/compare/v1.46.2...v1.46.3) ##### Performance - A long run of unclosed `{{` or `{%` no longer makes linting and formatting quadratic. Each was read again from every opener to the end of the line or the file, so eight thousand `{{` on one line took over half a minute to lint and as long again to format, and twenty thousand in one attribute value took `H054` alone 80 seconds; each now takes well under a second. A second opener is taken to mean the first one never closed, which is how the tokenizer already read them. `T038` still reads an unclosed `{%` up to the next `%}`, as django does, so a run of those stays slow there. ##### Fix - A `>` inside a string of a template tag no longer ends the html tag around it when the string reuses the attribute's quote, as in `class="{{ classes|default:"[&>a]:flex" }}"`. Before, the linter lost the rest of the tag, so `H037` missed a repeated attribute after it, and the formatter put a line break inside the string. - `H054` no longer reads an attribute out of a `{# #}` comment in another attribute's value, as in `<a title="{# " href #}">`, and leaves an input alone when an `{% if %}` writes its type and another tag writes the value, as in `{% if shown %}type="{% if hidden %}hidden{% else %}text{% endif %}"{% endif %}`. - A `{#` inside a `{{ }}` or `{% %}` tag, as in `{{ "{# x" }}` or an ICU message such as `{n, plural, one {# item} other {# items}}`, no longer opens a comment that runs to the next `#}` in the file. Before, the linter skipped everything in between, so `T038` reported the `{% if %}` before it as unclosed and `T041` missed an `{% extends %}` after it, and the formatter left the lines in between unformatted. A tag ends at its first closing delimiter, which is where django ends it. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTUuMTMiLCJ1cGRhdGVkSW5WZXIiOiI0NC4xMTUuMTMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
chore(deps): update dependency djlint to >=1.46.3
All checks were successful
Tests / test (push) Successful in 1m56s
0ae3a6b33d
tobru merged commit e24e2a9521 into main 2026-09-29 07:52:22 +00:00
tobru deleted branch renovate/djlint-1.x 2026-09-29 07:52:22 +00:00
Sign in to join this conversation.
No description provided.