Configuration

La configuration se fait soit dans le fichier pyproject.toml de votre projet, soit dans le fichier djlint.toml ou .djlint.toml, soit dans le fichier .djlintrc. Les arguments de la ligne de commande auront toujours la priorité sur les réglages des fichiers de configuration. Les paramètres locaux du projet auront toujours la priorité sur les fichiers de configuration globaux.

Le format de pyproject.toml est toml.

[tool.djlint]
<options de configuration>

Le format de djlint.toml et .djlint.toml est toml.

<options de configuration>

Le format de .djlintrc est json.

{ "option": "valeur" }

∞ Options


∞ allow_empty_input

depuis 1.44.0formatterlinter

Terminer avec le code 0 au lieu de 2 lorsque les chemins indiqués ne correspondent à aucun fichier. Les fichiers trouvés puis ignorés par exclude, extend_exclude, use_gitignore ou require_pragma se terminent déjà avec le code 0. Désactivé par défaut.

allow_empty_input=true
allow_empty_input=true
"allow_empty_input": true
--allow-empty-input

∞ blank_line_after_tag

depuis 0.4.2formatter

Ajout d’une ligne vide supplémentaire après les groupes de balises {% <tag> ... %}. Les lignes vides ne seront jamais ajoutées à la fin d’un bloc.

blank_line_after_tag="load,extends,include"
blank_line_after_tag="load,extends,include"
"blank_line_after_tag": "load,extends,include"
--blank-line-after-tag "load,extends,include"

∞ blank_line_before_tag

depuis 1.8.0formatter

Ajoute une ligne blanche supplémentaire avant les groupes de balises {% <tag> ... %}. Les lignes vides ne seront jamais ajoutées au début du fichier ou d’un bloc, ni entre des balises similaires.

blank_line_before_tag="load,extends,include"
blank_line_before_tag="load,extends,include"
"blank_line_before_tag": "load,extends,include"
--blank-line-before-tag "load,extends,include"

∞ close_void_tags

depuis 1.26.0formatter

Ajoute une marque de fermeture aux balises vides connues : <img> devient <img />.

close_void_tags=true
close_void_tags=true
"close_void_tags": true
--close-void-tags

∞ custom_blocks

depuis 0.3.5formatter

Sert à indenter les blocs de code personnalisés. Par exemple {% toc %}...{% endtoc %}.

custom_blocks="toc,example"
custom_blocks="toc,example"
"custom_blocks": "toc,example"
--custom-blocks "toc,example"

∞ custom_html

depuis 0.7.0formatter

Permet d’indenter les balises HTML personnalisées. Par exemple, <mjml> ou <simple-greeting> ou <mj-\\w+>.

custom_html="mjml,simple-greeting,mj-\\w+"
custom_html="mjml,simple-greeting,mj-\\w+"
"custom_html": "mjml,simple-greeting,mj-\\w+"
--custom-html "mjml,simple-greeting,mj-\\w+"

∞ exclude

depuis 0.4.0linterformatter

Remplacer les chemins d’exclusion par défaut.

exclude=".venv,venv,.tox,.eggs,..."
exclude=".venv,venv,.tox,.eggs,..."
"exclude": ".venv,venv,.tox,.eggs,..."
--exclude ".venv,venv,.tox,.eggs,..."

∞ extend_exclude

depuis 0.4.0linterformatter

Ajouter des chemins supplémentaires à l’exclusion par défaut.

extend_exclude=".custom"
extend_exclude=".custom"
"extend_exclude": ".custom"
--extend-exclude ".custom"

∞ extension

depuis 0.0.5linterformatter

Permet de trouver uniquement les fichiers ayant une extension spécifique.

extension="html.dj"
extension="html.dj"
"extension": "html.dj"
--extension "html.dj"
# or
-e "html.dj"

∞ files

depuis 1.14.0linterformatter

Une liste de chemins à utiliser comme source de djlint. Lorsque cette option est spécifiée, la source de la ligne de commande doit être - comme si vous utilisiez stdin.

[tool.djlint]
files=["index.html"]
files=["index.html"]
"files": [
    "index.html"
]
index.html

∞ format_attribute_js_json

depuis 1.37.0formatter

Formater le code JavaScript et JSON à l’intérieur des attributs HTML. Cela formatera les littéraux d’objet et le code JavaScript dans les attributs comme onclick, x-* et d’autres attributs liés à JavaScript. Les objets avec moins de propriétés que format_attribute_js_json_min_props ne seront pas formatés.

