Konfiguration
Die Konfiguration erfolgt entweder über die Datei pyproject.toml Ihres Projekts, über eine Datei djlint.toml oder .djlint.toml oder über eine Datei .djlintrc. Argumente auf der Befehlszeile haben immer Vorrang vor den Einstellungen in Konfigurationsdateien. Lokale Projekteinstellungen haben Vorrang vor einer globalen Konfigurationsdatei, die mit --configuration angegeben wird, es sei denn, --prefer-configuration ist gesetzt.
Für pyproject.toml wird das Format toml verwendet.
[tool.djlint]
<config options>
Für djlint.toml und .djlint.toml wird das Format toml verwendet.
<config options>
Für .djlintrc wird das Format json verwendet.
{ "option": "value" }
Optionen
allow_empty_input
Beendet mit 0 statt 2, wenn die angegebenen Pfade auf überhaupt keine Datei passen. Dateien, die gefunden und dann durch exclude, extend_exclude, use_gitignore oder require_pragma übersprungen wurden, enden ohnehin mit 0. Standardmäßig deaktiviert.
allow_empty_input=true
allow_empty_input=true
"allow_empty_input": true
--allow-empty-input
blank_line_after_tag
Fügt nach Gruppen von {% <tag> ... %}-Tags eine zusätzliche Leerzeile ein. Am Ende eines Blocks werden nie Leerzeilen eingefügt.
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
Fügt vor Gruppen von {% <tag> ... %}-Tags eine zusätzliche Leerzeile ein. Am Anfang einer Datei oder eines Blocks und zwischen gleichartigen Tags werden nie Leerzeilen eingefügt.
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
Versieht bekannte Void-Tags mit einem schließenden Zeichen, sodass aus <img> <img /> wird. H018, das das Gegenteil verlangt, wird mit dieser Option nicht gemeldet.
close_void_tags=true
close_void_tags=true
"close_void_tags": true
--close-void-tags
custom_blocks
Rückt eigene Codeblöcke ein. Zum Beispiel {% toc %}...{% endtoc %}.
custom_blocks="toc,example"
custom_blocks="toc,example"
"custom_blocks": "toc,example"
--custom-blocks "toc,example"
custom_html
Rückt eigene HTML-Tags ein. Zum Beispiel <mjml> oder <simple-greeting> oder <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
Überschreibt die standardmäßig ausgeschlossenen Pfade.
exclude=".venv,venv,.tox,.eggs,..."
exclude=".venv,venv,.tox,.eggs,..."
"exclude": ".venv,venv,.tox,.eggs,..."
--exclude ".venv,venv,.tox,.eggs,..."
extend_exclude
Fügt den standardmäßig ausgeschlossenen Pfaden weitere hinzu.
extend_exclude=".custom"
extend_exclude=".custom"
"extend_exclude": ".custom"
--extend-exclude ".custom"
extension
Sucht nur nach Dateien mit einer bestimmten Endung.
extension="html.dj"
extension="html.dj"
"extension": "html.dj"
--extension "html.dj"
# or
-e "html.dj"
files
Eine Liste von Pfaden, die djlint als Quelle verwendet. Ist diese Option angegeben, muss die Quelle auf der Befehlszeile - sein, als würde stdin verwendet. Mit --stdin-filename steht - in jedem Fall für stdin.
[tool.djlint]
files=["index.html"]
files=["index.html"]
"files": [
"index.html"
]
index.html
format_attribute_js_json
Formatiert JavaScript- und JSON-Code in HTML-Attributen. Formatiert werden Objektliterale und JavaScript-Code in Attributen wie onclick, x-* und anderen JavaScript-bezogenen Attributen. Objekte mit weniger Eigenschaften als format_attribute_js_json_min_props werden nicht formatiert.
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
Mindestanzahl an Eigenschaften, die ein JavaScript-/JSON-Objekt haben muss, damit es formatiert wird. Standard ist 2. Objekte mit weniger Eigenschaften bleiben in einer einzigen Zeile.
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
Eigenes Regex-Muster für die JavaScript-Attribute, die formatiert werden sollen. Das Standardmuster trifft auf gängige JavaScript-Attribute wie onclick, x-*, Direktiven von Vue.js, Alpine.js und Angular und weitere zu.
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
Der Formatter versucht, Template-Syntax innerhalb von Tag-Attributen zu formatieren. Standardmäßig deaktiviert.
format_attribute_template_tags=true
format_attribute_template_tags=true
"format_attribute_template_tags": true
--format-attribute-template-tags
format_css
Formatiert den Inhalt von style-Tags mit css-beautify. Alle Konfigurationsoptionen finden Sie unter css-beautify. Template-Syntax wird nicht vollständig unterstützt.
[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
Formatiert den Inhalt von script-Tags mit js-beautify. Alle Konfigurationsoptionen finden Sie unter js-beautify. Template-Syntax wird nicht vollständig unterstützt.
[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
Ignoriert Linter-Codes.
ignore="H014,H015"
ignore="H014,H015"
"ignore": "H014,H015"
--ignore "H014,H015"
ignore_blocks
Überspringt die Einrückung der Kinder von Template-Tags. Die Kinder werden als Geschwister behandelt und entsprechend eingerückt.
ignore_blocks="raw,example"
ignore_blocks="raw,example"
"ignore_blocks": "raw,example"
--ignore-blocks "raw,example"
ignore_case
Versucht nicht, die Groß-/Kleinschreibung bekannter HTML-Tags zu korrigieren. H009 und H010 werden mit dieser Option nicht gemeldet.
[tool.djlint]
ignore_case=true
ignore_case=true
"ignore_case": true
--ignore-case
include
Schließt Linter-Codes ein.
include="H014,H015"
include="H014,H015"
"include": "H014,H015"
--include "H014,H015"
indent
Ändert die Einrückung des Codes. Standard ist 4 (vier Leerzeichen) oder die indent_size einer .editorconfig im Projektstamm.
indent=3
indent=3
"indent": 3
--indent 3
keep_br_inline
Belässt <br> in der Zeile des Textes, den es umbricht, statt ihm eine eigene Zeile zu geben. <hr>, das als Linie unter dem vorangehenden Inhalt gerendert wird, ist davon nicht betroffen.
keep_br_inline=true
keep_br_inline=true
"keep_br_inline": true
--keep-br-inline
line_break_after_multiline_tag
Zieht den Inhalt mehrzeiliger Tags nicht in die Zeile des letzten Attributs zusammen.
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
Passt die Reihenfolge der Ausgabemeldung an. Standard: “{code} {line} {message} {match}”. Ist {filename} nicht in der Meldung enthalten, wird die Ausgabe nach Dateien gruppiert, und jede Gruppe erhält automatisch eine Überschrift.
Optionale Variablen:
{filename}{line}{end}{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
Der Formatter versucht, die Attribute eines Tags umzubrechen, wenn deren Länge diesen Wert überschreitet. Standard ist 70.
max_attribute_length=10
max_attribute_length=10
"max_attribute_length": 10
--max-attribute-length 10
max_blank_lines
Fasst Leerzeilen auf höchstens x Zeilen zusammen. Standard ist 0, das heißt, Leerzeilen werden entfernt.
max_blank_lines=5
max_blank_lines=5
"max_blank_lines": 5
--max-blank-lines 5
max_line_length
Der Formatter versucht, manche HTML- und Template-Tags in eine einzige Zeile zu setzen, statt sie umzubrechen, sofern die Zeilenlänge diesen Wert nicht überschreitet. Standard ist 120 oder die max_line_length einer .editorconfig im Projektstamm.
max_line_length=120
max_line_length=120
"max_line_length": 120
--max-line-length 120
name_endblocks
Schreibt den Namen des Blocks in das {% endblock %}, das ihn schließt, sofern der Block über mehrere Zeilen geschrieben ist. Genau das verlangt T003.
name_endblocks=true
name_endblocks=true
"name_endblocks": true
--name-endblocks
no_entity_formatting
Ersetzt eine Entity-Referenz nicht durch das Zeichen, das sie bezeichnet, sodass © so bleibt, wie es geschrieben ist, statt zu © zu werden. Die Entities, die Syntax tragen, und die unsichtbaren werden ohnehin nie ersetzt. H023 meldet eine Entity auch mit dieser Option; fügen Sie H023 zu ignore hinzu, um Entities zu behalten.
no_entity_formatting=true
no_entity_formatting=true
"no_entity_formatting": true
--no-entity-formatting
no_function_formatting
Versucht nicht, die Argumente von Funktionsaufrufen in {{ }}-Ausdrücken zu formatieren.
no_function_formatting=true
no_function_formatting=true
"no_function_formatting": true
--no-function-formatting
no_indent_inner_html
Rückt <head> und <body> unter <html> nicht ein, so wie der Standard-HTML-Formatter von VS Code ein Dokument anordnet.
no_indent_inner_html=true
no_indent_inner_html=true
"no_indent_inner_html": true
--no-indent-inner-html
no_line_after_yaml
Fügt nach YAML-Front-Matter keine Leerzeile ein.
no_line_after_yaml=true
no_line_after_yaml=true
"no_line_after_yaml": true
--no-line-after-yaml
no_set_formatting
Versucht nicht, den Inhalt von {% set %}-Tags zu formatieren.
no_set_formatting=true
no_set_formatting=true
"no_set_formatting": true
--no-set-formatting
per_file_ignores
Ignoriert Linter-Regeln pro Datei.
[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
Lässt die mit configuration angegebene Datei die eigene Konfigurationsdatei des Projekts überschreiben. configuration bezeichnet eine globale Datei, daher gewinnt standardmäßig eine pyproject.toml oder .djlintrc neben den Templates, wo beide dasselbe festlegen. Nur auf der Befehlszeile verfügbar, da die Option bestimmt, wie die Konfigurationsdateien selbst gelesen werden.
--prefer-configuration
preserve_blank_lines
Behält Leerzeilen nach Möglichkeit bei. Ideal für Template-Dateien ohne HTML, in denen Leerzeilen beabsichtigt sind.
preserve_blank_lines=true
preserve_blank_lines=true
"preserve_blank_lines": true
--preserve-blank-lines
preserve_class_newlines
Behält Zeilenumbrüche innerhalb mehrzeiliger class-Attribute bei.
preserve_class_newlines=true
preserve_class_newlines=true
"preserve_class_newlines": true
--preserve-class-newlines
preserve_leading_space
Behält führende Leerzeichen vor Text nach Möglichkeit bei. Ideal für Template-Dateien ohne HTML, in denen die Einrückung des Textes beabsichtigt ist.
preserve_leading_space=true
preserve_leading_space=true
"preserve_leading_space": true
--preserve-leading-space
profile
Legt ein Profil für die Template-Sprache fest. Das Profil aktiviert die Linter-Regeln, die für Ihre Template-Sprache gelten, und kann auch das Neuformatieren verändern. In handlebars zum Beispiel stehen innerhalb von {{#if}}-Tags keine Leerzeichen.
Optionen:
- html (Standard)
- django
- jinja
- nunjucks (für nunjucks und twig)
- handlebars (für handlebars und mustache)
- liquid (shopify, jekyll, eleventy)
- golang (Go-Templates; hugo, helm)
- angular
- tera (auch für zola; für minijinja verwenden Sie jinja)
- askama (Templates im Jinja-Stil in Rust; Rust-Ausdrücke werden nie neu formatiert)
profile="django"
profile="django"
"profile": "django"
--profile "django"
quiet
Gibt beim Neuformatieren keinen Diff aus.
quiet=true
quiet=true
"quiet": true
--quiet
quote_style
Anführungszeichen für Strings innerhalb von Template-Tags, entweder double (Standard) oder single. T002 verlangt dieselben Anführungszeichen. Der Formatter verwendet sie auch in einer Bedingung wie {% if x == "a" %}, damit eine Datei denselben String nicht auf beide Arten schreibt. Die Anführungszeichen von HTML-Attributen sind Sache von H008.
quote_style="single"
quote_style="single"
"quote_style": "single"
--quote-style single
require_pragma
Formatiert oder lintet nur Dateien, die mit einem Kommentar beginnen, der ausschließlich den Text „djlint:on“ enthält. Das kann ein HTML-Kommentar sein oder ein Kommentar in der Template-Sprache, die in der Einstellung profile festgelegt ist. Ist kein Profil angegeben, wird ein Kommentar in jeder der Template-Sprachen akzeptiert.
<!-- 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
Wird ein öffnendes Tag umgebrochen, kommen der Tag-Name, jedes Attribut und die schließende Klammer in eigene Zeilen. Standardmäßig deaktiviert.
single_attribute_per_line=true
single_attribute_per_line=true
"single_attribute_per_line": true
--single-attribute-per-line
sort_attributes
Sortiert Attribute nach Namen, mit id an erster und class an zweiter Stelle. Ein Tag, dessen Attribute von einem Template-Tag umschlossen sind, behält die geschriebene Reihenfolge, da das Verschieben eines Attributs aus seinem Zweig die Seite verändern würde.
sort_attributes=true
sort_attributes=true
"sort_attributes": true
--sort-attributes
sort_load_tags
Sortiert die Bibliotheken in einem Django-{% load %}-Tag und entfernt doppelt aufgeführte, sodass aus {% load static i18n %} {% load i18n static %} wird. In {% load a b from library %} werden die Namen vor from sortiert. Definieren zwei Bibliotheken ein Tag oder einen Filter mit demselben Namen, gewinnt die zuletzt geladene, sodass das Sortieren ändern kann, welche das Template verwendet.
sort_load_tags=true
sort_load_tags=true
"sort_load_tags": true
--sort-load-tags
stdin_filename
Dateiname, der beim Lesen von stdin für per-file-ignores und Meldungen verwendet wird. Standard ist „-“.
--stdin-filename templates/index.html
use_gitignore
Fügt die Ausschlüsse aus .gitignore den standardmäßigen Ausschlüssen hinzu. Standardmäßig deaktiviert.
use_gitignore=true
use_gitignore=true
"use_gitignore": true
--use-gitignore