Intégrations

Il existe plusieurs intégrations d’éditeurs construites pour djLint.

∞ GitHub Actions

Dans un workflow GitHub Actions, djLint signale chaque résultat sous forme d’annotation, qui apparaît donc directement dans le diff d’une pull request. Aucune configuration n’est nécessaire : djLint détecte le workflow et adapte sa sortie automatiquement.

- run: pip install djlint
- run: djlint . --lint --profile django

Utilisez --no-github-output pour obtenir la sortie console habituelle, ou --github-output pour forcer les annotations en dehors d’Actions.

∞ Pre-Commit

djLint peut être utilisé comme un hook pre-commit en tant que linter et formatter.

Le repo fournit de multiples hooks pré-configurés pour des profils djLint spécifiques (il suffit de prédéfinir l’argument --profile et d’indiquer à pre-commit les extensions de fichiers à rechercher) :

:: : content

  • djlint pour le linting et djlint-reformat pour le formatage
    Ceci recherchera les fichiers correspondant à *.html sans définir --profile.
  • djlint-django et djlint-reformat-django
    Ceci recherchera les fichiers correspondant à *.html et définira --profile=django.
  • djlint-jinja et djlint-reformat-jinja
    Ceci recherchera les fichiers correspondant à *.j2, *.jinja ou *.jinja2 et définira --profile=jinja.
  • djlint-nunjucks et djlint-reformat-nunjucks
    Ceci recherchera les fichiers correspondant à *.njk et définira --profile=nunjucks.
  • djlint-handlebars et djlint-reformat-handlebars
    Ceci recherchera les fichiers correspondant à *.hbs et définira --profile=handlebars.
  • djlint-liquid et djlint-reformat-liquid
    Ceci recherchera les fichiers correspondant à *.html et définira --profile=liquid.
  • djlint-golang et djlint-reformat-golang
    Ceci recherchera les fichiers correspondant à *.tmpl et définira --profile=golang.
  • djlint-tera et djlint-reformat-tera
    Ceci recherchera les fichiers correspondant à *.html et définira --profile=tera.
  • djlint-askama et djlint-reformat-askama
    Ceci recherchera les fichiers correspondant à *.html et définira --profile=askama.
    :: :

Notez que ces hooks prédéfinis sont parfois trop conservateurs dans les entrées qu’ils acceptent (vos templates peuvent utiliser une extension différente) donc pre-commit vous permet explicitement de remplacer n’importe laquelle de ces options prédéfinies. Consultez la docs pre-commit pour une configuration supplémentaire.

∞ Exemple de Django par défaut

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

∞ Handlebars avec l’extension .html au lieu de .hbs

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

Vous pouvez utiliser les paramètres files ou exclude pour contraindre chaque hook à son propre répertoire, ce qui vous permet de supporter plusieurs langages de template dans le même repo.

∞ Linter SublimeText

djLint peut être utilisé comme un plugin SublimeText Linter. Il peut être installé via package-control.

:: : contenu

  1. cmd + shft + p
  2. Installer SublimeLinter
  3. Installer SublimeLinter-contrib-djlint
    :: :

Assurez-vous que djLint est installé dans votre python global, ou sur votre PATH.

∞ Visual Studio Code

∞ neovim

djLint peut être utilisé comme formateur dans neovim en utilisant le plugin null-ls.

∞ coc.nvim

∞ efm-langserver

djLint peut être utilisé comme formateur dans neovim avec efm-langserver.

  1. Installez efm-langserver et djLint avec Mason via :MasonInstall efm djlint
  2. Ajoutez htmldjango à filetypes.
  3. Créez la configuration de formatage :
local djlint = {
    formatCommand = "djlint --reformat --quiet --warn -",
    formatStdin = true,
}
  1. Associez le langage au formateur avec htmldjango = { djlint }.

Exemple de configuration :

local djlint = {
    formatCommand = "djlint --reformat --quiet --warn -",
    formatStdin = true,
}

require("lspconfig").efm.setup({
    filetypes = { "htmldjango" },
    init_options = { documentFormatting = true },
    settings = {
        rootMarkers = { ".git/" },
        languages = {
            htmldjango = { djlint },
        },
    },
})
Modifier cette page Actualisé Oct 2, 2026