format_attribute_js_json=true
format_attribute_js_json=true
"format_attribute_js_json": true
--format-attribute-js-json

∞ format_attribute_js_json_min_props

depuis 1.37.0formatter

Nombre minimum de propriétés requises dans un objet JavaScript/JSON pour qu’il soit formaté. La valeur par défaut est 2. Les objets avec moins de propriétés resteront sur une seule ligne.

format_attribute_js_json_min_props=3
format_attribute_js_json_min_props=3
"format_attribute_js_json_min_props": 3
--format-attribute-js-json-min-props 3

∞ format_attribute_js_json_pattern

depuis 1.37.0formatter

Modèle regex personnalisé pour faire correspondre les attributs JavaScript pour le formatage. Le modèle par défaut correspond aux attributs JavaScript courants comme onclick, x-*, les directives Vue.js, les directives Alpine.js, les directives Angular et plus encore.

format_attribute_js_json_pattern="^(on[a-z]+|data-[a-z-]+|x-[a-z-]+)$"
format_attribute_js_json_pattern="^(on[a-z]+|data-[a-z-]+|x-[a-z-]+)$"
"format_attribute_js_json_pattern": "^(on[a-z]+|data-[a-z-]+|x-[a-z-]+)$"
--format-attribute-js-json-pattern "^(on[a-z]+|data-[a-z-]+|x-[a-z-]+)$"

∞ format_attribute_template_tags

depuis 0.6.7formatter

Le formateur tentera de formater la syntaxe des modèles à l’intérieur des attributs des balises. Désactivé par défaut.

format_attribute_template_tags=true
format_attribute_template_tags=true
"format_attribute_template_tags": true
--format-attribute-template-tags

∞ format_css

depuis 1.9.0formatter

Formate le contenu des balises style en utilisant css-beautify. Voir css-beautify pour toutes les options de configuration. La syntaxe des modèles n’est pas entièrement prise en charge.

[tool.djlint]
format_css=true

[tool.djlint.css]
indent_size=5
format_css=true

[css]
indent_size=5
"format_css": true
"css": {
        "indent_size": 5
    }
--format-css --indent-css 5

∞ format_js

depuis 1.9.0formatter

Formate le contenu des balises script en utilisant js-beautify. Voir js-beautify pour toutes les options de configuration. La syntaxe des modèles n’est pas entièrement prise en charge.

[tool.djlint]
format_js=true

[tool.djlint.js]
indent_size=5
format_js=true

[js]
indent_size=5
"format_js": true
"js": {
        "indent_size": 5
    }
--format-js --indent-js 5

∞ ignore

depuis 0.1.5linter

Ignore les codes de linter.

ignore="H014,H015"
ignore="H014,H015"
"ignore": "H014,H015"
--ignore "H014,H015"

∞ ignore_blocks

depuis 1.24.0formatter

Permet d’ignorer l’indentation des enfants des balises de modèle. Les enfants seront traités comme des frères et sœurs et indentés en conséquence.

ignore_blocks="raw,example"
ignore_blocks="raw,example"
"ignore_blocks": "raw,example"
--ignore-blocks "raw,example"

∞ ignore_case

depuis 1.23.0formatter

N’essayez pas de corriger la casse des balises html connues.

[tool.djlint]
ignore_case=true
ignore_case=true
"ignore_case": true
--ignore-case

∞ include

depuis 1.20.0linter

Inclure les codes des liners.

include="H014,H015"
include="H014,H015"
"include": "H014,H015"
--include "H014,H015"

∞ indent

depuis 0.3.5formatter

Permet de modifier l’indentation du code. La valeur par défaut est 4 (quatre espaces).

indent=3
indent=3
"indent": 3
--indent 3

∞ keep_br_inline

depuis 1.45.0formatter

Garder <br> sur la ligne du texte qu’il coupe plutôt que de lui donner sa propre ligne. <hr>, qui s’affiche en filet sous le contenu précédent, n’est pas concerné.

keep_br_inline=true
keep_br_inline=true
"keep_br_inline": true
--keep-br-inline

∞ line_break_after_multiline_tag

depuis 1.27.0formatter

Ne pas condenser le contenu des balises multilignes dans la ligne du dernier attribut.

