djlint-vscode

Visual Studio Code extension for formatting and linting HTML templates (Django, Jinja, Nunjucks, Twig, Handlebars, Mustache) using djLint.
Installation
- Install djLint itself by following the djLint getting started guide or the djLint README.
- Install djLint VS Code extension from Visual Studio Marketplace or Open VSX.
Usage
If djlint.useVenv is enabled and you have the Python extension installed, djlint-vscode uses the djLint installed in the currently activated Python environment.
If djlint.useVenv is disabled, the extension runs djlint.executablePath (djlint from PATH by default). Relative djlint.executablePath and djlint.pythonPath values are resolved from the workspace root. If that executable is not available, it falls back to djlint.pythonPath -m djlint.
The extension can be configured through the settings in VS Code. Some options can be configured through the djLint configuration file.
Add this to your settings.json to format the default enabled languages with djLint:
"[html][django-html][handlebars][hbs][mustache][jinja][jinja-html][nj][njk][nunjucks][twig]": {
"editor.defaultFormatter": "monosans.djlint"
}
Usage with djLint installed with pipx
pipx creates a separate venv for each application and usually exposes a djlint executable. Disable djlint.useVenv and point djlint.executablePath at that executable if it is not already available on PATH:
"djlint.useVenv": false,
"djlint.executablePath": "/home/user/.local/bin/djlint",
Usage with djLint installed with uv
uv creates a separate venv for each application. Disable djlint.useVenv and point djlint.executablePath at the generated djlint executable:
"djlint.useVenv": false,
"djlint.executablePath": "/home/user/.local/share/uv/tools/djlint/bin/djlint",
Known issues
Non-ASCII characters turn into ? on Windows after formatting. To fix this, update djLint to v1.1.1 or higher.
Linting does not work on Windows if the file contains non-ASCII characters. To fix this, update djLint to v1.1.1 or higher.
File contents are duplicated after formatting. This is a bug in djLint v1.12.1, install another version.
The config file is ignored on some versions of Python if it is in the root of the project. To fix this, update djLint to v1.19.2 or higher.
License
MIT