Skip to content

Changelog

0.2.9 - 2026-05-24

โ›ฐ๏ธ Features

  • (check) Expose --fix, --unsafe-fixes, --show-fixes in pyproject config (#290) - (448f487)
  • (lint) Add uppercase-form-method lint rule (#294) - (4d37afe)
  • (lint) Add javascript-url lint rule (#293) - (791e928)
  • (lint) Add redundant-type-attr rule (#260) - (3d65c26)

๐Ÿšœ Refactor

  • (lint) Align violation structs with owned-data convention (#296) - (1f0e05f)

๐Ÿ“š Documentation

  • (lint) Auto-generate lint rule docs from violation struct doc comments (#297) - (3670b71)
  • (readme) Extract some part of the README to dedicated doc page (#291) - (1ea7bae)

0.2.8 - 2026-05-18

โ›ฐ๏ธ Features

  • (check) Add autofix framework to the djangofmt check command and the blocktranslate-no-trimmed rule (#276) - (0b04439)
  • (cli) Format from stdin via - or --stdin-filename (#284) - (a876757)
  • (format) Add --preserve-unquoted-attrs option (#271) - (081ab4a)
  • (format) Add support for Django template partials (#275) - (a13115e)

๐Ÿ› Bug Fixes

  • (docs) Remove smart quotes from example code (#267) - (adc40d6)

โš™๏ธ Miscellaneous Tasks

  • (msrv) Track MSRV and rust-toolchain version with renovate (#281) - (690170f)
  • (perf) Include all rust-related files in changed_files detection (#280) - (f182cfa)
  • (renovate) Add 7-day cooldown to mitigate supply chain attacks (#266) - (ce3759f)
  • Set CARGO_PROFILE_DEV_DEBUG=line-tables-only for faster builds (#270) - (06486be)

Build

  • (playground) Migrate from npm to bun, gate dep release age (#279) - (b4915de)

New Contributors โค๏ธ

0.2.7 - 2026-04-16

โ›ฐ๏ธ Features

  • (ci) Build pipeline improvements (#225) - (3e3b009)
  • (config) Use kebab-case for pyproject.toml settings (#227) - (f26e834)
  • (format) Add recursive file discovery -- enable djangofmt . to format the current folder (#229) - (385f60a)
  • (format) Add flag to allow self closing void elements (#219) - (d0d85b0)
  • (format) Improve error message for cut off html (#207) - (decbaec)
  • (format) Add JSON external formatter (#188) - (07e770b)

๐Ÿ› Bug Fixes

  • (format) Fixes extra indent for {% plural %} inside blocktranslate (#208) - (c7de06d)
  • (format) Fix formatting issues for nested template blocks in html opening tag (#205) - (378bc36)

๐Ÿšœ Refactor

  • (format) Reuse LineLength and PrintWidth newtypes to remove hardcoded default values (#189) - (13e89b5)
  • (misc) Avoid clone on check error path, add force_exclude tests (#239) - (abc267d)
  • (misc) Hoist Settings::default(), remove dead Hash derive, avoid clone on error path (#237) - (2923267)
  • (misc) Minor code quality improvement and simplifications (#235) - (1c1c856)
  • (rules) Declare lint rule category on the Violation (#230) - (6dd81ab)

๐Ÿ“š Documentation

  • (ai) Add AI policy to CONTRIBUTING.md (#228) - (479c575)
  • (check) Document check mode workaround (#200) - (8be5ca6)

โšก Performance

  • (bench) Bench linter and parser (#232) - (d1644eb)
  • (summary) Add micro bench build summary (#236) - (6ba6a80)

๐Ÿงช Testing

  • (ci) Add djangofmt check to ecosystem check (#253) - (e9ac547)
  • (ci) Add code coverage with cargo-llvm-cov and 85% CI threshold (#240) - (78a97a6)
  • (ci) Re-enable djade ecosystem check (+ tidy up justfile) (#206) - (461db3b)
  • (ci) Remove docker-run-action (#195) - (c1c080b)
  • (ecosystem-check) Allows pr comment on forks (#196) - (54b204d)
  • (lint) Cleanup lint test structure (#254) - (5bf935e)

โš™๏ธ Miscellaneous Tasks

  • (playground) Upgrade all node dependencies to latest (#252) - (da82da2)

New Contributors โค๏ธ

0.2.6 - 2026-02-10

โ›ฐ๏ธ Features

  • (config) Implement loading options from a pyproject.toml file (#186) - (5df4a98)

๐Ÿ› Bug Fixes

  • (format) Always swap wrapping quotes if attribute contains one (#180) - (0fd9ed3)
  • (format) Fix formatting of {% for %}/{% empty %} blocks (#178) - (98f8ef7)

๐Ÿ“š Documentation

  • (format) Documents workarounds for unsupported formatting (#174) - (15b1f32)
  • (github) Add Github issue template (#173) - (5821c07)
  • (ignore) Document ignore comment (#172) - (50a2fdd)

๐Ÿงช Testing

  • (ci) Only build djangofmt in ci, not other workspace crates (#170) - (7bbbfc8)

0.2.5 - 2026-01-12

โ›ฐ๏ธ Features

  • (debug) Add debug logs on external formatter failures (#143) - (a5dda3b)
  • (format) Don't format django multiline comment tags ({% comment %}...{% endcomment %}) (#162) - (6a6ca10)
  • (lint) Show source file name in lint diagnostics (#159) - (6ee8c96)
  • (lint) Add building blocks for linting (#144) - (08a12a0)
  • (playground) Add a "Open issue on Github" button in the playground (#163) - (ae247b3)
  • (playground) Add a new collapsible panel to display linting errors (#148) - (067e4a0)

๐Ÿ› Bug Fixes

  • (format) Fixes handling of deprecated django {% trans %} tag (#154) - (8a7a64f)

๐Ÿšœ Refactor

  • (format) Remove line_col_to_offset and use miette SourceOffset::from_location for error reporting (#145) - (f8acc95)

โšก Performance

  • (allocator) Use jemalloc on linux (#128) - (4e92927)
  • (codspeed) Setup Codspeed CI benchmarks (#125) - (0ea2b39)
  • (perf) Update the lto and codegen-units benchmark script (#126) - (ccd7ede)

๐Ÿงช Testing

  • (binary-size) Add cargo-bloat (#136) - (2855cb2)
  • (ci) Skip codspeed in CI if no rust code changes (#158) - (8bf4432)
  • (ci) Cancel outdated ci jobs - (18595c3)
  • (clippy) Improve clippy configuration (#156) - (2de17b3)
  • (pre-commit) Switch to a managed dprint pre-commit integration (#138) - (1ccfba0)
  • (pre-commit) Simplify dprint discovery in pre-commit (#137) - (f4eb28c)
  • (review) Add coderrabit (#141) - (bac6128)

New Contributors โค๏ธ

0.2.4 - 2025-12-15

โ›ฐ๏ธ Features

  • (format) Auto-sort css statements using smacss ordering and enforce % in keyframes (#114) - (1dd641f)
  • (format) Auto-indent <script> tag content (#115) - (d959cf0)
  • (format) Keep style attribute value on a single line (#113) - (7c2f33c)
  • (format) Skip file parsing if there is a top-level <!-- djangofmt:ignore --> (#112) - (fcbab9b)
  • (format) Improve formatting of style tags and attributes (#111) - (24920db)
  • (playground) Add playground deploy to release workflow (#124) - (124b149)
  • (playground) Add an online playground (#118) - (a655190)
  • (playground) Expose a wasm format command (#122) - (847d3d8)

๐Ÿšœ Refactor

โš™๏ธ Miscellaneous Tasks

0.2.3 - 2025-11-30

โ›ฐ๏ธ Features

  • (format) Add pretty-printing of parse errors (#104) - (fee4ee3)
  • (format) Add custom <!-- djangofmt:ignore --> directive (#102) - (c9b20bb)
  • (format) Improvements on inline node formatting (#75) - (58a4f8f)

๐Ÿšœ Refactor

  • (error) Remove anyhow and use custom error enum (#100) - (e39f71a)

๐Ÿงช Testing

  • (clippy) Enable strict clippy rules (#97) - (cd7d6ea)
  • (ecosystem-check) Fix ecosystem check comment urls and support codeberg.com (#101) - (337592c)
  • (ecosystem-check) Fix ecosystem-check and support other providers than github (#99) - (13e8bb2)

0.2.2 - 2025-06-12

โ›ฐ๏ธ Features

  • (format) Document svg files support (#74) - (60ba20f)
  • (format) Support unquoted attr value recovery for jinja tags & blocks (#73) - (ca7efc6)

0.2.1 - 2025-06-07

โ›ฐ๏ธ Features

  • (format) Improve whitespace-sensitive node formatting (#70) - (cfaa21e)

0.2.0 - 2025-05-23

โ›ฐ๏ธ Features

  • (cli) Add indent_width cli parameter (#48) - (b0d0219)
  • (fmt) Never wrap opening tag with no attrs (#20) - (8fb993a)
  • (format) Converge in one pass formatting style attr (#50) - (fadce6b)

๐Ÿ› Bug Fixes

  • (cli) Exit 1 on handled formatting failure - (b7ebb78)

๐Ÿงช Testing

  • (ecosystem-check) Stability test + Integration test with djade (#51) - (449456e)
  • (pre-commit.ci) Enable pre-commit.ci (#15) - (5ce836f)

โš™๏ธ Miscellaneous Tasks

  • (markup_fmt) Bump markup_fmt to v0.20.0 (#65) - (070e2af)
  • (rust) Rust 1.87 edition 2024 (#55) - (9aeb174)

New Contributors โค๏ธ

0.1.0 - 2025-03-16

New Contributors โค๏ธ