line_break_after_multiline_tag=true
line_break_after_multiline_tag=true
"line_break_after_multiline_tag": "true"
--line-break-after-multiline-tag

∞ linter_output_format

depuis 0.6.7linter

Personnalise l’ordre du message de sortie. Défaut=“{code} {ligne} {message} {match}”. Si {filename} n’est pas inclus dans le message, alors la sortie sera groupée par fichier et un en-tête sera automatiquement ajouté à chaque groupe.

Optional variables:

  • {filename}
  • {line}
  • {code}
  • {message}
  • {match}
linter_output_format="{filename}:{line}: {code} {message} {match}"
linter_output_format="{filename}:{line}: {code} {message} {match}"
"linter_output_format": "{filename}:{line}: {code} {message} {match}"
--linter-output-format "{filename}:{line}: {code} {message} {match}"

∞ max_attribute_length

depuis 0.5.8formatter

Le formateur tentera d’envelopper les attributs de la balise si la longueur de l’attribut dépasse cette valeur.

max_attribute_length=10
max_attribute_length=10
"max_attribute_length": "10"
--max-attribute-length 10

∞ max_blank_lines

depuis 1.31.0formatter

Consolider les lignes vierges en les ramenant à x lignes. La valeur par défaut est 0, ce qui signifie que les lignes vierges seront supprimées.

max_blank_lines=5
max_blank_lines=5
"max_blank_lines": 5
--max-blank-lines 5

∞ max_line_length

depuis 0.5.7formatter

Le formateur essaiera de mettre certaines balises html et template sur une seule ligne au lieu de les envelopper si la longueur de la ligne ne dépasse pas cette valeur.

max_line_length=120
max_line_length=120
"max_line_length": "120"
--max-line-length 120

∞ name_endblocks

depuis 1.45.0formatter

Écrit le nom du bloc dans le {% endblock %} qui le ferme, lorsque le bloc s’étend sur plusieurs lignes. C’est ce que demande T003.

name_endblocks=true
name_endblocks=true
"name_endblocks": true
--name-endblocks

∞ no_entity_formatting

depuis 1.45.0formatter

Ne pas réécrire une référence d’entité en le caractère qu’elle nomme : &copy; reste tel quel au lieu de devenir ©. Les entités qui portent de la syntaxe et les invisibles ne sont de toute façon jamais réécrites.

no_entity_formatting=true
no_entity_formatting=true
"no_entity_formatting": true
--no-entity-formatting

∞ no_function_formatting

depuis 1.30.2formatter

Ne pas tenter de formater les arguments des appels de fonction dans les expressions {{ }}.

no_function_formatting=true
no_function_formatting=true
"no_function_formatting": true
--no-function-formatting

∞ no_indent_inner_html

depuis 1.45.0formatter

Ne pas indenter <head> ni <body> sous <html>, comme le fait le formateur html par défaut de VS Code.

no_indent_inner_html=true
no_indent_inner_html=true
"no_indent_inner_html": true
--no-indent-inner-html

∞ no_line_after_yaml

depuis 1.29.0formatter

N’ajoutez pas de ligne vierge après la matière première yaml.

no_line_after_yaml=true
no_line_after_yaml=true
"no_line_after_yaml": true
--no-line-after-yaml

∞ no_set_formatting

depuis 1.30.2formatter

Ne pas tenter de formater le contenu des balises {% set %}.

no_set_formatting=true
no_set_formatting=true
"no_set_formatting": true
--no-set-formatting

∞ per_file_ignores

depuis 1.7.0linter

Ignorer les règles de linter sur une base par fichier.

[tool.djlint.per-file-ignores]
"file.html"= "H026,H025"
"file_two.html"="H001"
[per-file-ignores]
"file.html"= "H026,H025"
"file_two.html"="H001"
"per-file-ignores": {
        "file.html": "H026,H025",
        "file_two.html":"H001"
    }
--per-file-ignores "file.html" "H026,H025" --per-file-ignores "file_two.html" "H001"

∞ prefer_configuration

depuis 1.45.0formatterlinter

Laisse le fichier désigné par configuration primer sur le fichier de configuration du projet. configuration désigne un fichier global : par défaut, un pyproject.toml ou un .djlintrc placé près des gabarits l’emporte là où les deux règlent la même chose. En ligne de commande uniquement, puisque l’option décide de la lecture des fichiers de configuration eux-mêmes.

