Configurazione

La configurazione si imposta nel file pyproject.toml del progetto, in un file djlint.toml o .djlint.toml, oppure in un file .djlintrc. Gli argomenti della riga di comando hanno sempre la precedenza su qualsiasi impostazione dei file di configurazione. Le impostazioni locali del progetto hanno la precedenza su un file di configurazione globale indicato con --configuration, a meno che non sia impostato --prefer-configuration.

Il formato di pyproject.toml è toml.

[tool.djlint]
<config options>

Il formato di djlint.toml e .djlint.toml è toml.

<config options>

Il formato di .djlintrc è json.

{ "option": "value" }

Opzioni


allow_empty_input

dalla 1.44.0formatterlinter

Esce con 0 invece di 2 quando i percorsi indicati non corrispondono ad alcun file. I file trovati e poi esclusi da exclude, extend_exclude, use_gitignore o require_pragma escono già con 0. Disattivata per impostazione predefinita.

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

blank_line_after_tag

dalla 0.4.2formatter

Aggiunge una riga vuota dopo i gruppi di tag {% <tag> ... %}. Le righe vuote non vengono mai aggiunte alla fine di un blocco.

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

dalla 1.8.0formatter

Aggiunge una riga vuota prima dei gruppi di tag {% <tag> ... %}. Le righe vuote non vengono mai aggiunte all’inizio di un file o di un blocco, né tra tag simili.

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

dalla 1.26.0formatterlinter

Aggiunge un segno di chiusura ai tag void noti, così <img> diventa <img />. Con questa opzione non viene segnalata H018, che chiede il contrario.

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

custom_blocks

dalla 0.3.5formatter

Serve a indentare blocchi di codice personalizzati. Ad esempio {% toc %}...{% endtoc %}.

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

custom_html

dalla 0.7.0formatter

Serve a indentare tag HTML personalizzati. Ad esempio <mjml> o <simple-greeting> o <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

dalla 0.4.0linterformatter

Sovrascrive i percorsi esclusi predefiniti.

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

extend_exclude

dalla 0.4.0linterformatter

Aggiunge altri percorsi a quelli esclusi per impostazione predefinita.

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

extension

dalla 0.0.5linterformatter

Serve a cercare solo i file con una specifica estensione.

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

files

dalla 1.14.0linterformatter

Una lista di percorsi da usare come sorgente di djlint. Quando questa opzione è specificata, la sorgente sulla riga di comando deve essere -, come quando si usa stdin. --stdin-filename fa sì che - indichi comunque stdin.

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

format_attribute_js_json

dalla 1.37.0formatter

Formatta il codice JavaScript e JSON all’interno degli attributi HTML. Vengono formattati gli oggetti letterali e il codice JavaScript in attributi come onclick, x-* e altri attributi legati a JavaScript. Gli oggetti con meno proprietà di format_attribute_js_json_min_props non vengono formattati.

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

dalla 1.37.0formatter

Numero minimo di proprietà che un oggetto JavaScript/JSON deve avere per essere formattato. Il valore predefinito è 2. Gli oggetti con meno proprietà restano su una sola riga.

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

dalla 1.37.0formatter

Pattern regex personalizzato per individuare gli attributi JavaScript da formattare. Il pattern predefinito corrisponde agli attributi JavaScript più comuni, come onclick, x-*, le direttive di Vue.js, di Alpine.js, di Angular e altro ancora.

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

dalla 0.6.7formatter

Il formattatore cerca di formattare la sintassi di template all’interno degli attributi dei tag. Disattivata per impostazione predefinita.

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

format_css

dalla 1.9.0formatter

Formatta il contenuto dei tag style con css-beautify. Consulta css-beautify per tutte le opzioni di configurazione. La sintassi di template non è pienamente supportata.

