Configuração
A configuração é feita pelo arquivo pyproject.toml do seu projeto, por um arquivo djlint.toml ou .djlint.toml, ou por um arquivo .djlintrc. Os argumentos da linha de comando sempre têm prioridade sobre as configurações dos arquivos de configuração. As configurações locais do projeto têm prioridade sobre um arquivo de configuração global informado com --configuration, a menos que --prefer-configuration esteja definido.
O formato do pyproject.toml é toml.
[tool.djlint]
<config options>
O formato do djlint.toml e do .djlint.toml é toml.
<config options>
O formato do .djlintrc é json.
{ "option": "value" }
Opções
allow_empty_input
Sai com 0 em vez de 2 quando os caminhos informados não correspondem a nenhum arquivo. Arquivos que foram encontrados e depois ignorados por exclude, extend_exclude, use_gitignore ou require_pragma já saem com 0. Desativado por padrão.
allow_empty_input=true
allow_empty_input=true
"allow_empty_input": true
--allow-empty-input
blank_line_after_tag
Adiciona uma linha em branco extra depois de grupos de tags {% <tag> ... %}. Linhas em branco nunca serão adicionadas ao fim de um bloco.
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
Adiciona uma linha em branco extra antes de grupos de tags {% <tag> ... %}. Linhas em branco nunca serão adicionadas ao início do arquivo ou de um bloco, nem entre tags semelhantes.
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
Adiciona uma marca de fechamento às tags vazias conhecidas, de modo que <img> vira <img />. A H018, que pede o contrário, não é relatada com essa opção.
close_void_tags=true
close_void_tags=true
"close_void_tags": true
--close-void-tags
custom_blocks
Use para indentar blocos de código personalizados. Por exemplo, {% toc %}...{% endtoc %}.
custom_blocks="toc,example"
custom_blocks="toc,example"
"custom_blocks": "toc,example"
--custom-blocks "toc,example"
custom_html
Use para indentar tags HTML personalizadas. Por exemplo, <mjml>, <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
Substitui os caminhos excluídos por padrão.
exclude=".venv,venv,.tox,.eggs,..."
exclude=".venv,venv,.tox,.eggs,..."
"exclude": ".venv,venv,.tox,.eggs,..."
--exclude ".venv,venv,.tox,.eggs,..."
extend_exclude
Adiciona mais caminhos à exclusão padrão.
extend_exclude=".custom"
extend_exclude=".custom"
"extend_exclude": ".custom"
--extend-exclude ".custom"
extension
Use para encontrar apenas arquivos com uma extensão específica.
extension="html.dj"
extension="html.dj"
"extension": "html.dj"
--extension "html.dj"
# or
-e "html.dj"
files
Uma lista de caminhos a usar como fonte do djlint. Quando esta opção é especificada, a fonte na linha de comando deve ser -, como ao usar o stdin. Com --stdin-filename, - significa stdin de qualquer forma.
[tool.djlint]
files=["index.html"]
files=["index.html"]
"files": [
"index.html"
]
index.html
format_attribute_js_json
Formata código JavaScript e JSON dentro de atributos HTML. Isso formata literais de objeto e código JavaScript em atributos como onclick, x-* e outros atributos relacionados a JavaScript. Objetos com menos propriedades do que format_attribute_js_json_min_props não são formatados.
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
Número mínimo de propriedades que um objeto JavaScript/JSON precisa ter para ser formatado. O padrão é 2. Objetos com menos propriedades permanecem em uma única linha.
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
Padrão de regex personalizado para identificar os atributos JavaScript a formatar. O padrão predefinido corresponde a atributos JavaScript comuns, como onclick, x-*, diretivas do Vue.js, do Alpine.js e do Angular, entre outros.
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
O formatador tentará formatar a sintaxe de template dentro dos atributos das tags. Desativado por padrão.
format_attribute_template_tags=true
format_attribute_template_tags=true
"format_attribute_template_tags": true
--format-attribute-template-tags
format_css
Formata o conteúdo das tags style usando o css-beautify. Consulte o css-beautify para ver todas as opções de configuração. A sintaxe de template não é totalmente suportada.
[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
Formata o conteúdo das tags script usando o js-beautify. Consulte o js-beautify para ver todas as opções de configuração. A sintaxe de template não é totalmente suportada.
[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
Ignora códigos do linter.
ignore="H014,H015"
ignore="H014,H015"
"ignore": "H014,H015"
--ignore "H014,H015"
ignore_blocks
Usado para não indentar os filhos de tags de template. Os filhos serão tratados como irmãos e indentados de acordo.
ignore_blocks="raw,example"
ignore_blocks="raw,example"
"ignore_blocks": "raw,example"
--ignore-blocks "raw,example"
ignore_case
Não tenta corrigir maiúsculas e minúsculas de tags html conhecidas. A H009 e a H010 não são relatadas com essa opção.
[tool.djlint]
ignore_case=true
ignore_case=true
"ignore_case": true
--ignore-case
include
Inclui códigos do linter.
include="H014,H015"
include="H014,H015"
"include": "H014,H015"
--include "H014,H015"
indent
Use para alterar a indentação do código. O padrão é 4 (quatro espaços), ou o indent_size de um .editorconfig na raiz do projeto.
indent=3
indent=3
"indent": 3
--indent 3
keep_br_inline
Mantém o <br> na linha do texto que ele quebra, em vez de colocá-lo em uma linha própria. O <hr>, que é renderizado como uma linha abaixo do conteúdo anterior, não é afetado.
keep_br_inline=true
keep_br_inline=true
"keep_br_inline": true
--keep-br-inline
line_break_after_multiline_tag
Não condensa o conteúdo de tags de várias linhas na linha do último atributo.
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
Personaliza a ordem da mensagem de saída. Padrão=“{code} {line} {message} {match}”. Se {filename} não estiver incluído na mensagem, a saída será agrupada por arquivo e um cabeçalho será adicionado automaticamente a cada grupo.
Variáveis opcionais:
{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
O formatador tentará quebrar os atributos das tags se o comprimento dos atributos ultrapassar este valor. O padrão é 70.
max_attribute_length=10
max_attribute_length=10
"max_attribute_length": 10
--max-attribute-length 10
max_blank_lines
Reduz as linhas em branco consecutivas a no máximo x linhas. O padrão é 0, o que significa que as linhas em branco serão removidas.
max_blank_lines=5
max_blank_lines=5
"max_blank_lines": 5
--max-blank-lines 5
max_line_length
O formatador tentará colocar algumas tags html e de template em uma única linha, em vez de quebrá-las, se o comprimento da linha não ultrapassar este valor. O padrão é 120, ou o max_line_length de um .editorconfig na raiz do projeto.
max_line_length=120
max_line_length=120
"max_line_length": 120
--max-line-length 120
name_endblocks
Escreve o nome do bloco no {% endblock %} que o fecha, quando o bloco se estende por várias linhas. É isso que a T003 exige.
name_endblocks=true
name_endblocks=true
"name_endblocks": true
--name-endblocks
no_entity_formatting
Não reescreve uma referência de entidade como o caractere que ela nomeia, então © é mantido como foi escrito em vez de virar ©. As entidades que carregam sintaxe, e as invisíveis, nunca são reescritas, em nenhum caso. A H023 continua relatando uma entidade com essa opção; adicione H023 a ignore para manter as entidades.
no_entity_formatting=true
no_entity_formatting=true
"no_entity_formatting": true
--no-entity-formatting
no_function_formatting
Não tenta formatar os argumentos de chamadas de função dentro de expressões {{ }}.
no_function_formatting=true
no_function_formatting=true
"no_function_formatting": true
--no-function-formatting
no_indent_inner_html
Não indenta <head> e <body> abaixo de <html>, que é como o formatador html padrão do VS Code organiza um documento.
no_indent_inner_html=true
no_indent_inner_html=true
"no_indent_inner_html": true
--no-indent-inner-html
no_line_after_yaml
Não adiciona uma linha em branco depois do 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
Não tenta formatar o conteúdo das tags {% set %}.
no_set_formatting=true
no_set_formatting=true
"no_set_formatting": true
--no-set-formatting
per_file_ignores
Ignora regras do linter arquivo por arquivo.
[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
Faz o arquivo indicado por configuration prevalecer sobre o arquivo de configuração do próprio projeto. configuration indica um arquivo global, então, por padrão, um pyproject.toml ou .djlintrc ao lado dos templates prevalece quando os dois definem a mesma coisa. Só na linha de comando, já que essa opção decide como os próprios arquivos de configuração são lidos.
--prefer-configuration
preserve_blank_lines
Preserva as linhas em branco, quando possível. Ideal para arquivos de template que não são html, em que as linhas em branco são intencionais.
preserve_blank_lines=true
preserve_blank_lines=true
"preserve_blank_lines": true
--preserve-blank-lines
preserve_class_newlines
Preserva as quebras de linha dentro de atributos class de várias linhas.
preserve_class_newlines=true
preserve_class_newlines=true
"preserve_class_newlines": true
--preserve-class-newlines
preserve_leading_space
Preserva o espaço no início do texto, quando possível. Ideal para arquivos de template que não são html, em que a indentação do texto é intencional.
preserve_leading_space=true
preserve_leading_space=true
"preserve_leading_space": true
--preserve-leading-space
profile
Define um perfil para a linguagem de template. O perfil ativa as regras do linter que se aplicam à sua linguagem de template e também pode alterar a reformatação. Por exemplo, no handlebars não há espaços dentro das tags {{#if}}.
Opções:
- html (padrão)
- django
- jinja
- nunjucks (para nunjucks e twig)
- handlebars (para handlebars e mustache)
- liquid (shopify, jekyll, eleventy)
- golang (templates go; hugo, helm)
- angular
- tera (também para zola; use jinja para minijinja)
- askama (templates no estilo jinja em rust; as expressões rust nunca são reformatadas)
profile="django"
profile="django"
"profile": "django"
--profile "django"
quiet
Não imprime o diff ao reformatar.
quiet=true
quiet=true
"quiet": true
--quiet
quote_style
Aspas a usar em strings dentro de tags de template: double (o padrão) ou single. A T002 exige as mesmas aspas. O formatador também as usa em uma condição, como {% if x == "a" %}, para que um mesmo arquivo não escreva a mesma string das duas formas. As aspas dos atributos HTML ficam a cargo da H008.
quote_style="single"
quote_style="single"
"quote_style": "single"
--quote-style single
require_pragma
Só formata ou faz o lint de arquivos que começam com um comentário contendo apenas o texto ‘djlint:on’. O comentário pode ser um comentário HTML ou um comentário na linguagem de template definida pela configuração de perfil. Se nenhum perfil for especificado, é aceito um comentário em qualquer uma das linguagens de 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
Quando uma tag de abertura é quebrada, coloca o nome da tag, cada atributo e o sinal de fechamento da tag em linhas separadas. Desativado por padrão.
single_attribute_per_line=true
single_attribute_per_line=true
"single_attribute_per_line": true
--single-attribute-per-line
sort_attributes
Ordena os atributos por nome, com id primeiro e class em segundo. Uma tag cujos atributos são controlados por uma tag de template mantém a ordem em que foi escrita, já que tirar um deles do seu ramo mudaria a página.
sort_attributes=true
sort_attributes=true
"sort_attributes": true
--sort-attributes
sort_load_tags
Ordena as bibliotecas de uma tag {% load %} do django e remove as que aparecem duas vezes, de modo que {% load static i18n %} vira {% load i18n static %}. Em {% load a b from library %}, os nomes antes de from são ordenados. Quando duas bibliotecas definem uma tag ou um filtro com o mesmo nome, prevalece a carregada por último, então a ordenação pode mudar qual delas o template usa.
sort_load_tags=true
sort_load_tags=true
"sort_load_tags": true
--sort-load-tags
stdin_filename
Nome de arquivo a usar para o per-file-ignores e as mensagens ao ler do stdin. O padrão é “-”.
--stdin-filename templates/index.html
use_gitignore
Adiciona as exclusões do .gitignore à exclusão padrão. Desativado por padrão.
use_gitignore=true
use_gitignore=true
"use_gitignore": true
--use-gitignore