--prefer-configuration

∞ preserve_blank_lines

depuis 1.3.0formatter

Préserve les lignes vides lorsque cela est possible. Idéal pour les fichiers de modèles non-html où les lignes vides sont intentionnelles.

preserve_blank_lines=true
preserve_blank_lines=true
"preserve_blank_lines": true
--preserve-blank-lines

∞ preserve_class_newlines

depuis 1.39.0formatter

Préserver les sauts de ligne dans les attributs class multilignes.

preserve_class_newlines=true
preserve_class_newlines=true
"preserve_class_newlines": true
--preserve-class-newlines

∞ preserve_leading_space

depuis 1.2.0formatter

Préserve l’espace de tête du texte, dans la mesure du possible. Idéal pour les fichiers de modèles non-html où l’indentation du texte est intentionnelle.

preserve_leading_space=true
preserve_leading_space=true
"preserve_leading_space": true
--preserve-leading-space

∞ profile

depuis 0.4.5linterformatter

Définissez un profil pour la langue du modèle. Le profil activera les règles de linter qui s’appliquent à votre langage de modèle, et peut également changer le reformatage. Par exemple, dans handlebars, il n’y a pas d’espaces dans les balises {{#if}}.

Options:

  • html (default)
  • django
  • jinja
  • nunjucks (for nunjucks and twig)
  • handlebars (for handlebars and mustache)
  • liquid (shopify, jekyll, eleventy)
  • golang (go templates; hugo, helm)
  • angular
  • tera (also for zola; use jinja for minijinja)
  • askama (jinja-style templates in rust; rust expressions are never reformatted)
profile="django"
profile="django"
"profile": "django"
--profile "django"

∞ quiet

depuis 0.0.9formatterlinter

N’imprimez pas de différences lors du reformatage.

--quiet

∞ quote_style

depuis 1.45.0formatterlinter

Guillemets à utiliser pour les chaînes dans les balises de modèle : double (par défaut) ou single. T002 exige les mêmes. Le formateur les emploie aussi dans une condition, comme {% if x == "a" %}, pour qu’un fichier n’écrive pas la même chaîne de deux façons. Les guillemets des attributs HTML restent du ressort de H008.

quote_style="single"
quote_style="single"
"quote_style": "single"
--quote-style single

∞ require_pragma

depuis 0.5.8formatter

Ne formatez ou ne limez que les fichiers qui commencent par un commentaire contenant uniquement le texte ‘djlint:on’. Le commentaire peut être un commentaire HTML ou un commentaire dans le langage de modèle défini par le paramètre de profil. Si aucun profil n’est spécifié, un commentaire dans l’un des langages de modèle est accepté.

<!-- djlint:on -->
{# djlint:on #}
{% comment %} djlint:on {% endcomment %}
{{ /* djlint:on */ }}
{{!-- djlint:on --}}
require_pragma=true
require_pragma=true
"require_pragma": true
--require-pragma

∞ single_attribute_per_line

depuis 1.40.0formatter

Lorsqu’une balise ouvrante est renvoyée à la ligne, le nom de la balise, chaque attribut et le chevron de fermeture sont placés sur des lignes séparées. Désactivé par défaut.

single_attribute_per_line=true
single_attribute_per_line=true
"single_attribute_per_line": true
--single-attribute-per-line

∞ sort_attributes

depuis 1.45.0formatter

Trie les attributs par nom, id en premier et class en second. Une balise dont les attributs sont gardés par une balise de template conserve l’ordre écrit : sortir un attribut de sa branche changerait la page.

sort_attributes=true
sort_attributes=true
"sort_attributes": true
--sort-attributes

∞ stdin_filename

depuis 1.43.0formatterlinter

Nom de fichier à utiliser pour per-file-ignores et les messages lors de la lecture depuis stdin. La valeur par défaut est “-”.

--stdin-filename templates/index.html

∞ use_gitignore

depuis 0.5.9linterformatter

Ajouter les exclusions .gitignore à l’exclusion par défaut. Désactivé par défaut.

use_gitignore=true
use_gitignore=true
"use_gitignore": true
--use-gitignore

∞ version

depuis 0.3.9formatterlinter

Afficher la version et quitter.

--version

∞ warn

depuis 0.7.6formatterlinter

Renvoyer les erreurs sous forme d’avertissements.

--warn
Modifier cette page Actualisé Sep 24, 2026