[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

dalla 1.9.0formatter

Formatta il contenuto dei tag script con js-beautify. Consulta js-beautify per tutte le opzioni di configurazione. La sintassi di template non è pienamente supportata.

[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

dalla 0.1.5linter

Ignora i codici del linter.

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

ignore_blocks

dalla 1.24.0formatter

Serve a saltare l’indentazione dei figli dei tag di template. I figli vengono trattati come fratelli e indentati di conseguenza.

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

ignore_case

dalla 1.23.0formatterlinter

Non tenta di correggere maiuscole e minuscole dei tag html noti. Con questa opzione H009 e H010 non vengono segnalate.

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

include

dalla 1.20.0linter

Include i codici del linter.

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

indent

dalla 0.3.5formatter

Serve a cambiare l’indentazione del codice. Il valore predefinito è 4 (quattro spazi), oppure l’indent_size di un .editorconfig nella radice del progetto.

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

keep_br_inline

dalla 1.45.0formatter

Mantiene <br> sulla riga del testo che interrompe, invece di metterlo su una riga a sé. <hr>, che viene reso come una linea sotto il contenuto che lo precede, non è interessato.

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

line_break_after_multiline_tag

dalla 1.27.0formatter

Non condensa il contenuto dei tag su più righe nella riga dell’ultimo attributo.

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

dalla 0.6.7linter

Personalizza l’ordine del messaggio di output. Predefinito=“{code} {line} {message} {match}”. Se {filename} non è incluso nel messaggio, l’output viene raggruppato per file e a ogni gruppo viene aggiunta automaticamente un’intestazione.

Variabili opzionali:

  • {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

dalla 0.5.8formatter

Il formattatore cerca di mandare a capo gli attributi dei tag se la loro lunghezza supera questo valore. Il valore predefinito è 70.

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

max_blank_lines

dalla 1.31.0formatter

Riduce le righe vuote consecutive a x righe. Il valore predefinito è 0, il che significa che le righe vuote vengono rimosse.

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

max_line_length

dalla 0.5.7formatter

Il formattatore cerca di mettere alcuni tag html e di template su una sola riga invece di mandarli a capo, se la lunghezza della riga non supera questo valore. Il valore predefinito è 120, oppure il max_line_length di un .editorconfig nella radice del progetto.

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

name_endblocks

dalla 1.45.0formatter

Scrive il nome del blocco nell’{% endblock %} che lo chiude, quando il blocco è scritto su più righe. È ciò che richiede T003.

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

no_entity_formatting

dalla 1.45.0formatter

Non riscrive un riferimento a entità come il carattere che indica, quindi &copy; resta com’è scritto invece di diventare ©. Le entità con un ruolo sintattico e quelle invisibili non vengono mai riscritte in nessun caso. Con questa opzione H023 continua a segnalare le entità; aggiungi H023 a ignore per mantenere le entità.

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

no_function_formatting

dalla 1.30.2formatter

Non tenta di formattare gli argomenti delle chiamate di funzione all’interno delle espressioni {{ }}.

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

no_indent_inner_html

dalla 1.45.0formatter

Non indenta <head> e <body> sotto <html>, che è il modo in cui il formattatore html predefinito di VS Code dispone un documento.

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

no_line_after_yaml

dalla 1.29.0formatter

Non aggiunge una riga vuota dopo il front matter yaml.

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

no_set_formatting

dalla 1.30.2formatter

Non tenta di formattare il contenuto dei tag {% set %}.

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

per_file_ignores

dalla 1.7.0linter

Ignora le regole del linter file per file.

[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

dalla 1.45.0formatterlinter

Fa sì che il file indicato da configuration abbia la precedenza sul file di configurazione del progetto. configuration indica un file globale, quindi per impostazione predefinita, quando i due impostano la stessa cosa, prevale un pyproject.toml o un .djlintrc accanto ai template. Solo da riga di comando, perché decide come vengono letti i file di configurazione stessi.

--prefer-configuration

preserve_blank_lines

dalla 1.3.0formatter

Conserva, dove possibile, le righe vuote. Ideale per file di template non html in cui le righe vuote sono intenzionali.

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

preserve_class_newlines

dalla 1.39.0formatter

Conserva gli a capo all’interno degli attributi class su più righe.

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

preserve_leading_space

dalla 1.2.0formatter

Conserva, dove possibile, gli spazi iniziali del testo. Ideale per file di template non html in cui l’indentazione del testo è intenzionale.

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

profile

dalla 0.4.5linterformatter

Imposta un profilo per il linguaggio di template. Il profilo attiva le regole del linter che si applicano al tuo linguaggio di template e può anche modificare la riformattazione. Ad esempio, in handlebars non ci sono spazi all’interno dei tag {{#if}}.

Opzioni:

  • html (predefinito)
  • django
  • jinja
  • nunjucks (per nunjucks e twig)
  • handlebars (per handlebars e mustache)
  • liquid (shopify, jekyll, eleventy)
  • golang (template go; hugo, helm)
  • angular
  • tera (anche per zola; usa jinja per minijinja)
  • askama (template in stile jinja in rust; le espressioni rust non vengono mai riformattate)
profile="django"
profile="django"
"profile": "django"
--profile "django"

quiet

dalla 0.0.9formatterlinter

Non stampa il diff durante la riformattazione.

quiet=true
quiet=true
"quiet": true
--quiet

quote_style

dalla 1.45.0formatterlinter

Virgolette da usare per le stringhe all’interno dei tag di template: double (il valore predefinito) o single. T002 richiede le stesse virgolette. Il formattatore le usa anche in una condizione, come {% if x == "a" %}, così in uno stesso file la stessa stringa non viene scritta in due modi. Le virgolette degli attributi HTML sono lasciate a H008.

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

require_pragma

dalla 0.5.8formatter

Formatta o analizza solo i file che iniziano con un commento contenente soltanto il testo ‘djlint:on’. Il commento può essere un commento HTML o un commento nel linguaggio di template definito dall’impostazione del profilo. Se non è specificato alcun profilo, è accettato un commento in uno qualsiasi dei linguaggi di template.

<!-- 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

dalla 1.40.0formatter

Quando un tag di apertura va a capo, mette il nome del tag, ogni attributo e la parentesi di chiusura su righe separate. Disattivata per impostazione predefinita.

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

sort_attributes

dalla 1.45.0formatter

Ordina gli attributi per nome, con id per primo e class per secondo. Un tag i cui attributi sono condizionati da un tag di template mantiene l’ordine in cui è stato scritto, perché spostarne uno fuori dal suo ramo cambierebbe la pagina.

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

sort_load_tags

dalla 1.47.0formatter

Ordina le librerie in un tag {% load %} di django ed elimina quelle scritte due volte, così {% load static i18n %} diventa {% load i18n static %}. In {% load a b from library %} vengono ordinati i nomi prima di from. Quando due librerie definiscono un tag o un filtro con lo stesso nome, prevale quella caricata per ultima, quindi l’ordinamento può cambiare quale dei due usa il template.

sort_load_tags=true
sort_load_tags=true
"sort_load_tags": true
--sort-load-tags

stdin_filename

dalla 1.43.0formatterlinter

Nome di file da usare per per-file-ignores e per i messaggi quando si legge da stdin. Il valore predefinito è “-”.

--stdin-filename templates/index.html

use_gitignore

dalla 0.5.9linterformatter

Aggiunge le esclusioni di .gitignore a quelle predefinite. Disattivata per impostazione predefinita.

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

version

dalla 0.3.9formatterlinter

Mostra la versione ed esce.

--version

warn

dalla 0.7.6formatterlinter

Restituisce gli errori come avvisi.

--warn