Integrations

There are several editor integrations build for djLint.

Pre-Commit

djLint can be used as a pre-commit hook as both a linter and a formatter.

The repo provides multiple pre-configured hooks for specific djLint profiles (it just pre-sets the --profile argument and tells pre-commit which file extensions to look for):

  • djlint for linting and djlint-reformat for formatting
    This will look for files matching templates/**.html without setting --profile.
  • djlint-django and djlint-reformat-django
    This will look for files matching templates/**.html and set --profile=django.
  • djlint-jinja and djlint-reformat-jinja
    This will look for files matching *.j2,*.jinja or *.jinja2 and set --profile=jinja.
  • djlint-nunjucks and djlint-reformat-nunjucks
    This will look for files matching *.njk and set --profile=nunjucks.
  • djlint-handlebars and djlint-reformat-handlebars
    This will look for files matching *.hbs and set --profile=handlebars.
  • djlint-golang and djlint-reformat-golang
    This will look for files matching *.tmpl and set --profile=golang.

Note that these predefined hooks are sometimes too conservative in the inputs they accept (your templates may be using a different extension) so pre-commit explicitly allows you to override any of these pre-defined options. See the pre-commit docs for additional configuration

Default Django example

repos:
  - repo: https://github.com/Riverside-Healthcare/djLint
    rev: v1.30.1
    hooks:
      - id: djlint-reformat-django
      - id: djlint-django

Handlebars with .html extension instead of .hbs

repos:
  - repo: https://github.com/Riverside-Healthcare/djLint
    rev: v1.30.1
    hooks:
      - id: djlint-reformat-handlebars
        files: "\\.html"
        types_or: ['html']
      - id: djlint-handlebars
        files: "\\.html"
        types_or: ['html']

You can use the files or exclude parameters to constrain each hook to its own directory, allowing you to support multiple template languages within the same repo.

SublimeText Linter

djLint can be used as a SublimeText Linter plugin. It can be installed via package-control.

  1. cmd + shift + p
  2. Install SublimeLinter
  3. Install SublimeLinter-contrib-djlint

Ensure djLint is installed in your global python, or on your PATH.

Visual Studio Code

neovim

djLint can use used as formatter in neovim using the null-ls plugin.

coc.nvim

null-ls.nvim

MegaLinter

djlint is natively embedded within the 100+ linters of MegaLinter

To install it, just run npx mega-linter-runner --install and follow instructions

Edit this page Updated May 13, 2023